--- name: ingest description: >- Process unprocessed items from an intake inbox into reference notes, projects, a task tracker, or a calendar. Classifies each item as task, idea, reference, reminder, or noise; enriches with research; routes clear items and sends ambiguous ones to a clarification queue. Idempotent with stable processing ids. Use when the user says ingest, /ingest, process raw, or triage raw. --- # Ingest Turn provisional capture into enriched, routed knowledge and tasks. This is not filing: add context, connect to what you already know, research externally when useful, then route. **Triggers:** `/ingest`, `ingest`, `process raw`, `triage raw` ## Suggested layers Adapt names to the vault. The pattern matters more than the labels. | Layer | Role | |-------|------| | Intake inbox | Unprocessed capture (lists, dumps, short notes) | | Digesting | Interpretation and research in progress | | Clarifications | Uncertain items awaiting a user choice | | Processed log | Append-only audit trail of where items went | | Destinations | Reference notes, project notes, task tracker, calendar | | State | Idempotency ledger and failure records (local, gitignored) | ## Hard rules 1. **Enrich, don't transcribe** - outputs must be more useful than the raw line. 2. **Task tracker for action** - backlog, tries, and follow-ups belong in the tracker with context, not as a raw paste. 3. **Calendar only on explicit ask** - event only when raw names a date, reminder, or deadline. Never infer. 4. **No aggressive guessing** - ambiguity goes to clarification, not forced routing. 5. **Idempotent** - content-hash before create; never duplicate issues or notes. 6. **Safe failure** - leave intake intact (or keep digest stub), log failure, do not half-delete. 7. **Remove from intake only on success** - routed, clarified, or ignored with reason. 8. **Clear intake files after success** - leave capture files blank; no processed summaries in intake. 9. **Log to the processed audit trail** - append each run's routing table there. ## Steps ### 1. Discover Scan intake. Skip digesting, the processed log, and already-processed items. One item per list line, `---` block, short note, or URL-only line. Variants: `/ingest` all; `/ingest [file]` one file; `/ingest retry` failures; `/ingest resolve` after clarification answer. ### 2. Claim Hash source + content. Skip if completed or clarifying (unless resolving). Write a digest stub; leave the raw line until completion. ```markdown --- ingest_id: source: intake/path status: digesting captured: YYYY-MM-DD --- # Short title ## Raw capture > verbatim raw text ## Classification - Type: task | idea | reference | reminder | noise - Project: (required for task/idea) ## Light score *(task and idea only)* | Size | Urgency | Class | Confidence | |------|---------|-------|------------| ## Interpretation ## Research ## Planned outputs ``` ### 3. Classify and lightly score | Type | Primary destination | |------|---------------------| | Reference | Notes - not the task tracker | | Idea | Ideas list; tracker only if Quick win or explicit "do it" | | Task | Task tracker issue | | Reminder | Calendar (explicit date only) | | Noise | Ignore with reason | Prefer task/idea over reference when the line implies ship, fix, investigate, or try. **Light score** (task/idea): size, urgency, class - **Quick win**, **Strategic**, **Maintenance**, or **Distraction**. Relative priority only; no expected-value scorecard unless the user's system already defines one. Ambiguous home or Distraction vs Quick win that changes routing -> clarification. Search vault and tracker first. ### 4. Research Always: related notes and open tracker issues. When useful: fetch URLs; look up people or tools. Cite in the stub. ### 5. Route or clarify | Type | Destination | |------|-------------| | Reference | Notes only | | Idea | Ideas list (+ tracker if Quick win / explicit action) | | Task | Tracker issue (verb + object; context + `ingest_id`) | | Reminder | Calendar only if date explicit | | Clarification | Ambiguous home or material routing fork | | Ignore | Duplicate or noise - log reason | Clarification: move stub, ask short MCQ, create no destinations until resolved. Then create outputs, record, append processed log, delete clarification stub. ### 6. Complete Create notes and issues (search first); calendar only when asked. Record destinations, remove from intake, append processed log, clear empty capture files, clean resolved clarifications. ```markdown ## YYYY-MM-DD - `To do.md` 3 items · 2 processed · 1 clarification | Item | Type | Class | Result | Destinations | |------|------|-------|--------|--------------| | refresh landing copy | task | Quick win | done | tracker #142 · projects/site | | new market experiment | idea | Strategic | clarifying | clarifications/ | | article bookmark | reference | - | done | notes/topics/... | ``` On failure: mark stub failed; keep intake or stub; `/ingest retry` picks up failed hashes only. ## Do not - Treat intake as lasting source of truth downstream - Create calendar events without explicit date language - File actionable tasks or ideas as reference-only - Create tracker issues for pure references - Leave processed summaries in intake - Process digesting or the processed log as intake - Skip idempotency on retry - Auto-run every chat - only on trigger or schedule ## Related skills - [vault-janitor](../vault-janitor/SKILL.md) - weekly hygiene - [mine](../mine/SKILL.md) - landscape insights - [prospect](../prospect/SKILL.md) - CI Accept/Reject gate