This is an Obsidian vault organized with Johnny Decimal. Claude Code can read and write every file in it directly — no plugins or CLI tools needed.
Everything here is a starting point. The folder structure, templates, themes, and skill phases are all meant to be changed. If the user wants a different organization system, different file formats, extra automation, or fewer steps — adjust. This framework works best when shaped around how the user actually thinks and works, not the other way around.
00-09 System — Meta (home dashboard, vault map), templates, vault config
10-19 Projects — Active project files (11.XX numbering), archive, skills
20-29 Writing — Essays, notes, daily journal
30-39 Knowledge — Resources, reading list
40-49 Tracking — Finance, routines, to-dos
50-59 Creative — Drawings, media, experiments
Active project files live in 10-19 Projects/11 Active/ and follow the naming pattern 11.XX {Project Name}.md. The XX number auto-increments.
| File | What it is |
|---|---|
claude-code/obsidian-sync.md |
The /obsidian skill — full instructions for syncing projects into the vault |
claude-code/canvas-reference.md |
JSON format reference for Obsidian .canvas files |
claude-code/SETUP.md |
Quick-start guide for the /obsidian skill |
00-09 System/01 Templates/01.01 Project.md |
Template that defines the standard project file format |
00-09 System/00 Meta/00.01 Home.md |
Dashboard home page (uses Dataview queries) |
00-09 System/00 Meta/00.02 Vault Map.canvas |
Visual map of vault contents |
- Markdown files (
.md) — standard markdown with optional YAML frontmatter between---fences - Canvas files (
.canvas) — JSON with two arrays:nodesandedges. Seecanvas-reference.mdfor the full spec - Internal links — use
[[filename]]syntax (e.g.,[[00.01 Home]]) - Tags — in frontmatter as YAML arrays, or inline as
#TagName - CSS snippets —
.obsidian/snippets/contains theme files. Each is self-contained with sidebar colors, icons, and styling
Every project file follows this structure (see the template for the full version):
- YAML frontmatter —
jd-id,status,tags - Backlink to Home —
[[00.01 Home]] - Title + description — 2-3 sentences from actual codebase analysis
- Metadata — Location (absolute path), GitHub URL, Port (if web app)
- Stack table — Layer / Tech / Purpose
- Architecture — Core systems, data flow using arrow notation
- Key files table — Important files and their roles
- Dev log — Dated entries, newest first, categorized by feature/area
- Footer — Parent link + tags
- Never remove existing content without asking — only add or update
- Dev logs are append-only — never edit past entries, newest entries go first
- Show diffs before overwriting existing sections
- Canvas files must be valid JSON — always validate before saving
- Descriptions should be specific — write from actual codebase analysis, not filler
- Auto-increment JD numbers — scan existing
11.XXfiles to find the next number
| Code | Color | Use for |
|---|---|---|
"1" |
Red | Entry points, critical systems |
"2" |
Orange | State management, config |
"3" |
Yellow | Data layer, persistence |
"4" |
Green | UI, views, output |
"5" |
Cyan | API layer, external services |
"6" |
Purple | Labels, section headers |
When a user runs /obsidian from a project directory, follow the phases defined in claude-code/obsidian-sync.md. The short version:
- Detect — match the working directory to an existing vault project file
- Analyze — read package.json, directory structure, git history
- Menu — offer actions: update info, write dev log, refresh key files, generate architecture canvas, update vault map, or full sync
- Execute — write changes to the vault
- Report — summarize what was created or updated