by Astro-Han
One skill to build your own Karpathy-style LLM wiki.
# Add to your Claude Code skills
git clone https://github.com/Astro-Han/karpathy-llm-wikiBuild and maintain a personal knowledge base using LLMs. You manage two directories: raw/ (immutable source material) and wiki/ (compiled knowledge articles). Sources go into raw/, you compile them into wiki articles, and the wiki compounds over time.
Core ideas from Karpathy:
Three layers, all under the user's project root:
raw/ — Immutable source material. You read, never modify. Organized by topic subdirectories (e.g., raw/machine-learning/).
wiki/ — Compiled knowledge articles. You have full ownership. Organized by topic subdirectories, one level only: wiki/<topic>/<article>.md. Contains two special files:
wiki/index.md — Global index. One row per article, grouped by topic, with link + summary + Updated date.wiki/log.md — Append-only operation log.SKILL.md (this file) — Schema layer. Defines structure and workflow rules.
Templates live in references/ relative to this file. Read them when you need the exact format for raw files, articles, archive pages, or the index.
Triggers only on the first Ingest. Check whether raw/ and wiki/ exist. Create only what is missing; never overwrite existing files:
raw/ directory (with .gitkeep)wiki/ directory (with .gitkeep)wiki/index.md — heading # Knowledge Base Index, empty bodywiki/log.md — heading # Wiki Log, empty bodyIf Query or Lint cannot find the wiki structure, tell the user: "Run an ingest first to initialize the wiki." Do not auto-create.
Fetch a source into raw/, then compile it into wiki/. Always both steps, no exceptions.
Get the source content using whatever web or file tools your environment provides. If nothing can reach the source, ask the user to paste it directly.
Pick a topic directory. Check existing raw/ subdirectories first; reuse one if the topic is close enough. Create a new subdirectory only for genuinely distinct topics.
Save as raw/<topic>/YYYY-MM-DD-descriptive-slug.md.
descriptive-slug.md). The metadata Published field still appears; set it to Unknown.descriptive-slug-2.md).See references/raw-template.md for the exact format.
Determine where the new content belongs:
These are not mutually exclusive. A single source may warrant merging into one article while also creating a separate article for a distinct concept it introduces. In all cases, check for factual conflicts: if the new source contradicts existing content, annotate the disagreement with source attribution. When merging, note the conflict within the merged article. When the conflicting content lives in separate articles, note it in both and cross-link them.
See references/article-template.md for article format. Key points:
wiki/<topic>/ use ../../raw/<topic>/<file>.md (two levels up to project root).After the primary article, check for ripple effects:
wiki/index.md entries in other topics for articles covering related concepts.Archive pages are never cascade-updated (they are point-in-time snapshots).
Update wiki/index.md: add or update entries for every touched article. When adding a new topic section, include a one-line description. The Updated date reflects when the article's knowledge content last changed, not the file system timestamp. See references/index-template.md for format.
Append to wiki/log.md:
## [YYYY-MM-DD] ingest | <primary article title>
- Updated: <cascade-updated article title>
- Updated: <another cascade-updated article title>
Omit - Updated: lines when no cascade updates occur.
Search the wiki and answer questions. Examples of triggers:
wiki/index.md to locate relevant articles.[Article Title](wiki/topic/article.md) (project-root-relative paths for in-conversation citations; within wiki/ files, use paths relative to the current file).When the user explicitly asks to archive or save the answer to the wiki:
references/archive-template.md. When converting conversation citations to the archive page, rewrite project-root-relative paths (e.g., wiki/topic/article.md) to file-relative paths (e.g., ../topic/article.md or article.md for same-directory).
transformer-architectures-overview.md.wiki/index.md. Prefix the Summary with [Archived].wiki/log.md:
## [YYYY-MM-DD] query | Archived: <page title>
Quality checks on the wiki. Two categories with different authority levels.
Fix these automatically:
Index consistency — compare wiki/index.md against actual wiki/ files (excluding index.md and log.md):
(no summary) placeholder. For Updated, use the article's metadata Updated date if present; otherwise fall back to file's last modified date.[MISSING] in the index. Do not delete the entry; let the user decide.Internal links — for every markdown link in wiki/ article files (body text and Sources metadata), excluding Raw field links (validated by Raw references below) and excluding index.md/log.md (handled above):
Raw references — every link in a Raw field must point to an existing raw/ file:
See Also — within each topic directory:
These rely on your judgment. Report findings without auto-fixing:
Append to wiki/log.md:
## [YYYY-MM-DD] lint | <N> issues found, <M> auto-fixed
Unknown when unavailable).wiki/topic/article.md).wiki/index.md and wiki/log.md. Archive (from Query) updates both. Lint updates wiki/log.md (and wiki/index.md only when auto-fixing index entries). Plain queries do not write any files.One skill to build your own Karpathy-style LLM wiki.
npx add-skill Astro-Han/karpathy-llm-wiki
Works with Claude Code, Cursor, Codex, and other tools that support the Agent Skills standard.
1. Ingest your first source
Give the skill a URL, a file, or paste text directly:
"Ingest this article: https://example.com/attention-is-all-you-need"
The skill fetches the content into raw/, then compiles it into a wiki article under wiki/.
2. Ask your wiki a question
"What do I know about attention mechanisms?"
The skill searches your wiki and answers with citations linking back to your articles.
3. Keep it healthy
"Lint my wiki"
The skill checks for broken links, missing index entries, stale cross-references, and reports potential issues.
Inspired by Karpathy's LLM Wiki idea:
"The LLM writes and maintains the wiki; the human reads and asks questions."
The skill manages two directories in your project:
your-project/
├── raw/ ← Immutable source material (you or the LLM add, never modify)
│ └── topic/
│ └── 2026-04-03-source-article.md
├── wiki/ ← Compiled knowledge (LLM maintains)
│ ├── topic/
│ │ └── concept-name.md
│ ├── index.md ← One-page table of contents
│ └── log.md ← Append-only operation log
Three operations:
| Operation | What it does |
|-----------|-------------|
| Ingest | Fetch a source into raw/, compile into wiki/, update index and cross-references |
| Query | Search the wiki and answer with citations. Optionally archive answers as wiki pages |
| Lint | Auto-fix broken links and index gaps. Report contradictions, orphan pages, stale content |
The wiki compounds over time. Each new source enriches existing articles, adds cross-references, and flags conflicts.
This skill follows the agentskills.io open standard. It works with any LLM coding tool that supports SKILL.md:
| Tool | Install method |
|------|---------------|
| Claude Code | npx add-skill Astro-Han/karpathy-llm-wiki |
| Cursor | npx add-skill Astro-Han/karpathy-llm-wiki (auto-converts) |
| Codex CLI | Copy to .agents/skills/karpathy-llm-wiki/ |
| Others | Copy SKILL.md + references/ to your tool's skill directory |
This is an unofficial community implementation of the LLM Wiki workflow described in Karpathy's idea file (April 2026). The core value is a battle-tested set of compilation principles and workflow templates, not the code itself.
No comments yet. Be the first to share your thoughts!