Overview
RAG 는 질문마다 문서를 검색·재합성합니다. LLM Wiki는 다릅니다 — LLM 이 자료를 한 번 읽고 structured wiki 로 컴파일하고, 새 자료가 올 때마다 incremental update. 결과물은 점점 더 풍부해지는 compounding knowledge base.
"The tedious part of maintaining a knowledge base is not the reading or the thinking — it's the bookkeeping." — Andrej Karpathy, LLM Wiki Gist (2026-04-06)
이 템플릿에 포함된 것
/ingest 시 미래의 나에게 편지를 남기듯, 왜 수집했고 어디에 쓸지 한 줄 기록. 수집은 미래의 나와 하는 대화.3-Layer Architecture
각 계층은 소유자와 규칙이 다릅니다. 이 분리가 깨지면 harness 가 무너집니다.
CLAUDE.md + Core Context.md + .claude/commands/ — LLM 의 행동 규칙. harness 의 단일 source of truth.20. Wiki/ — Concepts, Entities, Guides, Maps (MOC). LLM 이 자유 편집. cross-reference, 모순 플래그, incremental update.10. Raw Sources/ — 원본 보존. ## Original Content 섹션 verbatim 강제 (PostToolUse hook). LLM 은 읽기만.RAG vs LLM Wiki
LLM Wiki 는 벡터 DB 없이 마크다운 파일만으로 작동. 검색은 qmd (BM25 + 벡터 하이브리드).
7 Slash Commands
.claude/commands/ 에 markdown 으로 정의. 모든 interactive command 는 Core Context 를 prerequisite 로 로드.
00. Inbox/ 스캔 후 배치 처리. 모드: single-axis (전체 동일 목적) / per-file (파일별) / auto-infer (LLM 추론).reusableFor 기록.collectionPurpose coverage % + Core Context age + Inbox 백로그./ingest 실행 예시
# URL 하나로 시작 $ /ingest https://gist.github.com/karpathy/... # Step 0 — 목적 질문 "이 소스를 왜 수집하셨나요? 7 재활용 축 중 어디에?" → (5) CMDS 시스템 — Karpathy 원문 확인 # Step 0-a — mothership 검색 ✓ Found 3 related notes in mothership # Step 1-6 — 컴파일 ✓ Raw Source saved ✓ 10 wiki pages created/updated ✓ log, index synced
2 PostToolUse Hooks
.claude/settings.json 에 등록. Write/Edit 후 자동 실행.
## Original Content 섹션 검증. 없거나 20줄 미만이면 exit code 2 — Claude 에게 수정 강제. LLM 이 요약으로 덮어쓰는 실수 방지.settings.json
{
"hooks": {
"PostToolUse": [{
"matcher": "Write|Edit|MultiEdit",
"hooks": [
{ "type": "command",
"command": ".claude/hooks/validate-raw-source.sh" },
{ "type": "command",
"command": ".claude/hooks/qmd-reindex.sh" }
]
}]
}
}
미래의 나에게 보내는 편지
수집은 미래의 나와 하는 대화다. 지금 이 소스를 수집하는 이유와 맥락을 한 줄로 남기지 못한다면, 미래의 나는 이 자료를 왜 모았는지 기억하지 못한다.
"수집은 미래의 나에게 보내는 편지다. 왜 이걸 모았는지, 어디에 쓸 건지 — 한 줄이면 충분하다. 그 한 줄이 없으면 맥락 없는 파편이 된다."
7 재활용 축 (예시 — 사용자가 직접 정의)
v2 YAML Frontmatter Keys
collectionPurposemainVaultRelatedmainVaultCmdsreusableForCore Context
모든 /ingest /query /lint 전에 LLM 이 먼저 읽는 사용자 맥락 노트. 이것 없이는 모든 operation 이 "목적 없는 자동 정리" 로 전락.
5개 섹션 (채워서 사용)
"나는 원래 A 를 연구하던 사람이다. 지금 B 를 말할 때도 내가 보는 것은 결국 A 다." — 연속성 선언 템플릿
18 Web Clipper Templates
Obsidian Web Clipper 용 JSON 모음. 브라우저에서 00. Inbox/ 로 직접 캡처.
전체 JSON: 90. Settings/Sharing/clipper-*.json
Obsidian Web Clipper → Settings → Templates → Import
Quick Start — 4 Steps
1. Clone
cd ~/DEV git clone https://github.com/johnfkoo951/cmds-llm-wiki.git my-llm-wiki cd my-llm-wiki
2. Placeholder 치환
# 본인 값으로 수정 후 실행 LC_ALL=C find . -type f \( -name "*.md" -o -name "*.sh" -o -name "*.yml" \) \ -not -path "./.git/*" -print0 | xargs -0 sed -i '' \ -e 's|{your-name}|홍길동|g' \ -e 's|{Your Name}|Jane Doe|g' \ -e "s|{PATH_TO_YOUR_LLM_WIKI}|$HOME/DEV/my-llm-wiki|g"
3. Core Context 채우기
Obsidian 에서 Core Context.md 열기 → 정체성 + 재활용 축 채우기 → status: template → status: active
4. 첫 /ingest
claude # Claude Code 에서: /status /ingest https://gist.github.com/karpathy/442a6bf555914893e9891c11519de94f