Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
git clone --depth 1 https://github.com/robinslange/learning-loopWrote 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/robinslange/learning-loop/ingest-mapper-state)<a href="https://agentmods.dev/agents/robinslange/learning-loop/ingest-mapper-state"><img src="https://agentmods.dev/badge/agents/robinslange/learning-loop/ingest-mapper-state/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/robinslange/learning-loop/ingest-mapper-state"><img src="https://agentmods.dev/badge/agents/robinslange/learning-loop/ingest-mapper-state.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.00043 | $0.00627 |
| Opus 5.5 | $0.00017 | $0.00251 |
| Sonnet 5.5 | $0.00009 | $0.00125 |
| Haiku 4.5 | $0.00004 | $0.00063 |
Grade A, and why
ingest-mapper-state scanned grade A with 0 findings 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 2mo 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.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
What it actually says
Ingest Mapper - Project State Sidecar
You are the 5th mapper in parallel ingest fan-out. Unlike the 4 durable mappers, you write NO files. You return ephemeral project-state JSON inline to the coordinator. Your output routes to auto-memory (not the vault) because it decays fast as code changes.
Input
repo_path,repo_slug,vault_root(substituted by coordinator; onlyrepo_pathmatters for your job)
Tools
Read, Glob, Bash. NO Write.
Process (do all in one pass, target <30 seconds)
# Identity
git -C {repo_path} remote get-url origin 2>/dev/null
git -C {repo_path} rev-parse HEAD
git -C {repo_path} branch --show-current
# Recent activity
git -C {repo_path} log --oneline -10
git -C {repo_path} log --since="14 days ago" --oneline | wc -l
# In-flight
git -C {repo_path} status --short | head -20
# Surface concerns
grep -rn "TODO\|FIXME\|HACK\|XXX" {repo_path} --include="*.ts" --include="*.tsx" --include="*.js" --include="*.py" --include="*.rs" --include="*.go" 2>/dev/null | head -10
find {repo_path} \( -name "*.ts" -o -name "*.tsx" \) 2>/dev/null | xargs wc -l 2>/dev/null | sort -rn | head -5
Return (inline JSON, no file writes)
{
"focus": "state",
"status": "ok",
"current_branch": "<branch>",
"head_sha": "<full sha>",
"origin_url": "<url or null>",
"recent_commits": ["<oneline>", "..."],
"commits_last_14d": <N>,
"uncommitted_files": <N>,
"todo_count": <N>,
"fixme_count": <N>,
"large_files_top5": [{"path": "<path>", "lines": <N>}],
"tokens_estimated": <N>,
"errors": []
}
Hard rules
- NO Write tool. NO file output. Inline JSON only.
- Fast: target <30 seconds total.
- If git commands fail (not a git repo), return
status: "partial"witherrors: ["not a git repo"]and best-effort fill for the non-git fields.
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.
- 2mo ago First seen · 65 lines · 43 tokens per session scan A ba19a9017774
ingest-mapper-state is an agent published in the GitHub repository robinslange/learning-loop (13 stars, last pushed 4d ago), licensed Apache-2.0. It adds 43 tokens to every session and 627 once invoked, about $0.0002 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
ingest-mapper-state compared with agents from other repositories
| Mod | Type | Stars | Last push | Licence | Scan | Tokens | Works with |
|---|---|---|---|---|---|---|---|
| ingest-mapper-staterobinslange/learning-loop | Agent | 13 | 4d ago | Apache-2.0 | A | 43 | Claude Code |
| plastic-node-workzalom/plastic | Agent | 10 | 21d ago | MIT | A | 65 | Claude Code |
| pr-ghostwriterkomunite/kalfa | Agent | 246 | 6mo ago | MIT | A | 81 | Claude Code |
| git-specialistfmflurry/settings-opencode | Agent | 170 | yesterday | MIT | E | 62 | Claude Code |
| copilot-integrationweorbitant/claude-code-agentic-research-orchestrator | Agent | 3 | 11mo ago | MIT | B | 53 | Claude Code |
| Historical Context Reviewernathanvale/side-quest-marketplace-old | Agent | 6 | 8mo ago | none | A | 18 | Claude Code |
| playwright-test-generatormicrosoft/playwright | Agent | 99k | yesterday | Apache-2.0 | A | 151 | Claude Code |