kbanc85/claudia/ingest-sources
Claude Code and agent skill by kbanc85/claudia
- community
Checking that the SKILL.md file is still in the repository.
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.
Install
npx vskill@latest install kbanc85/claudia/ingest-sourcesSKILL.md
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.
Process each document systematically. Use IngestService (via local Ollama) when available, or extract directly.
Auto-detect source type:
.md,.txtwith participant names →meetingmode- Email headers detected →
emailmode .pdfor formal structure →documentmode- Mixed content →
generalmode
Extraction schema per document:
Progress tracking:
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_aliasestable 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
- Keep the more specific version
Track source counts:
Phase 4: Verification
Before storing anything, verify completeness:
User must confirm before proceeding to storage. This is the checkpoint that catches the "missing entity" problem.
Phase 5: Storage
After user confirms verification:
1. Verify all sources filed: Sources were already filed during Phase 2 (File-Then-Extract). Verify the file count matches:
If any sources weren't filed in Phase 2, file them now before proceeding.
Files are auto-routed to entity folders:
people/sarah-chen/transcripts/...clients/acme-corp/documents/...projects/alpha/emails/...
2. Create/update entities:
3. Store facts and relationships:
4. Link provenance:
This creates the chain: any fact can trace back to the exact document it came from.
Output Format
Judgment Points
Ask for confirmation on:
- Ambiguous entity matches (is "S. Chen" the same as "Sarah Chen"?)
- Sources with no extractable entities (manual review needed?)
- Importance scores for extracted facts
- Proceeding past verification phase
- Creating new entities vs linking to existing
Quality Checklist
- [ ] Inventory created before reading content
- [ ] Every source gets extraction record (none skipped)
- [ ] `dedicated_to` field populated for sources primarily about an entity
- [ ] Verification phase completed with user confirmation
- [ ] Dedicated source rule enforced (2+ dedicated = must appear proportionally)
- [ ] All sources filed via
claudia memory document store - [ ] Provenance chain complete (memories link to documents)
- [ ] No entity lost that had dedicated sources
Error Handling
If extraction fails for a source:
- Log the failure
- Continue with other sources
- Surface in verification phase
- Offer manual review option
If IngestService unavailable (no Ollama):
- Fall back to direct Claude extraction
- Slower but still systematic
- Same extraction schema applies
If verification fails:
- Do NOT proceed to storage
- Show which entities are missing
- Offer to re-extract specific sources
- User must explicitly override to continue
Extensibility
This workflow is schema-agnostic. Works for any source type:
| Data Type | Detection | Extraction Mode | |
|---|---|---|---|
| Meeting transcripts | .md, .txt with names | meeting | |
| Email threads | Email headers | email | |
| Documents/PDFs | .pdf, formal structure | document | |
| Research notes | Mixed content | general | |
| Slack exports | Message format | general | |
| CRM exports | Structured records | general |
Add new extraction modes to IngestService if needed, or use general mode which extracts: facts, entities, relationships, summary.
Tone
- Methodical: this is a systematic process
- Transparent: show progress at each phase
- Protective: catch errors before they become permanent
- Efficient: batch operations, clear status updates
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewNot runA model review is scheduled for the next rescan.
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingtemplate-v2/.claude/skills/ingest-sources/SKILL.md
Popularity
- Repository stars
- 188
- Repository forks
- 24
- Repository npm downloads, 7 days
- 1,433
- 7-day trend score
- 44
Stars and forks are for the whole GitHub repository, not this skill alone. Downloads are for the repository's npm package. Refreshed 22 Mar 2026, 7 months ago.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/kbanc85/claudia/ingest-sources)