Bootstrap a new LLM-maintained wiki at a chosen folder, following the llm-wiki.md pattern (a three-layer memex - raw sources, LLM-generated wiki pages, and a CLAUDE.md or AGENTS.md schema that tells the LLM how to ingest and maintain the wiki). Creates the directory layout, writes a tailored schema file, plus index.md and log.md with a bootstrap entry. Use this skill when the user asks to "set up an llm-wiki", "create an LLM wiki", "bootstrap a wiki", "instantiate the llm-wiki pattern", or invokes /setup-llm-wiki. The skill asks the user about target folder, domain (research deep-dive / personalised work wiki / personal knowledge base / business-team wiki / reading a book / combination), source types (web articles, academic PDFs, meeting/podcast transcripts, own notes), image handling, optional search tooling (qmd), schema filename (CLAUDE.md or AGENTS.md), and optional symlinks to sibling folders if the target sits inside an Obsidian vault.
87
90%
Does it follow best practices?
Impact
83%
2.24xAverage score across 4 eval scenarios
Advisory
Suggest reviewing before use
Bootstrap a new LLM-maintained wiki following the pattern from llm-wiki.md. The user picks the folder; you create the structure, schema, and bootstrap files, tailored to their answers.
Gather these inputs before creating any files. Use AskUserQuestion (load via ToolSearch if deferred) for the multiple-choice items; ask the path in plain text since it's free-form.
~ to the home directory. If it doesn't exist, create it. If it exists and is non-empty, list what's there and confirm before adding files.~/Documents/vault/llm-wiki.md. If present, read it for context. If not, proceed without it — the templates encode the pattern's essentials.CLAUDE.md.raw/ subdirectory and an entry under "Source-type specifics" in CLAUDE.md.raw/assets/ conventions.## Search section in CLAUDE.md recommending qmd (local hybrid BM25/vector search with CLI + MCP server) for when the wiki outgrows the index file. The skill does not install qmd — it just documents that the user can.CLAUDE.md). Offer AGENTS.md as an alternative for users running OpenAI Codex or other agents that look for that filename. The contents are the same; only the filename differs..obsidian/ — list the sibling folders and ask which to symlink under raw/.Detect a vault by walking up from the target: parent="$target"; while [ "$parent" != "/" ]; do [ -d "$parent/.obsidian" ] && echo "$parent" && break; parent=$(dirname "$parent"); done.
After gathering inputs:
scripts/create_dirs.sh <target> <source_types_csv>. The CSV is a comma-separated list of chosen slugs from articles,papers,transcripts,notes. The script always creates raw/, raw/assets/, and the five wiki/ subdirs.assets/CLAUDE.md.template, fill in the placeholders documented below, write to <target>/<schema-filename> (defaults to CLAUDE.md; use AGENTS.md if the user prefers Codex/other agents). Never overwrite an existing schema file without confirmation.index.md. Copy assets/index.md.template to <target>/index.md verbatim.log.md. Copy assets/log.md.template and substitute {{BOOTSTRAP_ENTRY}} (see "Bootstrap log entry" below). Write to <target>/log.md.raw/README.md. Read assets/raw-README.md.template, prune the bullet list to chosen source-type subfolders plus any symlinks, write to <target>/raw/README.md.cd <target>/raw && ln -s "../../<sibling>" "<sibling>"..obsidian/ is present at or above the target. See references/obsidian-graph.md for the decision tree (Cases A/B/C), the color palette, and the minimal graph.json body to write.raw/<type>/ and ask to ingest it).assets/CLAUDE.md.template contains these {{PLACEHOLDER}} markers. Replace each with rendered content based on user answers.
{{PURPOSE_PARAGRAPHS}}One or two short paragraphs framing the wiki's purpose, derived from the domain answer. For combinations, describe each strand. Reference phrasings:
{{USER_DESCRIPTION}}Short noun phrase identifying the user. Examples: The user, Jane (jane@example.com), or just first name. Default to The user when no identity has been disclosed.
{{RAW_SUBDIRS}}Markdown bullet list, one line per chosen source type, indented under the raw/ bullet. Use these canonical lines (omit any not chosen). Always include raw/assets/.
- `raw/articles/` — web articles (markdown, often via Obsidian Web Clipper)
- `raw/papers/` — academic papers, technical reports (PDFs)
- `raw/transcripts/` — meeting/call/podcast transcripts
- `raw/notes/` — the user's own free-form notes and journal entries
- `raw/assets/` — images, diagrams, attachments referenced by raw sources{{SYMLINKED_FOLDERS_NOTE}}If symlinks were created, a single bullet line listing them, e.g.:
- `raw/<symlinked-folder>/` — symlinks to sibling folders in `<vault-path>` (currently `Foo`, `Bar`). Treat as raw source material — read but never write. If the user adds new sibling folders, ask whether to symlink them too.If no symlinks, remove the {{SYMLINKED_FOLDERS_NOTE}} line entirely (don't leave a blank).
{{IMAGE_HANDLING_SECTION}}If yes: insert the contents of assets/fragments/image-handling.md (heading included). If no: remove the placeholder line entirely.
{{SOURCE_TYPE_SPECIFICS}}Bullet block under the existing ## Source-type specifics heading. Include only chosen types.
- **Articles** (`raw/articles/`): usually clipped via Obsidian Web Clipper. Frontmatter from the clipper has `source` URL — preserve it in the source page.
- **Papers** (`raw/papers/`): PDFs. Capture authors, year, venue, abstract. Many papers warrant their own concept pages for the methods/ideas they introduce.
- **Transcripts** (`raw/transcripts/`): meeting/call/podcast transcripts (e.g. from Granola). Often messy and long. Extract decisions, action items, and noteworthy claims — most of the transcript is filler. Link to participants as `[[entities/<person>]]`.
- **Notes** (`raw/notes/`): the user's own writing. Treat with weight — these often contain current thinking, hypotheses, and goals. They can become topic seeds.{{SEARCH_TOOLING_SECTION}}If yes (question 6): insert the contents of assets/fragments/search-tooling.md. If no: remove the placeholder line.
{{MCP_INTEGRATIONS_SECTION}}Include only for work / team / business domains (question 3 options 2 or 4, or a combination including those). For pure research or personal knowledge wikis, remove the placeholder. When included: insert the contents of assets/fragments/mcp-integrations.md.
Replace {{BOOTSTRAP_ENTRY}} in log.md.template with this block, dropping conditional fragments (<...>) that don't apply:
## [YYYY-MM-DD HH:MM] schema | bootstrap
- Initialised wiki at `<target-path>` <from the pattern in `<pattern-doc-path>`>.
- Created `raw/{<chosen-types>,assets}/` and `wiki/{entities,concepts,topics,sources,synthesis}/`.
- Wrote `<schema-filename>` (e.g. `CLAUDE.md` or `AGENTS.md`) with conventions for ingest, query, lint, page frontmatter<, image handling><, search tooling><, MCP integrations>.
- Domain: <domain answer>. Source types: <chosen types>.
<- Symlinked: `<sibling-1>`, `<sibling-2>` from `<vault-path>` into `raw/`.>Use today's date and a 24h HH:MM time.
YYYY-MM-DD.index.md, or log.md, do NOT overwrite. Surface the conflict and ask the user how to proceed.