Process multiple source documents with Extract-Then-Aggregate discipline. Use when user shares multiple transcripts, emails, or documents for batch processing. See also: `capture-meeting` for a single meeting transcript; `file-document` for a single document; `summarize-doc` when you only need a summary.
Process multiple source documents with Extract-Then-Aggregate discipline. Use when user shares multiple transcripts, emails, or documents for batch processing. See also: `capture-meeting` for a single meeting transcript; `file-document` for a single document; `summarize-doc` when you only need a summary.
argument-hint
["folder-path"]
effort-level
max
Ingest Sources
Process multiple source documents (transcripts, emails, documents) using Extract-Then-Aggregate discipline to ensure no entity with dedicated sources gets lost.
Trigger
"Process these transcripts"
"Here are my notes from [event]"
Multiple files shared in sequence
"Here's everything about [topic]"
Folder path provided with multiple files
/ingest-sources
Why This Skill Exists
When processing many sources, the failure mode is jumping to aggregation and missing entities that have dedicated sources but aren't prominent in high-traffic threads. A person with 2 transcripts dedicated to them can get lost if they're not mentioned often in emails.
The discipline: Inventory before processing, extraction before synthesis.
Input
User provides one of:
Folder path containing multiple files
List of file paths
Multiple documents pasted in sequence
Reference to previously shared content
The Five-Phase Workflow
Phase 1: Inventory
Before reading any content, create a manifest of all sources:
Show inventory to user before proceeding. This prevents partial processing.
Phase 2: File-Then-Extract (Per Document)
CRITICAL: For each document, file it BEFORE extracting. This ensures provenance.
For each source in inventory:
1. READ the full content
2. CALL `claudia memory document store --project-dir "$PWD"` immediately (do not skip!)
3. THEN extract entities/facts/commitments
Process each document systematically. Use IngestService (via local Ollama) when available, or extract directly.
The dedicated_to field is essential. If a source is primarily about a specific entity (not just mentioning them), mark it. This prevents the "missing entity" problem.
Phase 3: Consolidation
After all extractions complete, merge by entity:
Canonicalize names:
Check existing entity_aliases table for known aliases
Fuzzy match "Sarah" vs "Sarah Chen" vs "S. Chen"
Ask user to confirm ambiguous matches
Merge semantically identical facts:
"Sarah prefers Slack" + "Sarah likes async comms" → single fact about communication preference