Create and incrementally build synthesis documents from multiple sources.
Output Location
All synthesis documents go in: my-vault/06 Knowledge Base/Synthesis/[Topic]/
Structure:
my-vault/06 Knowledge Base/Synthesis/ └── ADHD/ ├── ADHD Synthesis.md # Main synthesis ├── ADHD Sources.md # Sources table + processing log └── ADHD Medications Synthesis.md # Sub-topic (if created)
Queue Files
Queues live in: .claude/skills/synthesize/references/queues/[topic].json
{ "name": "ADHD", "topic_folder": "ADHD", "batch_size": 3, "max_discovered_per_source": 3, "watch_patterns": [ "my-vault/06 Knowledge Base/Capture/Videos/**/ADHD.md", "my-vault/01 Inbox/adhd.md", "my-vault/04 Personal/Health/ADHD.md" ], "sources": [ {"path": "my-vault/path/to/note.md", "status": "pending", "type": "local"}, {"path": "my-vault/path/to/video.md", "status": "processed", "type": "local"}, {"url": "https://example.com/study", "status": "pending", "type": "web", "discovered_from": "src-2", "context": "Key study on medication timing"}, {"search": "Barkley 2023 executive function", "status": "pending", "type": "search", "discovered_from": "src-2", "context": "Referenced as foundational research"} ], "last_run": "2026-01-14T10:00:00Z" }
Source types:
-
local
-
Path to existing note in my-vault
-
web
-
URL to fetch and process
-
search
-
Search query to find the source (use WebSearch, then fetch best result)
Source status values: pending , processed , skipped
watch_patterns: Glob patterns for /synthesize update to scan. Paths matching these patterns get added to the queue automatically (if not already present).
Commands
-
/synthesize [topic]
-
Continue processing the named synthesis
-
/synthesize list
-
Show all active synthesis queues and progress
-
/synthesize new [topic]
-
Create a new synthesis queue
-
/synthesize add [topic] [path-or-glob]
-
Add sources to a queue
-
/synthesize update [topic]
-
Scan watch_patterns for new sources and add to queue
Architecture
This skill uses a coordinator + subagent pattern for efficient processing:
-
Coordinator (Sonnet/Opus): Manages state, spawns extractors, merges findings into synthesis
-
Extractors (Haiku subagents): Each reads one source, extracts structured findings in parallel
This allows processing 6-10 sources per batch instead of 2-3, with ~3x throughput improvement.
Workflow
Starting a Session
-
Load queue file for the topic
-
Read the main synthesis doc (or create from template if first run)
-
Read the sources file
-
Identify next N pending sources (N = 6-10 for parallel extraction)
Phase 1: Parallel Extraction (Haiku Subagents)
Spawn 6-10 Haiku extractors in parallel using the Task tool:
Task tool call:
- model: haiku
- subagent_type: general-purpose
- prompt: (see Extractor Prompt Template below)
Extractor Prompt Template:
Read this file and extract [TOPIC]-relevant findings in a structured format.
FILE: [full path to source]
Return your findings as a simple list in this format: CATEGORY: [Category Name]
- Finding 1 (be specific, include numbers/names if mentioned)
- Finding 2 ...
Only include substantive findings relevant to understanding [TOPIC]. Skip metadata, timestamps, and filler. If the source has little new information, just return "MINIMAL_CONTENT".
For web sources, modify prompt to use WebFetch first:
- Use WebFetch to retrieve: [URL]
- Extract [TOPIC]-relevant findings from the content...
For search sources, modify prompt to search first:
- Use WebSearch to find: [search query]
- Use WebFetch on the best result
- Extract [TOPIC]-relevant findings...
Phase 2: Merge Findings (Coordinator)
Once all extractors return:
-
Collect all extraction results
-
Review for:
-
New findings to add to existing categories
-
Findings that warrant new categories
-
Contradictions with existing content → add to Open Questions
-
Dense categories → add to Suggested Sub-Topics
-
Update synthesis doc with citations (^[src-N])
-
Add sources to Sources table
-
Mark sources as processed in queue
Phase 3: Discovery (Coordinator)
While reviewing extractions, watch for references worth following up:
-
Studies or papers cited
-
Articles or books mentioned
-
Other videos or talks referenced
-
Experts or researchers named
Limit: 3 discovered sources per source processed.
Discovery
While processing each source, watch for references worth following up:
-
Studies or papers cited
-
Articles or books mentioned
-
Other videos or talks referenced
-
Experts or researchers named (for potential lookup)
Limit: 3 discovered sources per source processed.
For each valuable reference:
-
Check if already in queue (deduplicate by URL, title, or path)
-
Add to queue with:
-
type : web if URL available, search if just a name/title
-
discovered_from : source ID where you found it
-
context : why it's relevant (1 sentence)
-
status : pending
Prioritize discoveries that:
-
Are directly cited as evidence for claims
-
Come from credible sources (peer-reviewed, recognized experts)
-
Fill gaps in the current synthesis
Skip discovering:
-
Tangential references not central to the topic
-
Sources that would require paid access (note in processing log if significant)
-
Generic resources (e.g., "see Wikipedia for more")
Ending a Session
-
Write updated synthesis doc
-
Write updated sources file
-
Write updated queue file with new last_run timestamp
-
Add entry to Processing Log (include discovery count)
-
Report: Processed X items. Discovered Y new sources. Z items remaining. Run
/synthesize [topic]to continue.
If all sources processed:
Synthesis complete. X total sources processed. Review Suggested Sub-Topics for potential expansion.
Updating a Synthesis (/synthesize update [topic] )
Use this to find new sources that match watch_patterns without reprocessing old ones.
-
Load queue file for the topic
-
Collect all paths from watch_patterns using Glob
-
Filter out any paths already in sources (regardless of status)
-
Add new matches to sources with:
-
type : local
-
status : pending
-
Update queue file
-
Report: Found X new sources matching watch_patterns. Queue now has Y pending items. Run
/synthesize [topic]to process.
If no new sources found:
No new sources found. Synthesis is up to date with watch_patterns.
Tip: Run /synthesize update [topic] periodically after adding new notes or video summaries to keep the synthesis current.
Synthesis Document Template
Create at: my-vault/06 Knowledge Base/Synthesis/[Topic]/[Topic] Synthesis.md
class: Synthesis topic: [Topic Name] created: [Date] lastUpdated: [Date] status: in-progress
Overview
[2-3 sentence summary of the topic - updated as understanding deepens]
Key Findings
[Category]
- Finding with specific details ^[src-1]
- Another finding that multiple sources support ^[src-1] ^[src-3]
<!-- Add categories as needed based on source content -->
Open Questions
<!-- Contradictions, uncertainties, areas needing human judgment -->
- [Topic]: Source A says X ^[src-1], but Source B says Y ^[src-2].
Suggested Sub-Topics
<!-- Categories that could warrant their own synthesis -->
- [Sub-topic] - X sources touched on this; may warrant dedicated synthesis
Sources and processing log: [[Topic Sources]]
Sources Document Template
Create at: my-vault/06 Knowledge Base/Synthesis/[Topic]/[Topic] Sources.md
class: Note parent: "[[Topic Synthesis]]"
Sources
| ID | Title | Date | Type | Discovered | Path/URL |
|---|---|---|---|---|---|
| src-1 | Source Title | 2025-03 | Video | - | [[path/to/note]] |
| src-2 | Study Name | 2024-11 | Web | from src-1 | link |
Processing Log
- 2026-01-14: Initial synthesis. Processed 3 items. Created categories for X, Y, Z. Discovered 2 new sources.
- 2026-01-15: Processed 3 items. Flagged contradiction on [topic]. Discovered 1 new source.
Length Discipline
Core content (Overview through Suggested Sub-Topics) must stay under 300 lines.
Guidelines:
-
Overview: 5 lines max
-
Categories: 8 max in main doc
-
Points per category: 15 max
-
Open Questions: 10 max
When a category exceeds ~40-50 lines or has 5+ sources going deep:
-
Summarize tightly in the main doc (5-10 key points)
-
Add to Suggested Sub-Topics
-
Sub-topic syntheses get their own doc in the same folder, linking back to parent
Handling Contradictions
When new information conflicts with existing content:
-
Do not silently replace the existing information
-
Move both claims to Open Questions with citations:
-
Medication timing: Take with food for reduced side effects ^[src-2], but empty stomach for faster absorption ^[src-5]. May depend on specific medication.
-
If a clear resolution exists (newer research, more credible source, broader consensus), note it:
-
Resolved: Earlier sources suggested X, but consensus now supports Y ^[src-8] ^[src-9] ^[src-10]
Citation Format
Use ^[source-id] inline, where source-id matches the ID column in the Sources table.
-
Single source: Finding here ^[src-1]
-
Multiple sources: Well-supported finding ^[src-1] ^[src-3] ^[src-7]
-
Conflicting sources: Note in Open Questions section
Adding Sources to Queue
Manual Addition
/synthesize add adhd my-vault/path/to/specific/note.md
Glob Pattern
/synthesize add adhd "my-vault/06 Knowledge Base/Capture/Videos/**/ADHD.md"
By Tag (search and add)
When adding, search for relevant notes:
-
Notes with topic in filename
-
Notes with relevant tags
-
Video summaries from relevant channels
Deduplicate against existing sources in queue before adding.
Creating Sub-Topic Syntheses
When a sub-topic warrants its own document:
-
Create new queue: /synthesize new "ADHD Medications"
-
Set topic_folder to match parent: "ADHD" (keeps files together)
-
Add relevant sources (can include already-processed sources from parent for deeper dive)
-
In parent synthesis, add link: See also: [[ADHD Medications Synthesis]]
-
In sub-topic synthesis Overview, note parent: Deep-dive from [[ADHD Synthesis]]