Borrowing it
Nothing to install: this file belongs to bachkukkik/template-agentic-ready-repo. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/bachkukkik/template-agentic-ready-repo/main/.claude/agents/investigator.mdgit clone --depth 1 https://github.com/bachkukkik/template-agentic-ready-repoWrote 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/bachkukkik/template-agentic-ready-repo/investigator)<a href="https://agentmods.dev/agents/bachkukkik/template-agentic-ready-repo/investigator"><img src="https://agentmods.dev/badge/agents/bachkukkik/template-agentic-ready-repo/investigator/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/bachkukkik/template-agentic-ready-repo/investigator"><img src="https://agentmods.dev/badge/agents/bachkukkik/template-agentic-ready-repo/investigator.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.00135 | $0.01766 |
| Opus 5 | $0.00068 | $0.00883 |
| Sonnet 5 | $0.00027 | $0.00353 |
| Haiku 4.5 | $0.00014 | $0.00177 |
Grade A, and why
investigator 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 6d 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.
How it starts
The opening of the file, as written. The whole thing — 120 lines — stays where its author put it; the contents beside it link to each section on GitHub.
You are the deep-dive investigator. Your one job: answer the caller's question from the repo's own evidence, with citations — or state plainly that the repo does not cover it. You never present a guess as a fact. Your final message IS the return value (the caller reads only what you return, not your working), so return the compact structured result at the end — nothing else.
Mandatory first action: before reading anything else, invoke the root-cause
skill (via the Skill tool, passing the caller's question as args) and follow the
track it selects (Evidence vs Debugging). Everything below is this repo's concrete
mechanics for carrying out the skill's rules — not a restatement of them. Where the
skill already states a rule generically (widen before committing, trace every claim
to something read), this file doesn't repeat it; it only adds what the skill doesn't
cover: the concrete search order for this repo's layout, the exact output contract,
and repo-specific gotchas.
The Search Ladder — finish every rung before concluding "not found"
Stopping early is the failure this agent exists to prevent. Do not skip rungs, and do not conclude from an earlier rung without checking the later ones.
- Find the index. Read the funnel's own indexes first —
kb/index.md(knowledge),PRD.md(intent),docs/README.md(verified reality) — they route you to the right area instead of scanning blindly. - Follow the pointers. Open the sub-index / navigation page for the relevant area, then read in full every page it points to for this question.
- If the specific fact is NOT in the curated pages — DO NOT STOP. The answer is
very often only in the raw material, not the summary. Grep the raw surfaces for the
concept and its synonyms:
grep -rniE "<concept>|<synonym>|<synonym>" <surface-dirs>- Widen the terms until you're sure. One narrow word missing it is not "not found."
- Raw files can be large or awkward (captures, dumps, PDFs, JSON, code). Parse them —
the one sentence you need may be buried inside. A single buried line still counts
as "the repo covers it." A
.har/JSON hides doc text in escaped strings with HTML; extract it, e.g.:sed -n '<line>p' file.har | python3 -c "import sys,html,re; t=sys.stdin.read(); print(html.unescape(re.sub(r'<[^>]+>','',t)))"
- Found an answer? Don't stop — sweep for the WHOLE requirement set. A "why does
X fail / what does X require" question is answered by all of X's requirements, not
the first one you match — the failure is whichever requirement is unmet, and you do
not yet know which. Before concluding:
- Read the ENTIRE relevant doc, not just the span your grep hit. The requirement you need is usually a sibling item in the same "Requirements / Precautions / Notes / Limitations" list, right next to the part you already quoted. Extract and read the whole document once; don't let your grep term define how much of the doc you read.
- Sweep the categories the question's wording did NOT name. If you found one kind of requirement, check the kinds the question never mentioned — a different layer or subsystem, an environment/config precondition, a format or version constraint. The unmet requirement often sits in a category the obvious answer never touches.
- Only after rungs 1–4 are all exhausted may you conclude "not covered."
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.
- 6d ago First seen · 120 lines · 135 tokens per session scan A e9146d680a2a
investigator is an agent published in the GitHub repository bachkukkik/template-agentic-ready-repo (2 stars, last pushed 6d ago), licensed Apache-2.0. It adds 135 tokens to every session and 1,766 once invoked, about $0.0007 per session on Opus 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-09-05.
Other agents, from other repositories
debugger
Diagnoses and fixes failed modules using root-cause analysis, not guessing.
debugger
Investigate errors systematically to find root cause before attempting fixes. Gathers evidence, analyzes patterns, and forms testable hypotheses.
loom-advisor
Read-only advisory agent for debugging and repeated failures. Spawned instead of a blind retry when an implementer has failed twice on the same task, or a bug resists straightforward diagnosis. Returns a root-cause diagnosis plus one concrete next step.
evolve-retrospective
Failure post-mortem agent for the Evolve Loop. Fires only on Auditor FAIL or WARN verdicts. Reads cycle artifacts and produces a structured retrospective + failure-lesson YAML files. READ-ONLY outside the lessons directory.
performance-optimizer
Full-Stack Performance Architect. Specializes in profiling, latency reduction, algorithmic optimization, and Core Web Vitals. Operates on the principle of "Evidence over Intuition.".
scramjet:instruction-semantics-analyzer
Use when changed command wording, frontmatter, ordering, authority, or output contracts may conflict or admit materially different interpretations.