This skill should be used when a user wants to create a new LLM Wiki vault, initialize a knowledge base from scratch, set up a wiki project, or bootstrap a compounding knowledge base. Also triggers on: 'create wiki', 'new vault', 'init wiki', 'start knowledge base', 'set up wiki structure', or any mention of creating a Karpathy-style LLM Wiki.
Interactive wizard that scaffolds a complete LLM Wiki vault: directory structure, schema, config, and git repo. The vault follows the three-layer pattern: raw/ (immutable sources) -> wiki/ (LLM-maintained pages) -> CLAUDE.md (schema).
All generated files use Obsidian Flavored Markdown: wikilinks, YAML frontmatter, callouts.
The init wizard uses templates in skills/init/templates/:
claude-md-template.md — boilerplate for CLAUDE.md in the vault (page types table, conventions, anti-patterns, optional extensions)obsidian-app.json / obsidian-core-plugins.json — minimal Obsidian config enabling graph view, backlinks, and tag panegitignore — vault .gitignore (excludes workspace files, OS files, temp files)To customize defaults before running init, edit these templates in-place.
Run 5 prompts via AskUserQuestion, then generate all files.
Ask the user:
What is the project/wiki name?
This becomes the vault root directory name and appears in CLAUDE.md.
Example: "ml-research", "company-wiki", "reading-notes"
Store as $PROJECT_NAME.
Ask the user which page types to include. Present the default 10 with checkboxes:
Which page types should the wiki support?
Default set (all selected):
1. concept — Core ideas, definitions, mental models
2. entity — External tools, technologies, protocols
3. architecture — System designs, data flows, infrastructure
4. decision — ADRs, trade-off analyses, chosen paths
5. strategy — Plans, roadmaps, positioning
6. org — Team structure, processes, culture
7. comparison — X vs Y evaluations, benchmarks
8. open-question — Unresolved problems, hypotheses
9. source-summary — Summaries of individual sources
10. synthesis — Cross-source analyses, meta-insights
Enter numbers to toggle off, or "all" to keep defaults.
You can also add custom types (e.g., "tutorial", "glossary").
Store as $PAGE_TYPES array.
Ask the user which raw source directories to create:
Which raw source directories do you need?
Default set:
1. knowledge — Articles, papers, reference material
2. specs — Specifications, requirements, RFCs
3. meetings — Transcripts, minutes, recordings
4. docs — Official documentation, manuals
5. external — Third-party content, scraped pages
6. inbox — Temporary landing zone for batch captures (PRs, git logs)
Enter numbers to toggle off, "all" for defaults,
or add custom directories (e.g., "podcasts", "code-reviews").
Store as $RAW_DIRS array.
Ask the user which capture tools are installed:
Which capture tools are available on this machine?
These determine which raw/ ingestion instructions go into CLAUDE.md.
1. defuddle — Web article extraction (HTML to clean markdown)
2. yt-dlp — YouTube/video transcript download
3. pandoc — Document conversion (PDF, DOCX, EPUB to markdown)
Enter numbers for installed tools, or "none".
Store as $CAPTURE_TOOLS array.
Present the full plan and ask for confirmation:
Ready to create:
$PROJECT_NAME/
├── CLAUDE.md (schema + instructions)
├── wiki.config.md (vault settings, YAML frontmatter)
├── index.md (vault entry point)
├── log.md (change log)
├── .gitignore
├── .obsidian/ (minimal Obsidian config)
├── wiki/ (LLM-maintained pages)
└── raw/ (immutable sources)
├── $RAW_DIR_1/
├── $RAW_DIR_2/
└── ...
Page types: [list selected types]
Capture tools: [list selected tools]
Proceed? (yes / edit / cancel)
If "edit", loop back to the relevant step. If "cancel", abort.
After confirmation, create all files in order.
$PROJECT_NAME/
├── wiki/
├── raw/
│ ├── $RAW_DIR_1/
│ ├── $RAW_DIR_2/
│ └── ...
└── .obsidian/
Copy skills/init/templates/claude-md-template.md and substitute:
$PROJECT_NAME — the project name from Step 1$PAGE_TYPE_TABLE — a markdown table row per selected page type (type | description | use-when)$CAPTURE_TOOLS_SECTION — instructions only for tools confirmed installed in Step 4:
npx defuddle "$URL" > raw/external/$(date +%Y-%m-%d)-slug.mdyt-dlp --write-auto-sub --sub-lang en --skip-download -o "raw/external/%(title)s" "$URL"pandoc -s input.pdf -t markdown -o raw/docs/output.mdIf no tools selected, write: "No capture tools configured. Add raw sources manually as markdown files."
---