Align obsidian-vault frontmatter schema with obsidian-master-kit - #4
Open
fabiusilva wants to merge 1 commit into
Open
Align obsidian-vault frontmatter schema with obsidian-master-kit#4fabiusilva wants to merge 1 commit into
fabiusilva wants to merge 1 commit into
Conversation
Notes written by mcp-obsidian-vault used date/status="" defaults that don't match obsidian-master-kit's canonical schema (created/updated/ area, status defaulting to "draft"), so any vault shared between the two tools would have every growthOS-created note flagged as a mismatch by its librarian. Switches to created+updated, defaults area to "ai-memory" (overridable via a new area param on create_note), and makes created immutable on update the same way the librarian enforces it.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
mcp-obsidian-vaultwrote frontmatter with a baredatefield and empty-string defaults (type: "",status: ""), which doesn't match obsidian-master-kit's canonical schema (created/updated/area,statusdefaulting to"draft"). If a vault is shared between growthOS and obsidian-master-kit, every note growthOS creates gets flagged as a schema mismatch by the librarian skill._FRONTMATTER_DEFAULTStocreated+updated(both set on create,updatedrefreshed on everyupdate()), defaultsareato"ai-memory"(the area obsidian-master-kit reserves for AI-generated content), and defaultsstatusto"draft".areaparam to thecreate_noteMCP tool so callers can targetpessoal/profissional/pesquisainstead of the default.createdis now treated as immutable onupdate()(mirrors the rule obsidian-master-kit's librarian already enforces: a skill that tries to changecreatedgets reverted).test_vault_ops.pyassertions that depended on the olddatefield / empty-stringstatusdefault.Test plan
vault_ops/VaultOperationsin the repo — confirmed nothing else programmatically depends on thedatefield (only this package's own tests).createdbehavior with a standalone script exercisingVaultOperationsdirectly (sandbox had nopipavailable to runpytestwith real deps installed).pytest mcp-servers/mcp-obsidian-vault/tests/in an environment withpython-frontmatter/fastmcpinstalled to confirm before merging.🤖 Generated with Claude Code