source_ingestion
The five-phase loop applied to every incoming source.
DETECT
Identify what kind of source this is. The agent classifies by:
- Format. PDF, MD, HTML, TXT, JSON, YAML, CSV, code file, image,
binary archive, MCP stream, web URL.
- Provenance. User-uploaded, project-knowledge, MCP-fetched,
web-search-result, agent-generated.
- Tier per system_directive source hierarchy. Tier 1, 2, 3, or 4.
- Packet shape. Conformant, adjacent, or foreign. See
references/packet_shapes.md.
Output of DETECT: a packet metadata record with format, provenance, tier, packet_shape fields.
NORMALIZE
Convert the source to a clean text representation the agent can read.
- PDF: text extraction, OCR if needed, structured table extraction.
- HTML: strip navigation, extract main content, preserve citations.
- Code: keep verbatim, classify by language, extract docstrings.
- Image: visual description plus any extractable text.
- Binary archives: list contents, extract relevant files, normalize
each.
Output of NORMALIZE: clean markdown or text, with original formatting
preserved where load-bearing.
INTERROGATE
Ask the source the load-bearing questions before scoring it.
The Socratic question patterns are in
references/socratic_question_bank.md. Cap at three questions per
ingestion turn so the agent and user can review answers without
overwhelm.
Standard interrogation set:
- What is this source's claim? One sentence.
- What is the evidence? Citation, methodology, sample size.
- What does it not cover? Negative space matters as much as
positive content.
- Who else has cited it? Provenance signal.
- What would falsify it? If nothing could falsify it, it is
not Tier 2 evidence.
If the source cannot answer the interrogation (it is too short, too
vague, or the user does not know), the agent flags it and asks the
user how to proceed.
SCORE
Apply the Trinity rubric (default boolean-atomic mode) to the source.
The 9 cells:
|
Coverage |
Self-contained |
Importance |
| Pathos (does this serve our mission?) |
P-Cov |
P-Self |
P-Imp |
| Ethos (is the source itself credible?) |
E-Cov |
E-Self |
E-Imp |
| Logos (does the rubric pass?) |
L-Cov |
L-Self |
L-Imp |
Boolean-atomic: each cell is 0 or 1. Default threshold for ingestion:
all 9 cells must pass.
Lower thresholds (e.g., 7 of 9) are acceptable for adjacent packet
shapes (see references/packet_shapes.md) provided the missing cells
are flagged in the source's metadata record.
ROUTE
Send the scored source to the right destination.
| Outcome |
Destination |
| All 9 cells pass, conformant shape |
references/ if it is a paraphrase of a Tier-1 source, or directly cited inline. |
| 7-8 cells pass, conformant or adjacent shape |
Inline use with explicit caveat about the missing cells. |
| Below 7 cells, any shape |
Quarantine. See references/quarantine_procedure.md. |
| Foreign shape regardless of cells |
Quarantine. The agent does not silently coerce foreign sources into the rubric. |
| Source claims rubric exemption ("trust me, this is legit") |
Quarantine until the user provides the missing evidence. |
Quarantine
Quarantined sources are placed in a project-side QUARANTINE/ folder
with an explanatory README. The user can override quarantine via the
procedure in references/quarantine_procedure.md. Override requires
explicit user confirmation per turn.
The agent never silently overrides quarantine. The agent never
removes the quarantine warning from a source's metadata record.
What this skill does NOT do
- Does not paraphrase or transform the source's content for the user
unless explicitly asked. The user reads the original first.
- Does not auto-cite. Citations are added by the agent only after
the source clears all 9 cells.
- Does not rewrite or summarize sources beyond a 30-word ceiling per
source per response, per the system_directive output contract.
- Does not load the source's full body into the conversation if the
source is over roughly 5000 lines. Instead, the agent registers
the source and accesses it on demand via tool calls.
Multi-turn handling
If the source set exceeds the host's context window, the agent:
- Tells the user the limit was hit.
- Saves a partial ingestion record as a host-side note.
- Asks the user to delete the just-ingested sources from the host's
active context.
- Asks the user to re-add the next batch.
- Resumes ingestion from the partial record.
This is the multi-turn pattern documented in packets/PROCEED.md.
Citations
- arXiv:2507.17746, RaR, for the Coverage / Self-contained / Importance
rubric design.
- arXiv:2510.07743, OpenRubrics, for synthetic rubric generation in
novel domains.
- The packet-shape classification (conformant, adjacent, foreign) is
documented in
references/packet_shapes.md.
- The quarantine procedure is documented in
references/quarantine_procedure.md.
End source_ingestion.
1---2name: source-ingestion3description: Use this skill whenever new source material enters the workstream: uploaded files, URLs, paths to local folders, MCP-attached datasets, or pasted text blocks. Trigger when the user says "ingest this", "absorb these sources", "add to the corpus", "read this and apply", or attaches files at session start. Runs the DETECT, NORMALIZE, INTERROGATE, SCORE, ROUTE loop. Quarantines anything that cannot be conformed.4license: Apache-2.05---67# source_ingestion89The five-phase loop applied to every incoming source.1011## DETECT1213Identify what kind of source this is. The agent classifies by:1415- **Format.** PDF, MD, HTML, TXT, JSON, YAML, CSV, code file, image,16 binary archive, MCP stream, web URL.17- **Provenance.** User-uploaded, project-knowledge, MCP-fetched,18 web-search-result, agent-generated.19- **Tier per system_directive source hierarchy.** Tier 1, 2, 3, or 4.20- **Packet shape.** Conformant, adjacent, or foreign. See21 `references/packet_shapes.md`.2223Output of DETECT: a packet metadata record with `format, provenance,24tier, packet_shape` fields.2526## NORMALIZE2728Convert the source to a clean text representation the agent can read.2930- PDF: text extraction, OCR if needed, structured table extraction.31- HTML: strip navigation, extract main content, preserve citations.32- Code: keep verbatim, classify by language, extract docstrings.33- Image: visual description plus any extractable text.34- Binary archives: list contents, extract relevant files, normalize35 each.3637Output of NORMALIZE: clean markdown or text, with original formatting38preserved where load-bearing.3940## INTERROGATE4142Ask the source the load-bearing questions before scoring it.4344The Socratic question patterns are in45`references/socratic_question_bank.md`. Cap at three questions per46ingestion turn so the agent and user can review answers without47overwhelm.4849Standard interrogation set:50511. **What is this source's claim?** One sentence.522. **What is the evidence?** Citation, methodology, sample size.533. **What does it not cover?** Negative space matters as much as54 positive content.554. **Who else has cited it?** Provenance signal.565. **What would falsify it?** If nothing could falsify it, it is57 not Tier 2 evidence.5859If the source cannot answer the interrogation (it is too short, too60vague, or the user does not know), the agent flags it and asks the61user how to proceed.6263## SCORE6465Apply the Trinity rubric (default boolean-atomic mode) to the source.6667The 9 cells:6869| | Coverage | Self-contained | Importance |70|---|---|---|---|71| Pathos (does this serve our mission?) | P-Cov | P-Self | P-Imp |72| Ethos (is the source itself credible?) | E-Cov | E-Self | E-Imp |73| Logos (does the rubric pass?) | L-Cov | L-Self | L-Imp |7475Boolean-atomic: each cell is 0 or 1. Default threshold for ingestion:76all 9 cells must pass.7778Lower thresholds (e.g., 7 of 9) are acceptable for adjacent packet79shapes (see `references/packet_shapes.md`) provided the missing cells80are flagged in the source's metadata record.8182## ROUTE8384Send the scored source to the right destination.8586| Outcome | Destination |87|---|---|88| All 9 cells pass, conformant shape | `references/` if it is a paraphrase of a Tier-1 source, or directly cited inline. |89| 7-8 cells pass, conformant or adjacent shape | Inline use with explicit caveat about the missing cells. |90| Below 7 cells, any shape | Quarantine. See `references/quarantine_procedure.md`. |91| Foreign shape regardless of cells | Quarantine. The agent does not silently coerce foreign sources into the rubric. |92| Source claims rubric exemption ("trust me, this is legit") | Quarantine until the user provides the missing evidence. |9394## Quarantine9596Quarantined sources are placed in a project-side `QUARANTINE/` folder97with an explanatory README. The user can override quarantine via the98procedure in `references/quarantine_procedure.md`. Override requires99explicit user confirmation per turn.100101The agent never silently overrides quarantine. The agent never102removes the quarantine warning from a source's metadata record.103104## What this skill does NOT do105106- Does not paraphrase or transform the source's content for the user107 unless explicitly asked. The user reads the original first.108- Does not auto-cite. Citations are added by the agent only after109 the source clears all 9 cells.110- Does not rewrite or summarize sources beyond a 30-word ceiling per111 source per response, per the system_directive output contract.112- Does not load the source's full body into the conversation if the113 source is over roughly 5000 lines. Instead, the agent registers114 the source and accesses it on demand via tool calls.115116## Multi-turn handling117118If the source set exceeds the host's context window, the agent:1191201. Tells the user the limit was hit.1212. Saves a partial ingestion record as a host-side note.1223. Asks the user to delete the just-ingested sources from the host's123 active context.1244. Asks the user to re-add the next batch.1255. Resumes ingestion from the partial record.126127This is the multi-turn pattern documented in `packets/PROCEED.md`.128129## Citations130131- arXiv:2507.17746, RaR, for the Coverage / Self-contained / Importance132 rubric design.133- arXiv:2510.07743, OpenRubrics, for synthetic rubric generation in134 novel domains.135- The packet-shape classification (conformant, adjacent, foreign) is136 documented in `references/packet_shapes.md`.137- The quarantine procedure is documented in138 `references/quarantine_procedure.md`.139140End source_ingestion.