AgentStack
SKILL verified MIT Self-run

Obsidian Vault

skill-ada-ggf25-ai-tools-obsidian-vault · by ada-ggf25

Generate a comprehensive, ground-truth-anchored Obsidian Vault for any repository. The vault covers codebase understanding, execution planning, Architecture Decision Records (ADRs), session reasoning logs, and design tracking — structured for both human navigation and AI consumption. Creates the full folder skeleton, note templates, .obsidian/ config (plugin manifest, graph settings, CSS color sn…

No reviews yet
0 installs
19 views
0.0% view→install

Install

$ agentstack add skill-ada-ggf25-ai-tools-obsidian-vault

✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

Are you the author of Obsidian Vault? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Generate an Obsidian Vault for a repository

Project-agnostic, global skill. It scans a repository, then writes a complete Obsidian Vault that acts as the single knowledge base for understanding the codebase, tracking decisions, planning execution, and logging reasoning — usable by both the developer and AI tools without re-deriving context each session.

The vault is always anchored to ground truth: it references the codebase; it does not paraphrase it. Any note that describes code should link to the actual file path rather than duplicate its content.

Vault layout (target output)

/                    default: /.obsidian-vault/
├── .obsidian/
│   ├── app.json                 core settings (preview mode, line numbers off)
│   ├── community-plugins.json   plugin enable list
│   ├── graph.json               graph layout + folder color groups
│   └── snippets/
│       └── graph-colors.css     CSS variables driving graph node colors by folder
├── _templates/                  Templater source folder
│   ├── TPL-ADR.md
│   ├── TPL-Architecture.md
│   ├── TPL-ExecutionPlan.md
│   ├── TPL-Research.md
│   ├── TPL-Reference.md
│   └── TPL-SessionLog.md
├── 00-Home/
│   └── Home.md                  root MOC + live Dataview dashboards
├── 01-Architecture/
│   └── Overview.md              stub seeded from scan
├── 02-ADRs/
│   └── _ADR-Index.md            Dataview index of all ADRs
├── 03-Plans/
│   └── _Plans-Index.md          Dataview index of all plans + open tasks
├── 04-Research/
├── 05-Sessions/
├── 06-Reference/
├── Architecture.canvas          starter canvas from discovered repo structure
├── _AI-CONTEXT.md               machine-readable vault guide for AI tools
└── _TAG-TAXONOMY.md             canonical tag list; never add tags outside this file

Universal frontmatter convention

Every note and template must open with this YAML block (Templater variables in templates):

---
title: 
date:           # creation date; templates use 
type: adr | plan | session | research | reference | architecture | moc
status: draft | active | deprecated | superseded
tags: []
related: []                 # [[wikilinks]] to related notes
---

The type and status fields drive Dataview queries and graph CSS coloring. Never omit them.

Procedure

1. Orient

  • Identify the repo root (ask if ambiguous — monorepos, submodules).
  • Check whether / already exists.
  • Exists: list what's already there, confirm whether to update (add missing

files only) or regenerate (overwrite everything). Default: update.

  • Does not exist: confirm the vault root path before creating anything.
  • Confirm or override the default vault placement (/.obsidian-vault/).

2. Scan (via read-only subagent)

Spawn a read-only subagent, when available, with this task:

> "Scan this repository and return: (1) project name and one-line purpose, (2) tech > stack (languages, frameworks, build tools), (3) top-level source components/modules > (folder names, packages, services), (4) key files worth referencing in the vault > (README, architecture docs, main entrypoints, CI config). Return a structured > summary — no file dumps."

Use the summary to seed: project name, component list for tags and canvas, stack for architecture overview, key file paths for Reference notes.

3. Propose and pause for approval

Present to the user:

  • Vault root path
  • Folder structure (from layout above)
  • Plugin list (see step 4a)
  • Template list
  • Gitignore strategy (.obsidian/ settings gitignored; vault content tracked)
  • Any update-vs-regenerate decision from step 1

Do NOT create any files before the user approves. Show what will be created, not just "I'll create a vault."

4. Generate vault files

4a. .obsidian/ config files

Write .obsidian/app.json:

{
  "defaultViewMode": "preview",
  "foldIndent": true,
  "showLineNumber": false,
  "livePreview": true,
  "strictLineBreaks": false,
  "showFrontmatter": false
}

Write .obsidian/community-plugins.json (these must be installed manually in Obsidian, but listing them here makes the intent declarative):

[
  "dataview",
  "templater-obsidian",
  "obsidian-git",
  "obsidian-excalidraw-plugin",
  "quickadd",
  "tag-wrangler",
  "obsidian-tasks-plugin",
  "obsidian-kanban"
]

Write .obsidian/graph.json — configure color groups by folder path so each section is visually distinct in the graph view. Use these RGB values (decimal):

  • 00-Home → gold #E6AC00 (15117312 decimal)
  • 01-Architecture → blue #4488FF (4491519)
  • 02-ADRs → orange #FF6600 (16744448)
  • 03-Plans → green #44AA44 (4433476)
  • 04-Research → violet #AA44FF (11157759)
  • 05-Sessions → cyan #00CCCC (52428)
  • 06-Reference → gray #888888 (8947848)

Also set: "showOrphans": false, "showTags": true, "showAttachments": false.

Write .obsidian/snippets/graph-colors.css:

/* Obsidian graph node colors by folder — matches graph.json colorGroups */
.graph-view.color-fill-tag { color: #E6AC00; }

/* Node label sizes */
.graph-view.color-text { opacity: 0.8; }
4b. Folder skeleton + index MOCs

Create each folder. Write index MOCs for 00-Home/Home.md, 02-ADRs/_ADR-Index.md, and 03-Plans/_Plans-Index.md.

00-Home/Home.md must include:

  • Frontmatter: type: moc, status: active
  • A one-line project description (from scan)
  • A Dataview block listing all active ADRs:

``dataview TABLE status, date FROM "02-ADRs" WHERE type = "adr" SORT date DESC ``

  • A Dataview block listing all in-progress plans:

``dataview TABLE status, date FROM "03-Plans" WHERE type = "plan" AND status != "deprecated" SORT date DESC ``

  • A Dataview block listing all session notes from the last 30 days:

``dataview TABLE date FROM "05-Sessions" SORT date DESC LIMIT 10 ``

  • Links to [[Architecture.canvas]], [[01-Architecture/Overview]],

[[_TAG-TAXONOMY]], [[_AI-CONTEXT]]

02-ADRs/_ADR-Index.md and 03-Plans/_Plans-Index.md: frontmatter + a Dataview table of all files in their folder sorted by date.

01-Architecture/Overview.md: seed with project name, stack summary, and a bullet list of top-level components discovered in step 2 — each linking to a [[06-Reference/ ]] stub.

4c. Templates (in _templates/)

All templates use Templater syntax (``). Each must open with the universal frontmatter from the convention section above. Section headers for each:

TPL-ADR.mdtype: adr Sections: ## Context, ## Decision, ## Status, ## Consequences, ## Alternatives Considered, ## Related (Dataview: list notes tagged same component)

TPL-Architecture.mdtype: architecture Sections: ## Purpose, ## Components, ## Key Files (link to actual paths), ## Interfaces / Contracts, ## Known Constraints, ## Open Questions

TPL-ExecutionPlan.mdtype: plan Sections: ## Goal, ## Success Criteria, ## Tasks (Tasks plugin checklist), ## Related ADRs (Dataview: FROM "02-ADRs" WHERE contains(related, this.file.link)), ## Session Log (links to sessions for this plan), ## Notes

TPL-SessionLog.mdtype: session Sections: ## Goal for This Session, ## Decisions Made (link to ADRs), ## Code Changed (file paths), ## Open Questions, ## Next Session

TPL-Research.mdtype: research Sections: ## Question, ## Sources, ## Findings, ## Conclusion, ## Impact on Architecture (link to ADR if decision follows)

TPL-Reference.mdtype: reference Sections: ## Source (file path or URL), ## Key Excerpts, ## How This Is Used, ## Last Verified (date — critical for keeping reference notes honest)

4d. _AI-CONTEXT.md

Write a structured file at vault root explaining the vault to an AI tool reading it for the first time. Must include:

  • What each folder contains and when to use it
  • The frontmatter convention and how type/status fields work
  • How to interpret related: [] links
  • Where to find architectural ground truth (links to actual repo paths, not vault copies)
  • The tag taxonomy (or link to [[_TAG-TAXONOMY]])
  • What the AI should NOT do: do not treat vault notes as authoritative over the actual

codebase; always verify against the real files before acting

4e. _TAG-TAXONOMY.md

Define the canonical tag hierarchy. Seed with:

#status/draft  #status/active  #status/deprecated  #status/superseded
#type/adr  #type/plan  #type/session  #type/research  #type/reference  #type/architecture
#priority/high  #priority/medium  #priority/low
#component/   ← one tag per component discovered in step 2

Include a rule: only add tags here first, then use them in notes. Tags not in this file are considered typos.

4f. Architecture.canvas

Write a JSON canvas file with one text node per top-level component discovered in step 2, arranged in a grid layout (300px × 150px nodes, 400px horizontal spacing, 300px vertical). Add edges only where a clear dependency is obvious from the scan. Canvas JSON format:

{
  "nodes": [
    {"id": "1", "type": "text", "text": "ComponentName", "x": 0, "y": 0, "width": 300, "height": 150}
  ],
  "edges": []
}

If the repo has a clear layered structure (e.g. frontend/backend/db), arrange top to bottom to reflect the dependency direction.

5. Offer .gitignore update

Offer to append to /.gitignore:

# Obsidian vault settings (machine-local, not shared)
.obsidian-vault/.obsidian/workspace.json
.obsidian-vault/.obsidian/workspace-mobile.json

Do NOT ignore the full .obsidian/ directory — plugin config (community-plugins.json, graph.json, app.json) is intentional and should be shared. Only ignore workspace state files that record window positions and open tabs.

6. Hand off

  • List every file created (or skipped if updating).
  • Remind the user to open the vault root in Obsidian, then install plugins via

Settings → Community Plugins → Browse (the community-plugins.json lists them but does not auto-install — Obsidian requires a manual install step).

  • Note that Templater must be configured to use _templates/ as its template folder

(Settings → Templater → Template folder location).

  • Suggest opening 00-Home/Home.md as the default starting note and pinning it.

Guardrails

  • Pause for approval after step 3; never generate files without user confirmation.
  • Idempotent on update: skip files that already exist unless the user explicitly chose

regenerate; never silently overwrite a note that may contain the user's own content.

  • Never copy-paste source code into the vault — reference file paths instead. The vault

complements the codebase; it does not duplicate it.

  • All generated content must be grounded in what the repository scan actually found; never

fabricate component names, file paths, or architectural claims.

  • Keep _AI-CONTEXT.md honest: it must warn AI readers to verify against the live

codebase, not treat vault notes as authoritative.

  • If the vault root is inside the repo, ensure it will not break existing tooling (e.g.

test runners that glob all .md files — flag this risk if detected).

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet — be the first.

Versions

  • v0.1.0 Imported from the upstream source.