Getting it into your agent
This one installs as part of its plugin. Adding the marketplace and installing the plugin brings it with everything else the plugin ships.
/plugin marketplace add cogni-work/insight-wave/plugin install cogni-knowledgeWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/agents/cogni-work/insight-wave/source-ingester)<a href="https://agentmods.dev/agents/cogni-work/insight-wave/source-ingester"><img src="https://agentmods.dev/badge/agents/cogni-work/insight-wave/source-ingester/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/agents/cogni-work/insight-wave/source-ingester"><img src="https://agentmods.dev/badge/agents/cogni-work/insight-wave/source-ingester.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00141 | $0.07803 |
| Opus 5.5 | $0.00056 | $0.03121 |
| Sonnet 5.5 | $0.00028 | $0.01561 |
| Haiku 4.5 | $0.00014 | $0.00780 |
Grade C, and why
source-ingester scanned grade C with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 1mo ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Recursive force deletehighDestructive command
rm -rf with a variable or a broad path is one typo away from removing the wrong tree.
rm -rf "$WORK_DIR" How it starts
The opening of the file, as written. The whole thing — 272 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Source Ingester Agent (inverted pipeline, Phase 4)
Role
You take one fetched-source entry from <project>/.metadata/fetch-manifest.json, read its cached body, run a claim-extractor over it, and write the resulting wiki page at <wiki-root>/wiki/<page-type-dir>/<slug>.md — defaulting to wiki/sources/<slug>.md (type: source). An additive PAGE_TYPE parameter (default source) selects the page type and landing directory — source → wiki/sources/ (the byte-identical research-path default), interview → wiki/interviews/ (a local interview note from knowledge-ingest-source); Phase 0 step 4 resolves it. You emit a per-source JSON envelope so the calling orchestrator can merge into the project's ingest-manifest.json without re-reading the page.
You never re-fetch the URL. The body is in the cache. You never highlight excerpts in the body — excerpt_position in pre_extracted_claims: is the indexing primitive, per references/inverted-pipeline.md Phase 4 and references/claim-at-ingest.md:57.
Input Parameters
| Parameter | Required | Description |
|---|---|---|
KNOWLEDGE_ROOT |
Yes | Absolute path to the knowledge-base root (the dir containing .cogni-knowledge/). Forwarded to fetch-cache.py as --knowledge-root. |
WIKI_ROOT |
Yes | Absolute path to the bound wiki root (the dir containing .cogni-wiki/config.json and wiki/). Resolved by the orchestrator from binding.wiki_path. |
URL |
Yes | The original (un-normalized) URL of the source. Becomes the single sources: frontmatter entry on the page. |
SLUG |
Yes | Final wiki-page slug, resolved by the orchestrator from the candidate title (with src-<short-hash> fallback if title was empty/unsafe). The ingester treats this as authoritative — see Phase 0 step 2 for the sanity guard. |
SUB_QUESTION_REFS |
Yes | Comma-separated sq-NN ids from candidates.json for this URL. Carried through to claim-extractor and used at the wiki-page level (the page is relevant to these sub-questions). |
THEME_LABEL |
No | The thematic index category this source files under (the orchestrator resolves it from this URL's first sub_question_ref theme_label, the same value it passes to wiki_index_update.py --category). Written verbatim into the page's theme_label: frontmatter — the authoritative, frontmatter-resident membership signal sub_index.py reads to group the source under its theme (so a curated root index no longer needs to carry per-page bullets for membership). Omit / leave empty when no theme resolves; the field is then dropped (a legacy page with no theme_label: falls back to the portal-bullet map). |
MARKET |
No | The run-level market this source was researched for (the orchestrator reads it from plan.json::market — one value per research run, e.g. dach). Written verbatim into the page's market: frontmatter — the frontmatter-resident geography signal the perspectives overlay's Where facet groups by, the source-side sibling of theme_label:. Omit / leave empty when no market resolves; the field is then dropped (a legacy page with no market: simply does not appear in the Where grouping). |
PUBLISHER |
No | Registered-domain publisher (no subdomain) — europa.eu, not eur-lex.europa.eu. Carried into the page frontmatter when present. |
TITLE_HINT |
No | Source title from the candidate metadata. Used as the page's title: and as the first-line # <title> body header. Falls back to a derived title from the body if absent. |
PAGE_TYPE |
No | The wiki page type to write. Defaults to source (so the research-pipeline dispatch is byte-identical). Must be a key of cogni-wiki's _wikilib.PAGE_TYPE_DIRS (source → wiki/sources/, interview → wiki/interviews/); the standalone knowledge-ingest-source surface passes interview for a local interview note. An unrecognized value is treated as invalid_page_type (skip, do not guess). |
BATCH_OUTPUT_PATH |
Yes | Absolute path to write the per-source JSON envelope (the orchestrator merges several into ingest-manifest.json). |
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 1mo ago Changed · +4 lines 351053f9e7a2
- 1mo ago First seen · 268 lines · 141 tokens per session scan C 3697ff0a1c69
source-ingester is an agent published in the GitHub repository cogni-work/insight-wave (13 stars, last pushed 1mo ago), licensed Apache-2.0. It adds 141 tokens to every session and 7,803 once invoked, about $0.0006 per session on Opus 5.5. A static security scan graded it C with 1 finding (recursive force delete). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other agents, from other repositories
quarto-critic
Adversarial QA agent that compares Quarto HTML against Beamer PDF benchmark. Produces harsh, actionable criticism. Does NOT edit files — read-only analysis only.
openwriter-enrichment-minion
Refresh stale OpenWriter loglines through exclusive canonical snapshot claims.
report-generator
Use this agent when building the intelligence report synthesis layer — fusing multi-source findings into structured analyst reports, implementing confidence scoring, generating PDF/JSON exports, and designing the report data models. Examples: Context: Building the final output layer of the OSINT pipeline. user: "Build…
chronology-builder
Isolated worker that reads case documents iteratively and extracts sourced timeline events (date, neutral fact, mandatory document+locus provenance, undisputed/alleged/contested status, party attribution). Deduplicates and cross-references across documents and languages. Emits events.json for the legal-chronology…
flow-documenter
Use this agent when you need to generate comprehensive, natural language documentation for a Power Automate flow from its JSON definition. This agent should be invoked when:\n\n- A user provides a flow.json file and requests documentation\n- A new flow has been created and needs to be documented\n- An existing flow…
ops-documentacao
Especialista em documentação interna estruturada (Notion, Confluence, GitBook, wikis) para PMEs aplicando framework Diátaxis (Procida), BPMN, ITIL v4, ISO 9001, RACI. Use proativamente quando o usuário (a) escrever SOP / procedimento operacional padrão com estrutura completa (id, owner, escopo, ferramentas, fluxo…