
Wiki synthesis
Karpathy-style ingest. Turning chat into queryable knowledge.
What synthesis is
Most operators using Claude generate hundreds of hours of chat history within months. The chat archive contains real knowledge — debugging insights, framework decisions, market research, vendor comparisons. The chat archive also makes that knowledge effectively unfindable because it’s linear, un-indexed, and only reads in time-order.
Synthesis is the act of compressing chat (or any raw source) into focused, cross-linked wiki pages that the agent can read in milliseconds at session start. The chat stays as backup. The wiki becomes the primary read.
The pattern is borrowed from how Andrej Karpathy talks about his note-taking: atomic concept pages, dense cross-linking, an index as the entry point. The format is small. The discipline is everything.
This lesson is the 5-step ingest workflow, the page format that makes pages queryable, the lint cadence that keeps the wiki healthy.
The 1000-hour story
Six months in, I had something like 1000 hours of Claude Code chat history. I knew there was gold buried in it — debugging patterns I’d figured out, framework decisions I’d made, market research I’d compiled. I couldn’t find any of it.
Every time I needed to recall something, I’d either spelunk through old transcripts (slow, frustrating) or just re-derive the answer from scratch (wasted hours, knowledge that didn’t compound). The chat archive was simultaneously the only record I had AND the wrong shape for retrieval.
The fix took a workflow change, not a tool change. I stopped treating chat as the artifact. The artifact became a synthesized wiki page in 09-Research/. Every time I had a real session — a debugging push, a research dive, a framework decision — I ended it with: “summarize this into a wiki page.”
Three months in, the wiki had ~80 pages. Knowledge questions that used to take 10 minutes of chat-spelunking now took 10 seconds of agent-reads-the-page. The chat archive was still there as backup. It just wasn’t the primary read anymore.
The lesson took longer to learn than it should have. Most operators get to it eventually; this lesson is the shortcut.
Three ways synthesis fails
Even with the workflow in place, three patterns silently break the wiki. Hover any card to see the diagnosis.
The chat archive
The wiki without summaries
The orphaned page
The fix in all three: discipline on the workflow steps, especially step 5 (update the index). The wiki rots characteristically when steps get skipped.
The lint test
Run this monthly. Surfaces the six characteristic ways a wiki rots over time.
Walk every page in 09-Research/ and report:
1. ORPHANED — pages with no incoming wikilinks from other pages.
These are unfindable. Either link them in or archive them.
2. NO SUMMARY — pages missing the one-sentence italic summary
at the top. The index can't load these meaningfully.
3. STALE — pages with timestamps >6 months old. Either refresh
the content or add a "verified-as-of" note. Flag for re-check.
4. CONTRADICTIONS — pages making different claims about the same
concept. List both, suggest reconciliation.
5. MISSING CROSS-REFS — page A mentions B but doesn't [[link]]
to the page about B. Suggest the wikilinks to add.
6. COVERAGE GAPS — concepts that appear in 3+ pages but have no
dedicated synthesis page. List them as ingest candidates.
Output a numbered list of fixes. Mark which are auto-fixable vs
which need human decision.Six categories. ~30 min monthly to maintain a healthy wiki.
The wiki rots in predictable ways. Without monthly lint, it goes from “useful index” to “pile of files” within 6 months. With consistent lint, it gets better over time — pages get cross-referenced, summaries tighten, gaps fill in.
The cost is small. The cost of skipping it — entire knowledge layer becoming untrustworthy — is large.
Annotated transcript
A real conversation — operator with chat archive that’s become unfindable. Click any pinned annotation under an agent reply to expand the “why this turn matters” commentary.
Five operator turns, four agent turns. Result: the workflow, the format, the lint cadence.
- operator
I have hundreds of hours of chat history with Claude. I know there's gold in it but I can't find anything. What do I do?
- agent
The chat archive is raw material, not the artifact. The artifact is a synthesized wiki page. The fix is a 5-step ingest workflow:
1. Read the source fully (chat transcript, research note, meeting log).
2. Identify entities, concepts, decisions, relationships.
3. Create or update wiki pages — one focused page per concept.
4. Cross-link with [[wikilinks]].
5. Update 09-Research/index.md.Skip step 5 and the page is unfindable. That's the most common failure.
- operator
OK but I have hundreds of hours. Where do I start?
- agent
Don't try to ingest the past in bulk — diminishing returns. Two strategies that actually work:
Forward-only ingest. From today, every long session ends with "summarize this into a wiki page." Build the synthesis layer going forward. After 30 days you have the most relevant context indexed without spelunking.
Targeted backfill. When you ask a knowledge question and the agent says "I'd need to find that in chat history," THAT specific topic gets a wiki page. The questions you actually ask reveal what's worth synthesizing. Everything else is over-fitting.
Most operators use both. Forward-only by default; targeted backfill when a topic surfaces.
- operator
What does a good wiki page look like? Should it be exhaustive?
- agent
Short, focused, opinionated. The format I run:
# [Title — concept-level, not session-level] > One-sentence summary in italics. This is what loads in the index. ## Overview [2-3 paragraphs synthesizing the topic. Not exhaustive. Compressed enough that re-reading is fast.] ## Key Points - [Bulleted facts and rules — what someone would tell a colleague] ## Related [[wikilink to adjacent page]] | [[another adjacent page]] ## Sources - [[2026-04-15 chat — debugging X]] — date - [[Meeting with Y — date]]Four sections + summary. Most pages are 200-400 words. If a page goes past 800 words, it's probably two pages — split it.
- operator
How often should I lint the wiki?
- agent
Monthly is the right cadence for most operators. The lint pass:
1. Orphaned pages — pages with no incoming wikilinks. Either link them in or move to 11-Archive/.
2. Contradictions — two pages saying different things about the same concept. Reconcile or note the dispute.
3. Stale claims — pages with timestamps >6 months old that haven't been verified recently. Refresh or flag.
4. Missing cross-references — page A mentions concept B but doesn't link to the page about B. Fix the link.
5. Coverage gaps — topics that show up in chat repeatedly but have no wiki page. Synthesize.Usually a 30-min monthly pass. The wiki rots in characteristic ways without it; lint keeps the structure healthy.
The page format
Every wiki page in 09-Research/ follows this format. Mandatory.
# [Title — concept-level, not session-level]
> One-sentence summary in italics. This is what loads in the index.
## Overview
[2-3 paragraphs synthesizing the topic. Not exhaustive.
Compressed enough that re-reading is fast.]
## Key Points
- [Bulleted facts and rules — what someone would tell a colleague
in 30 seconds]
- [5-8 bullets is healthy; if you have 15, the page is too broad —
split it]
## Related
[[wikilink to adjacent page]] | [[another adjacent page]]
## Sources
- [[2026-04-15 chat — debugging X]] — date
- [[Meeting with Y — date]]
- [URL or external reference] — accessed YYYY-MM-DD
Four sections + the summary. Most pages are 200-400 words. If a page exceeds 800 words, it’s probably two pages — split it.
Why this format works:
- One-sentence summary is what the agent reads in the index without loading full pages. Quick relevance scan.
- Overview synthesizes — gets the reader oriented in 60 seconds.
- Key Points is the dense load-bearing layer — what someone would actually use to act.
- Related is the graph — wikilinks turn the wiki from files into a queryable network.
- Sources is provenance — without it, you can’t tell whether the synthesis is current.
The 5-step ingest workflow
When you ask Claude to ingest a source — chat transcript, meeting note, research file — these are the five steps. Skip any step and the wiki degrades. The most-skipped step is #5; the wiki rotting cascade starts there.
- Read the source fully. Not skim. The synthesis is only as good as the comprehension.
- Identify entities, concepts, decisions, and relationships relevant to your work. Not everything in the source — only what generalizes beyond this specific session.
- Create or update wiki pages — one focused page per concept. Apply the standard format. New pages get filenames like
concept-name.md; existing pages get amended. - Cross-link with [[wikilinks]] to existing pages. The graph IS the wiki; without links, you have a pile of files.
- Update
09-Research/index.mdwith the new entries (or amended ones). One line per page:- [[Page title]] — One-sentence summary.
Step 5 is non-negotiable. If the index doesn’t list the page, the agent won’t find it next session. Future ingestions will duplicate the topic, creating contradictions. The whole wiki layer fails silently.
Three diagrams
Prompt kit
Three prompts for synthesis and maintenance. Save in your CLAUDE.md or a personal snippets file.
Walk every page in 09-Research/ and report:
1. ORPHANED — pages with no incoming wikilinks from other pages.
These are unfindable. Either link them in or archive them.
2. NO SUMMARY — pages missing the one-sentence italic summary
at the top. The index can't load these meaningfully.
3. STALE — pages with timestamps >6 months old. Either refresh
the content or add a "verified-as-of" note. Flag for re-check.
4. CONTRADICTIONS — pages making different claims about the same
concept. List both, suggest reconciliation.
5. MISSING CROSS-REFS — page A mentions B but doesn't [[link]]
to the page about B. Suggest the wikilinks to add.
6. COVERAGE GAPS — concepts that appear in 3+ pages but have no
dedicated synthesis page. List them as ingest candidates.
Output a numbered list of fixes. Mark which are auto-fixable vs
which need human decision.Read the file at <path> (chat transcript, meeting note, research source).
Walk through the 5-step ingest:
1. Read the source fully.
2. Identify entities, concepts, decisions, and relationships
relevant to my work.
3. Create or update wiki pages in 09-Research/ — one focused page
per concept. Use the standard format (one-sentence summary,
overview, key points, related, sources).
4. Add [[wikilinks]] to connect to existing pages where they apply.
5. Update 09-Research/index.md with new entries (one-line per
page, summary text from the page).
Show me a diff of what would change. Don't apply yet — I'll review
and approve.Read this chat transcript: <paste or path>.
Identify the load-bearing knowledge — facts, decisions, frameworks,
or rules that would generalize beyond this specific conversation.
Draft a wiki page in the standard format:
- Title (concept-level, not session-level)
- One-sentence summary
- Overview (2-3 paragraphs)
- Key Points (5-8 bullets, each is a generalizable fact or rule)
- Related (wikilinks to adjacent topics — only if they exist)
- Sources (cite the chat by date)
If the chat doesn't contain anything generalizable, say so. Not
every conversation produces a wiki page; most don't.Apply this — synthesize one piece
45-minute exercise. Pick one thing you’ve answered before but can’t easily find now. Synthesize it. Run the test.
Build your first synthesized wiki page
Each step takes ~10 minutes. Progress saves automatically.
- 01Pick one piece of work that's currently lost in chat or research scattering — something you've answered before but can't find.Common: a debugging pattern, a vendor/tool comparison, a market research summary, a framework you've used.
- 02Apply the ingest prompt to the source. Have Claude draft a wiki page.Standard format: one-sentence summary, overview, key points, related, sources.
- 03Save the page in 09-Research/. Update 09-Research/index.md with the new entry.Step 5 of the workflow. Without this the page is unfindable. Non-negotiable.
- 04Open a fresh Claude Code session. Ask the question that originally surfaced the topic.If the agent now answers cleanly by reading the wiki page, the synthesis is working.
- 05Set a monthly lint reminder — 30 min on the first Monday of the month.Run the lint prompt. Apply the fixes. The wiki stays healthy with consistent maintenance.