synthesize
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-vaultweb- URL to fetch and processsearch- 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:
1. Use WebFetch to retrieve: [URL]
2. Extract [TOPIC]-relevant findings from the content...
For search sources, modify prompt to search first:
1. Use WebSearch to find: [search query]
2. Use WebFetch on the best result
3. 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
processedin 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:webif URL available,searchif just a name/titlediscovered_from: source ID where you found itcontext: 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_runtimestamp - 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_patternsusing Glob - Filter out any paths already in
sources(regardless of status) - Add new matches to
sourceswith:type:localstatus: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](url) |
## 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_folderto 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]]
More from taylorhuston/local-life-manager
daily-review
Complete daily journal review. Use at end of day or next morning to fill in journal sections, review highlights, and plan tomorrow. Triggers on "daily review", "end of day", "journal review", "what did I do today".
48weekly-review
Weekly review and planning session. Use at end of week or weekend to review progress, plan next week, and set priorities. Triggers on "weekly review", "plan my week", "what did I do this week", "Sunday planning".
25daily-journal
Daily journal management for the my-vault Obsidian vault. Use for morning routines, daily reviews, quick journal updates, checking yesterday's entry, or setting today's highlight. Triggers on "good morning", "daily review", "journal", "what did I do", "highlight".
23life-planning
Cross-repo life and project planning. Use when user wants to plan their week, prioritize projects, review progress across all areas, or make decisions about what to focus on. Triggers on "plan my week", "what should I work on", "prioritize", "weekly review", "life planning".
23flashcards
Generate spaced repetition flashcards from notes or topics. Use when user wants to create flashcards, make review cards, prepare for spaced repetition, or convert notes to quiz format. Triggers on "flashcards", "make cards", "spaced repetition", "review cards".
21video-summarize
Summarize a single YouTube video and create a note. Use when user shares a video URL or asks to summarize a specific video. Triggers on "summarize this video", "video summary", YouTube URLs.
17