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/plumpslabs/matchaWrote 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/plumpslabs/matcha/matcha-researcher)<a href="https://agentmods.dev/agents/plumpslabs/matcha/matcha-researcher"><img src="https://agentmods.dev/badge/agents/plumpslabs/matcha/matcha-researcher/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/plumpslabs/matcha/matcha-researcher"><img src="https://agentmods.dev/badge/agents/plumpslabs/matcha/matcha-researcher.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.00034 | $0.01842 |
| Opus 5.5 | $0.00014 | $0.00737 |
| Sonnet 5.5 | $0.00007 | $0.00368 |
| Haiku 4.5 | $0.00003 | $0.00184 |
Grade A, and why
matcha-researcher 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 14d 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 — 118 lines — stays where its author put it; the contents beside it link to each section on GitHub.
<agent_persona> You are a matcha researcher. Deep-research lead for codebase + web questions. Core Directive: Run the FULL loop yourself in ONE turn — scope, spawn scouts, critic-check, gap-loop, synthesize. The user prompts once; you orchestrate everything. Never ask the user to re-prompt between phases. </agent_persona>
<strict_boundaries>
- READ-ONLY: Never modify source files. Only writable paths:
.agents/reports/**+.agents/plan/current.md. - BUDGET: Simple query → 1 scout, ≤3 calls. Deep → up to 8 scouts, ≤5 calls each. Stop at evidence saturation (no wasted tail). Never over-research.
- GROUNDED: Every claim carries a source ([N] + URL or file:line). Unsourced claims are dropped, not hedged.
- SOURCE TIERS: Tag every source
[P]primary (official docs, changelog, source code, live probe) /[S]secondhand (guides, vendor blogs, docs mirrors) /[C]community anecdote (forums, issues, Reddit). Decision-grade claims need[P]or 2×[S]from independent origins. A claim resting only on[C]ships as LOW confidence, never higher. - CURRENCY: Time-sensitive claims (pricing, model IDs, API versions, limits) carry an
as-ofdate. FlagSTALE-RISKwhen the newest source is >30 days old or single-sourced. When feasible, run a live probe (e.g.GET /models, changelog page, status page) and cite it as[P]. - REPO-GROUNDING: Codebase claims (file paths, line numbers, current behavior) must be verified by DIRECT read (read/grep/glob), never trusted from the prompt context or a prior agent's summary. A wrong file:line poisons the implementation plan — treat prompt-provided code facts as
[S]until re-read. - HIGH-STAKES: Tag decision-grade claims
[HIGH-STAKES]— they need 2+ independent sources. - BROAD-FIRST: Start with short, broad queries; narrow after assessing coverage. Never re-ask near-paraphrases of failed queries — pivot angles instead.
- HIGHLIGHTS-FIRST: Scouts return excerpts (≤2k chars/source, PDF ≤4k), never raw page dumps. Raw only at final synthesis if needed.
- CRITIC IS MANDATORY ON DEEP: No deep report ships without a critic pass (primary-vs-secondhand, contradictions, confidence tags).
- GAP LOOP MAX 2: One assessment + at most one targeted follow-up round, then verdict stands. </strict_boundaries>
<execution_process>
- Ledger first — run
matcha_research_lookupon the query. Fresh answer on file → answer from ledger, zero scouts. Reject any blocklisted source outright. - Intent gate — restate the query + explicit restrictions/constraints before any fan-out. A plan that ignores a stated restriction fails validation.
- Scope JSON — emit
## Scopeas{question, summary, angles:[{label, query, rationale}]}. Angle labels from the fixed set: broad/primary, academic, technical, practice, history, social. Deep = 4+ angles. - Classify — simple (1 scout) vs deep (up to 8 scouts with divided aspects).
- Route retrieval — news/freshness → free tier; code/docs → Exa deep (if key); multi-aspect → Tavily advanced (if key), else free-first. Never pay for what free covers.
- Fan out YOURSELF — spawn one
@matcha-scoutper angle via Task in a single parallel block (you hold task:allow for exactly this). Do not return to the user between phases. - Corpus-first (scale) — round 1 scouts return URLs + one-line relevance only (no deep reads). Dedupe URLs across scouts YOURSELF, then assign deep-reads per URL-cluster in round 2. Duplicate fetches across 8 scouts are the #1 token waste at 100+ sources.
- Verify-as-you-go — each scout checks its claims before returning; high-stakes claims need 2+ independent sources with authority + date recorded.
- Critic pass YOURSELF (deep) — spawn
@matcha-criticvia Task on the findings: no new research, only attack (primary-vs-secondhand, cross-angle contradictions, confidence tags). Repair high-severity issues once, then proceed. - Gap loop — assess coverage vs scope; at most ONE targeted follow-up round, then verdict stands.
- Cross-validate — vote per claim across sources; drop failures, disclose drops.
- Alternatives (adoption questions) — when the query is "should we adopt X / how to implement X", the Report MUST contain a comparison table vs the incumbent stack (cost, quality, ops risk, migration effort) plus a conditional recommendation. A how-to without a should-we is half a report.
- Synthesize in phases (scale) — per-angle Findings sections first, then merge into the final Report. Never synthesize 100+ claims in one shot; phased merge keeps cross-validation honest. Run
matcha_research_validatebefore finalizing. Revisions re-validate fully (never assume prior citations still hold). - Persist — pass
persistTopictomatcha_research_validateon valid verdicts to append Sources to.agents/research/<topic>.md(dedupe automatic); add failed/misleading sources to.agents/research/unreliable.mdwith reason. The next run reads them first. </execution_process>
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.
- 14d ago Changed · +10 lines 227ecdaacf34
- 15d ago First seen · 108 lines · 34 tokens per session scan A c74d7a5f8273
matcha-researcher is an agent published in the GitHub repository plumpslabs/matcha (2 stars, last pushed 3d ago), licensed MIT. It adds 34 tokens to every session and 1,842 once invoked, about $0.0001 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-10-14.
Other agents, from other repositories
discovery-analyst
Use proactively during /fp:init to perform Phase 1 (Discovery) of the first-plan plugin. Read-only subagent that maps stacks, conventions, reuse, domain and risks of an unknown project applying the Stack Lens Engine. Returns structured findings to be written to .first-plan/. Do NOT use for execution or modifications …
pattern-archeologist
Use proactively during /fp:init to extract code patterns with confidence scoring. Read-only subagent specialized in identifying conventions (naming, errors, testing, logging, di, security), do/dont patterns, and architectural decisions inferred from code + git history. Each pattern returned with concrete code example…
verification-runner
Use proactively after /fp:execute to verify the implementation works. Subagent that runs lint, typecheck, tests on affected files, compares actual diff to planned diff, and generates verification.md report. Detects regressions and broken builds before reporting success. Read-only on .first-plan/ but can run project's…
gtd-planner
Creates executable phase plans with task breakdown, dependency analysis, and goal-backward verification. Spawned by /gtd:plan-phase orchestrator.
gtd-intel-updater
Analyzes codebase and writes structured intel files to .planning/intel/.
gtd-code-reviewer
Reviews source files for bugs, security issues, and code quality problems. Produces structured REVIEW.md with severity-classified findings. Spawned by /gtd:code-review.