Build and maintain a personal LLM Wiki: raw evidence stays immutable in raw/, durable knowledge is compiled into wiki/, and SCHEMA.md is the generated wiki's single operating contract.
This file is intentionally short. Load detailed references only for the operation the user requested.
Operating Model
- Keep
SCHEMA.mdas the single source of truth inside every generated wiki. - Keep
wiki/concept-table.mdas the maintained concept map: it complementswiki/index.mdby summarizing durable concepts, relationships, sources, status, and maintenance notes. - Keep
CLAUDE.md,AGENTS.md, and.github/copilot-instructions.mdas thin pointers toSCHEMA.md; never duplicate operating rules into them. - Treat
raw/as read-only evidence. Create and update derived knowledge only underwiki/. - Apply
EXTEND.mdpreferences before bootstrap, ingest, query, lint, or BM25 work. - Ask only for missing decisions, and batch setup questions into one user prompt when possible.
- Prefer progressive disclosure: read the smallest reference file that can complete the current task.
Intent Router
| User intent | Do this | Reference |
|---|---|---|
| Create or bootstrap a new wiki | Run preference preflight, gather setup answers, then generate the scaffold and seed files. | references/workflows/bootstrap.md |
| Ingest one or more sources | Run preference preflight, check the optional BM25 gate, then compile source knowledge into wiki/. |
references/workflows/ingest.md |
| Answer a domain question from the wiki | Run preference preflight, navigate wiki/index.md, use BM25 only as a candidate finder, then cite wiki pages. |
references/workflows/query.md |
| Check wiki health or consistency | Run preference preflight, scan structure and content, report findings, then fix only approved items. | references/workflows/lint.md |
| Configure or use BM25 search | Load preferences, ask before initialization, create local search files, smoke test, and log results. | references/workflows/bm25.md |
| Configure preferences | Locate or create EXTEND.md using the schema and template. |
references/config/extend-schema.md, references/templates/extend.md |
Preference Preflight
Before bootstrap, ingest, query, lint, or BM25 work, read references/config/extend-schema.md and use the first available EXTEND.md in its lookup order. If none exists, run the first-time preference setup and create one from references/templates/extend.md before continuing.
On first use in a session, briefly say which preference file is active. Do not silently use defaults.
Reference Loading Rules
- For bootstrap, read
references/workflows/bootstrap.md, then load each template only when creating that file. - For ingest, query, and lint, read the matching workflow file first; read
references/workflows/bm25.mdonly when preferences or the user request require search behavior. - For schema generation, read
references/templates/schema.mdand inject domain snippets fromreferences/templates/domain-page-types.mdas needed. - For pointer files, read
references/templates/agent-pointer.mdand keep the generated file minimal. - For BM25 initialization, read
references/templates/wiki_fts.pyandreferences/templates/bm25-readme.mdonly after the user approves initialization.
Package Layout Rules
- Put skill-owned runnable helpers in
scripts/if they are meant to be executed from the installed skill package. - Put generated-output templates in
references/templates/, even when the generated file will become executable after it is copied into the user's wiki. - Put long procedural documentation in
references/workflows/and configuration schemas inreferences/config/. - In this skill,
references/templates/wiki_fts.pyis a template for the generated wiki'sscripts/wiki_fts.py; it is not executed in place by the skill.
Hard Rules
- Never overwrite an existing wiki without explicit user approval.
- Never modify files in
raw/except to create empty scaffold placeholders such as.gitkeepduring bootstrap. - Never answer directly from BM25 snippets; open and read the returned wiki pages first.
- Preserve source language during ingest unless the user asks for a different wiki language.
- Update
wiki/index.mdand appendwiki/log.mdwhenever wiki content changes. - If a search index rebuild fails, keep wiki edits, log the failure, and fall back to
wiki/index.mdplus text search.
Core Outputs
A successful bootstrap creates a wiki root containing:
raw/
wiki/index.md
wiki/concept-table.md
wiki/log.md
wiki/overview.md
SCHEMA.md
.gitignore
Optional outputs depend on setup answers and preferences: runtime pointer files, .vscode/settings.json, scripts/wiki_fts.py, indexes/, and exports/.