mattrguerra/meridian-skillsmainPrivate on GitHub, published here in full

OBSIDIAN_CONVENTIONS.md

Language Markdown5.5 KB138 lines

skills/cowork-project-architect/OBSIDIAN_CONVENTIONS.md

  1. # Obsidian Vault Conventions
  2. Reference for the vault structure conventions this skill enforces. Use this when generating projects, when explaining the structure to a user, or when iterating on the convention itself.
  3. ## Why an Obsidian vault structure
  4. - **Bidirectional links** make project navigation discoverable. Wikilinks survive renames and feed graph view.
  5. - **Frontmatter** is queryable via Dataview. Even without Dataview, it's load-bearing for Obsidian search and tag-based navigation.
  6. - **Folder ordering by numeric prefix** is the only way to reliably control file explorer sort order in Obsidian.
  7. - **Numbered + named folders** map cleanly to mental models: 01- is "primary content," 02- is "in progress," 03- is "done."
  8. - **Underscored utility folders** (`_attachments/`, `_templates/`) sort to the bottom and stay out of the way.
  9. - **Maps of Content** (MOC files) are the established Obsidian pattern for navigation. Two MOCs in this convention: CLAUDE.md (agent-facing) and 00-Index.md (human-facing).
  10. ## Folder naming
  11. | Prefix | Meaning | Sort order |
  12. |--------|---------|------------|
  13. | `00-` | Project MOC, sorts first | First |
  14. | `01-` to `09-` | Primary content folders | Ordered |
  15. | `10-` to `99-` | Less-frequent or archive | Late |
  16. | `_` | Utility folders | Last |
  17. | `.` | Hidden (`.obsidian/`, `.git/`) | Hidden |
  18. Default folder set:
  19. - `01-Knowledge/`: primary domain content
  20. - `02-Working/`: in-progress files, scratchpad
  21. - `03-Outputs/`: finished deliverables
  22. - `04-Archive/`: optional, project-dependent
  23. - `_attachments/`: images, PDFs, binaries
  24. - `_templates/`: Obsidian note templates
  25. Adapt names to project. A research project might use `01-Sources/`, `02-Notes/`, `03-Drafts/`. A code project might use `01-Specs/`, `02-Code/`, `03-Reviews/`. Pattern stays.
  26. ## File naming
  27. | File type | Pattern | Example |
  28. |-----------|---------|---------|
  29. | Root Claude reference | ALL CAPS | `CLAUDE.md`, `MEMORY.md` |
  30. | Subdirectory Claude reference | `CLAUDE-[scope].md` | `CLAUDE-knowledge.md` |
  31. | Project MOC | `00-Index.md` | `00-Index.md` |
  32. | Sub-MOC | `[Folder]-Index.md` | `Clients-Index.md` |
  33. | General notes | kebab-case | `client-onboarding.md` |
  34. | Canonical references | Title-Case | `Project-Charter.md` |
  35. | Templates | `[name]-template.md` | `brief-template.md` |
  36. | Daily notes | `YYYY-MM-DD.md` | `2025-05-07.md` |
  37. ## Frontmatter standard
  38. Every `.md` file generated by this skill starts with:
  39. ```yaml
  40. ---
  41. type: [type-tag]
  42. scope: [project-root | subdirectory-name]
  43. tags:
  44. - [tag]
  45. - [tag]
  46. created: [YYYY-MM-DD]
  47. updated: [YYYY-MM-DD]
  48. aliases:
  49. - [optional]
  50. ---
  51. ```
  52. Required fields: `type`, `scope`, `created`, `updated`.
  53. Optional fields: `tags`, `aliases`, `status` (for HEARTBEAT and similar).
  54. ## Wikilinks vs. Markdown links
  55. | Use case | Format |
  56. |----------|--------|
  57. | File-to-file in vault | `[[FILENAME]]` |
  58. | With display text | `[[FILENAME\|display text]]` |
  59. | Section anchor | `[[FILENAME#Section]]` |
  60. | Block reference | `[[FILENAME#^block-id]]` |
  61. | External web | `[text](https://url)` |
  62. | Image (in vault) | `![[image.png]]` |
  63. | Image (external) | `![alt](https://url)` |
  64. When piping display text inside a Markdown table cell, escape the pipe: `[[FILENAME\|display]]`.
  65. ## Maps of Content
  66. **CLAUDE.md**: agent-facing MOC.
  67. - Custom instructions body (this is what gets pasted into Cowork)
  68. - Reference index of all Claude reference files in vault, including subdirectory CLAUDE-[scope].md files
  69. **00-Index.md**: human-facing MOC.
  70. - Project navigation
  71. - Key concepts with wikilinks into `01-Knowledge/`
  72. - Workflow shortcuts
  73. - Tag taxonomy
  74. These do not merge. They serve different audiences.
  75. ## Subdirectory CLAUDE files
  76. When to generate `CLAUDE-[scope].md`:
  77. - Subdirectory has operational rules distinct from root
  78. - Granular instructions would clutter root CLAUDE.md
  79. - Specific data type or workflow lives in that folder
  80. When generated, it MUST be logged in root CLAUDE.md under "Subdirectory reference files" with:
  81. - Wikilink to the file
  82. - One-line description of scope
  83. - Trigger condition (when to read it)
  84. When NOT generated, root CLAUDE.md says explicitly: "None. Root CLAUDE.md covers everything in this vault." This prevents future ambiguity.
  85. ## Tag taxonomy
  86. Every project seeds a tag taxonomy in [[MEMORY]]. Tags should be:
  87. - Project-specific where possible (`#client-acme` not just `#client`)
  88. - Hierarchical when useful (`#status/draft`, `#status/final`, `#status/archived`)
  89. - Documented (every active tag has a one-line meaning in MEMORY.md)
  90. Avoid single-use tags. Avoid `#todo` as a tag; use Obsidian's checkbox syntax `- [ ]` instead, which is queryable.
  91. ## Plugins assumed
  92. This skill produces vaults that work with vanilla Obsidian. No plugins required. Optional plugins that enhance the experience:
  93. - **Templater:** for the `_templates/` folder
  94. - **Dataview:** to query frontmatter (turns MEMORY.md tag taxonomy into live views)
  95. - **Tasks:** better task tracking with checkboxes
  96. - **Tag Wrangler:** taxonomy maintenance
  97. Don't generate Dataview queries by default. They only render if the plugin is installed and the user knows it. If the user asks for them, add them.
  98. ## Anti-patterns
  99. - Folders without numeric prefixes (sort order becomes alphabetical, hard to control)
  100. - Spaces in filenames (works in Obsidian but breaks command-line tooling)
  101. - Markdown links instead of wikilinks for in-vault references
  102. - Skipping frontmatter to save lines
  103. - Subdirectory CLAUDE files that aren't logged in root CLAUDE.md
  104. - Merging the agent-facing and human-facing MOCs
  105. - Tags that duplicate folder structure (`#knowledge` for files in `01-Knowledge/`)