wiki
Markdown-first knowledge base where the LLM acts as librarian. Ingests raw sources, compiles and interlinks topic files, self-maintains an index. No vector DB or embeddings required -- uses LLM-native navigation over structured markdown up to ~400K words.
- License 许可
- MIT
- 最近更新
- 2026-11-13
- Stars
- ★ 929
- Forks
- 84
01 前言 Front Matter
- name
- wiki
- license
- MIT
- description
- Markdown-first knowledge base where the LLM acts as librarian. Ingests raw sources, compiles and interlinks topic files, self-maintains an index. No vector DB or embeddings required -- uses LLM-native navigation over structured markdown up to ~400K words.
- auto-trigger
- false
- last-updated
- 1775433600000
- user-invocable
- true
- trigger_keywords
- [ "wiki", "knowledge base", "llm wiki", "project wiki", "build a wiki", "maintain knowledge", "knowledge management", "llm-wiki", "karpathy wiki" ]
03 SKILL.md 正文
/wiki -- LLM-Native Knowledge Base
Orientation
Use when: building and querying a markdown-first knowledge base -- ingests raw notes, deduplicates, surfaces answers. Don't use when: capturing session learnings into the evolve pipeline (use /learn); generating structured code documentation (use /doc-gen).
Directory Structure
wiki/
index.md # Master index
raw/ # Unprocessed sources (timestamped files)
topics/ # Compiled topic files (one per topic, interlinked)
.wiki-meta.json # Stats: topic count, source count, last compaction
Commands
| Command | Behavior |
|---|---|
/wiki |
Status overview: topic count, last update, pending raw sources |
/wiki --add [source] |
Ingest a new source into the wiki |
/wiki --query [question] |
Answer a question using wiki knowledge |
/wiki --status |
Detailed wiki health: topic count, staleness, orphan detection |
/wiki --compact |
Merge, deduplicate, and reorganize topics |
/wiki --rebuild-index |
Regenerate index.md from current topic files |
/wiki init [path] |
Initialize a new wiki at the specified path |
Protocol
Command: /wiki init [path]
Create wiki/, wiki/raw/, wiki/topics/, an empty wiki/index.md, and wiki/.wiki-meta.json with fields: created, lastUpdated, topicCount: 0, sourceCount: 0, totalWords: 0, lastCompaction: null. Default path: wiki/ at project root.
Command: /wiki --add [source]
Ingest a new source into the wiki.
Step 1: Determine source type — URL (fetch with WebFetch), file path (read), raw text (use directly), no argument (ask user).
Step 2: Write raw content to wiki/raw/source-{timestamp}.md with header: title/URL, ingested date, type, original reference.
Step 3: Identify 1-5 topics. For each: check if a topic file already exists — append to existing or create wiki/topics/{slug}.md.
Step 4: Each topic file has: title, > Last updated, > Sources, compiled content, and ## Related Topics with [[slug]] cross-links. Scan existing topics for cross-links when writing.
Step 5: Regenerate wiki/index.md with stats header, Topics table ([[slug]] | summary | last updated), and Recent Sources table.
Step 6: Update wiki/.wiki-meta.json with new counts.
Step 7: Output: source description, topics created, topics updated, index counts.
Command: /wiki --query [question]
- Read
wiki/index.md, identify 1-5 relevant topic files, explain reasoning briefly - Read those topics; follow
[[cross-links]]up to 2 hops if relevant - Produce a clear answer citing specific topic files used
- If the wiki lacks enough information: state what it knows, list gaps, suggest
/wiki --addfor missing areas
Command: /wiki --status
Read meta, count topic files and raw sources, check for orphaned topics, broken cross-links, and stale topics (30+ days). Output: topic/source/word counts, last updated/compaction dates, and health issues with counts and lists.
Command: /wiki --compact
- Read
wiki/index.mdand all topic files - Identify: merge candidates (overlapping subjects), split candidates (multiple distinct subjects), stale/outdated content, duplicates
- For each change: describe what and why, make the change, update all affected cross-links
- Rebuild
wiki/index.mdand updatewiki/.wiki-meta.jsonwithlastCompactionand new counts - Output: topics merged/split/removed/resolved, final count, estimated words
Command: /wiki --rebuild-index
Read all topic files, extract title/summary/date, write a fresh wiki/index.md. Output: "Index rebuilt with {count} topics."
Fringe Cases
.planning/does not exist: Run/do setupfirst to initialize the harness state directory.- No wiki directory: Prompt to run
/wiki init. Do not auto-create on query or status. - Source >50K words: Split into sections, warn the user.
- Topic name collision: Merge into existing topic, do not overwrite.
- Empty wiki queried: "The wiki is empty. Add sources with
/wiki --add." - Broken cross-link: During compaction/rebuild — flag. During --add — create stub
[[missing-topic]] (stub -- needs content)if no context. - URL fetch fails: Report failure, suggest pasting content directly.
- Wiki >~400K words: Warn during --status, suggest archiving or
/wiki --compact.
Contextual Gates
Disclosure: "Updating wiki at .planning/wiki/. Files will be created or modified."
Reversibility: amber — creates and modifies .planning/wiki/ files; undo by deleting or reverting changed files.
Trust gates:
- Any: all wiki commands (init, add, query, status, compact, rebuild-index).
Quality Gates
- Every topic file must have a title, last-updated date, and sources list
- Every topic file must have at least one cross-link to another topic (unless it is the only topic)
- The index must accurately reflect all topic files (no orphans after --add or --compact)
- No duplicate topic files (same slug = same file)
- Raw sources are preserved in wiki/raw/ and never deleted
- The --query command must cite specific topic files, not fabricate information
Exit Protocol
Output a summary appropriate to the command executed, then:
---HANDOFF---
- Wiki: {command executed} at {wiki path}
- Topics: {count} total, {new/updated/merged count} changed
- Status: {healthy | needs compaction | has orphans/broken links}
---
04 同仓库更多 Skills
workspace
Multi-repo campaign coordinator. Same lifecycle as fleet -- scope claims, discovery relay, wave-based execution -- but the unit of work is a repo, not a file. Coordinates campaigns across repositories with shared context.
watch
File sentinel that monitors the working directory for changes and marker comments, then auto-triggers appropriate skills. Poll-based via git diff against the last scan commit. Writes intake items for batch processing and routes marker actions through /do. Use for automatic reactions to file changes; do NOT use for one-off inspection or tasks needing human judgment per file.
verify
Self-test the Citadel hook pipeline from within a live session. Exercises real tool calls (Write, Edit, Bash, Read) and checks that hooks fired, telemetry accumulated, and no errors occurred. Reports HOOK HEALTH: PASS or HOOK HEALTH: FAIL with a per-hook breakdown.
unharness
Safely leave Citadel using the active adoption receipt. Produces a no-write, reviewable plan, preserves a portable archive, removes only exact owned material, and reports modified or externally registered surfaces as retained or unknown. Legacy installs must be imported before exact leave is claimed.
triage
GitHub issue and PR investigator. Pulls open issues/PRs, classifies them, searches the codebase for root cause or reviews contributed code, proposes fixes with file:line references, and optionally implements fixes. Use for investigating GitHub issues and reviewing PRs; do NOT use for general code review unrelated to GitHub issues.
test-gen
Generate and verify tests — happy path, edge cases, error paths — using the project's own framework and patterns