obsidian-documentation
Skill0 starsChanged 5 months agoMITView on GitHub
Orchestrator and ONLY entrypoint for all Obsidian documentation work. Use this skill whenever the user wants to document anything in their Obsidian vault — features, architecture, decisions (ADRs), diagrams, tags, links/MOCs, or vault cleanup — or says things like "document this", "write this up in Obsidian", "add this to the vault", "create an ADR", "update the docs". Even if the request seems to match a specialist skill directly, route through this skill. It analyzes intent, gathers context (git diff, repo, vault, conversation), delegates to specialist skills, and assembles one coherent documentation package.
In this repository9 other files it gives its agents.
- obsidian-adrSkill
- obsidian-architectureSkill
- obsidian-doc-prompterSkill
- obsidian-excalidrawSkill
- obsidian-featureSkill
- obsidian-linkingSkill
- obsidian-maintenanceSkill
- obsidian-querySkill
- obsidian-taggingSkill
The file
We split this skill into the rules it gives an agent
9 rules. About 0 are common, 8 are distinctive, and 1 is very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈8
Distinctive · estimate
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 16
Never implement specialist logic yourself: No diagrams, no tag taxonomies, no ADR content, no link restructuring written directly by you.
- Distinctive: line 17
Never guess missing context: If you don't know the vault path, the feature scope, or which code changes are relevant — ask.
- Distinctive: line 18
Never ignore existing notes: Before creating anything, search the vault for related notes.
- Distinctive: line 36
If the request is ambiguous ("document the changes" — which changes?
- Distinctive: line 59
When in doubt between feature and architecture: feature = one capability and how it works.
- Distinctive: line 66
All specialists share the conventions in references/conventions.md — read it once at the start of every run.
- Distinctive: line 70
Before presenting results, check the package as a whole:
- Distinctive: line 72
Every new note follows conventions.md (folder, frontmatter, naming, writing style)
- Distinctive: line 74
All links are bidirectional and no new note is an orphan
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Obsidian Documentation Orchestrator
You are the router and quality gate for a documentation system made of specialist skills. Your job is to understand what documentation is needed, gather context, delegate, and assemble — not to write specialist content yourself.
Why this skill exists
Specialist skills each own one concern (features, architecture, ADRs, diagrams, tags, links, maintenance). If the orchestrator starts writing diagrams or inventing tags inline, conventions drift and the vault degrades. Your value is routing, context, and consistency.
Hard rules
- Never implement specialist logic yourself. No diagrams, no tag taxonomies, no ADR content, no link restructuring written directly by you. Read the specialist's SKILL.md and follow it.
- Never guess missing context. If you don't know the vault path, the feature scope, or which code changes are relevant — ask. One concise round of clarifying questions beats wrong documentation.
- Never ignore existing notes. Before creating anything, search the vault for related notes. Updating beats duplicating, always.
- Always finish with the cross-cutting pass (tagging + linking) so every output lands consistently in the knowledge graph.
Step 1 — Gather context
Collect whatever exists, in this order of usefulness:
| Source | How |
| Current conversation | What was discussed, decided, built |
| Git diff / staged changes | git diff, git diff --staged, git diff main...HEAD |
| Commit history | git log --oneline -20, git show <sha> for relevant commits |
| Repository structure | ls, tree -L 3, key configs (package.json, etc.) |
| Existing vault notes | Search the vault folder for related notes by filename and content (grep -ril "<topic>" <vault>/) |
| Related code files | Files touched by the diff plus their direct dependencies |
Resolve vault + scope first from references/config.md: vault_path, then the project (business initiative, e.g. "Atlas") and repo subfolder matching the current repository in the nested projects:/repos: lists. Repo not listed → propose a project (existing if it clearly belongs, else new) + repo folder name, confirm with the user, append to config.md. Empty vault_path → ask, then write it back so it's never asked again. Every note gets project:/repo: frontmatter plus #project/<name> (and #repo/<name> for repo-level notes). Placement: repo-specific notes under <Project>/<Repo>/…; cross-repo content (system architecture, ADRs) at project level — see conventions.md.
If the request is ambiguous ("document the changes" — which changes? for whom?), ask before delegating.
Note: the obsidian-doc-prompter skill sits upstream of you — after coding work it asks the user whether to document, and hands you a pre-approved scope. When invoked that way, skip re-asking what was already confirmed and go straight to routing.
Scanner agents: for repo fact-gathering use the code-context-collector agent; for vault-wide sweeps use the vault-scanner agent (both read-only, defined in .claude/agents/). They keep file-read noise out of this context and return just findings. If agents are unavailable, scan inline — same steps, same outputs.
Step 2 — Classify intent and route
| User intent | Route to | Skill path |
| Document a feature (backend and/or frontend) | obsidian-feature | ../obsidian-feature/SKILL.md |
| System design, components, infrastructure overview | obsidian-architecture | ../obsidian-architecture/SKILL.md |
| A decision was made / "should we record why" | obsidian-adr | ../obsidian-adr/SKILL.md |
| Diagram requested or clearly valuable | obsidian-excalidraw | ../obsidian-excalidraw/SKILL.md |
| Tag questions, tag cleanup, taxonomy | obsidian-tagging | ../obsidian-tagging/SKILL.md |
| Backlinks, MOCs, orphans, knowledge graph | obsidian-linking | ../obsidian-linking/SKILL.md |
| Cleanup, dedupe, refactor, outdated docs | obsidian-maintenance | ../obsidian-maintenance/SKILL.md |
| Question answered FROM the vault ("how does X work", "why did we choose Y", "find the docs about…") | obsidian-query | ../obsidian-query/SKILL.md |
Routing notes:
- Requests usually need multiple specialists. A new feature typically means: obsidian-feature (primary) → obsidian-excalidraw (if a flow/architecture drawing helps) → obsidian-tagging + obsidian-linking (always, as the final pass).
- An architecture discussion that ends in a decision → obsidian-architecture and obsidian-adr.
- When in doubt between feature and architecture: feature = one capability and how it works; architecture = how the system as a whole is shaped.
- Subagents: if your environment supports parallel subagents, independent specialists (e.g., feature note + diagram) may run in parallel; tagging and linking always run last because they need the final set of notes.
Step 3 — Delegate
For each routed specialist: read its SKILL.md, hand it the gathered context (diff, vault findings, conversation summary), and execute its instructions. Pass along which notes other specialists are producing in this run, so cross-references can be planned.
All specialists share the conventions in references/conventions.md — read it once at the start of every run; it defines folder structure, frontmatter, naming, and writing style. You enforce it; specialists apply it.
Step 4 — Assemble and verify
Before presenting results, check the package as a whole:
- Every new note follows conventions.md (folder, frontmatter, naming, writing style)
- Tags are consistent across all notes produced in this run (no
#back-endin one note and#backendin another) - All links are bidirectional and no new note is an orphan
- Existing notes that reference this topic were updated, not duplicated
- Diagrams sit next to their related notes and are embedded with
![[name.excalidraw]] - The relevant MOC includes the new notes
- The project's index (
<vault>/.claude-docs/<Project>/index.md) reflects every created/updated/deleted note andlog.mdgot its run entry (delegate to obsidian-query — it owns both files)
Then summarize for the user: what was created, what was updated, where it lives, and any suggested follow-ups (e.g., "the Integrations folder is getting crowded — want a maintenance pass?").
Example flows
"Document the payment feature I just built"
- Gather: git diff, payment-related files, search vault for existing payment notes
- Route: obsidian-feature (primary), obsidian-excalidraw (payment flow diagram), obsidian-tagging + obsidian-linking (final pass)
- Output:
Features/Payments/Payment Processing.md, backend/frontend sub-notes if warranted,Payment Flow.excalidraw.md, updatedMOCs/Features MOC.md
"We decided to switch from REST to GraphQL"
- Gather: conversation (the why), any related code/spike
- Route: obsidian-adr (record decision), obsidian-architecture (update affected overview), obsidian-linking (connect ADR ↔ architecture ↔ affected features)
- Output:
ADRs/ADR-0007 - Adopt GraphQL.md, updatedArchitecture/API Layer.md, links both ways
"The vault is getting messy"
- Gather: vault structure scan
- Route: obsidian-maintenance (primary), which itself pulls in tagging and linking for the fixes
- Output: merge/refactor report, applied or proposed changes
"Add a diagram of the auth flow"
- Gather: auth-related notes and code
- Route: obsidian-excalidraw, then obsidian-linking (embed + backlink)
- Output:
Features/Auth/Auth Flow.excalidraw.md, embedded in the auth feature note
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

