TestTrout AGENTS.md

Project instructions for coding agents working on TestTrout, a tool for scanning, planning, generating, and running browser-based test scenarios.

In plain words
What is it for?
They are for guiding agents while setting up TestTrout, checking project gaps, drafting scenarios, approving them, and running tests.
Why use it?
They provide setup and operating rules, including checks, approvals, and the order of common commands.

Instructions file for CodexOpenCode

Install

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.

agentmods
npx agentmods add instructions/drdroidlab/testtrout/agents-md
Clone the repo
git clone --depth 1 https://github.com/DrDroidLab/TestTrout

Made for: Codex, OpenCode.

Per session 967 This file is loaded in full into every session.
When invoked 967 The same file — it is already loaded in full.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

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.

ModelPer sessionOnce invoked
Fable 5 $0.00967 $0.00967
Opus 5 $0.00483 $0.00483
Sonnet 5 $0.00193 $0.00193
Haiku 4.5 $0.00097 $0.00097

Measured yesterday against content hash 8cf7162b668f, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

TestTrout AGENTS.md 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 yesterday.

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.

AGENTS.md · 82 lines

How it starts

The opening of the file, as written. The whole thing — 82 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Notes for coding agents

Setting this tool up on a project? Follow docs/setup.md top to bottom. Driving it once set up? The skill at .claude/skills/qa-agent/SKILL.md covers the workflow.

The short version

trout scan --json                  # 1. no API key, no network, safe on any repo
                                # 2. write a gitignored .env with credentials
trout init --yes --url <URL> --no-disposable --role owner --role member
trout doctor --json                # verify; exits non-zero and says what is missing
trout probe --role owner --json    # needs: playwright install chromium
trout intent --draft --json        # or --describe "..." / --from FILE
trout plan --json               # what is possible, and what is missing
trout gaps --json               # deterministic; no model, no key
trout propose --json -n 5          # drafts only — never auto-approve
trout scenarios --json
trout approve <id>                 # only when the user has chosen
trout generate --json
trout run --json                   # read `status` before `results`

Or use the MCP server instead of shelling out:

pip install 'testtrout[mcp]' && trout mcp /path/to/project

There is also an app (trout up) over the same state — storage, a worker, and a web interface — if the user prefers a screen. It can hold several repositories at once. The CLI and MCP work identically whether or not it is running.

Rules

  1. Always use --json. Every command supports it. Never parse rendered output.
  2. trout doctor --json first whenever something fails. It reports exactly what is missing, so guessing is never necessary.
  3. Default to --no-disposable. Only mark a deployment disposable when the user confirms its data can be destroyed. Writes against a non-disposable deployment are blocked at the network layer — that guard is the reason this is safe to point at production, so do not disable it to "make the probe work".
  4. Never write a secret into .trout/config.yaml. It is committed. Use env:NAME references and put values in .env.
  5. Two test users minimum. Authorization tests need a second account to be possible at all.
  6. Surface the table_without_rls warning to the user immediately. It means data is world-writable through the browser. It is usually news.
  7. Approval belongs to the user. Propose; do not approve on their behalf.
  8. Quote criticality_reasons and gap reasons rather than re-deriving your own ranking. They are deterministic and auditable; your restatement is not.
  9. Never edit generated test files. They are build artifacts, overwritten on every trout generate. Edit the scenario .yaml and regenerate.
  10. A scenario with open questions cannot be approved, and that is correct. Approving it yields a test that passes vacuously. Surface the question to the user instead.
  11. On a run, read status first. inconclusive means the run says nothing about the product — do not report it as a pass or a failure. Only assertion_failure is a product signal; auth_failure and environment_failure are about the harness.
  12. Never disable database isolation or the substitution boundary to make a run go green. Both exist to stop a test run destroying real data or charging a real card.
  13. Report blocked gaps as work, not as failures. needs_two_roles, unreachable, and unresolved_table each name a specific thing the user can fix in under a minute.

Read the full file on GitHub · 82 lines

Changes

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.

  1. yesterday First seen · 82 lines · 967 tokens per session scan A 8cf7162b668f

Subscribe to this mod's changes

TestTrout AGENTS.md is an instructions file published in the GitHub repository DrDroidLab/TestTrout (0 stars, last pushed 10d ago), licensed Apache-2.0. It adds 967 tokens to every session, about $0.0048 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-08-31.