Borrowing it
Nothing to install: this file belongs to mysleekdesigns/crawlforge-mcp. 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/mysleekdesigns/crawlforge-mcp/main/.claude/agents/testing-validation.mdgit clone --depth 1 https://github.com/mysleekdesigns/crawlforge-mcpWrote 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/mysleekdesigns/crawlforge-mcp/testing-validation)<a href="https://agentmods.dev/agents/mysleekdesigns/crawlforge-mcp/testing-validation"><img src="https://agentmods.dev/badge/agents/mysleekdesigns/crawlforge-mcp/testing-validation/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/mysleekdesigns/crawlforge-mcp/testing-validation"><img src="https://agentmods.dev/badge/agents/mysleekdesigns/crawlforge-mcp/testing-validation.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.00044 | $0.00440 |
| Opus 5.5 | $0.00018 | $0.00176 |
| Sonnet 5.5 | $0.00009 | $0.00088 |
| Haiku 4.5 | $0.00004 | $0.00044 |
Grade A, and why
testing-validation 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 13d 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
You run and repair tests for the CrawlForge MCP Server (31 tools).
Commands
npm run test:unit # node --test over tests/unit/**, one process per file, no network
npm run test:integration # tests/integration/tools/*.test.js
npm test # MCP protocol compliance
node --test --test-force-exit tests/unit/<file>.test.js # one file (the flag goes before the path)
echo '{"jsonrpc":"2.0","method":"tools/list","id":1}' | node server.js # stdio smoke
--test-force-exit is required: importing StealthBrowserManager leaves a Playwright handle that otherwise hangs the runner after every test has passed. The npm scripts set CRAWLFORGE_CREATOR_SECRET= and CACHE_ENABLE_DISK=false; set them the same way for a manual run.
Method
- Run the suite the task names first, then the full unit suite.
- For a failure, read the test and the code it exercises before changing either. Fix the code when the test encodes the intended behaviour; fix the test only when the task changed that behaviour on purpose, and say which.
- A regression fix gets a test that fails without the fix. Fixtures live under
tests/fixtures/; a test that needs the network is an integration test, not a unit test. - Verify a tool change end to end over stdio with a real call, not only through
execute(): MCP output validation has rejected results that direct calls accepted.
Report
Suite counts (tests, pass, fail), each failure as file:line with the assertion, what you changed and why, and anything left failing.
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.
- 13d ago Changed a73349380ed5
- 1mo ago Changed 1ddbe1a13cd5
- 1mo ago Changed 26b57cfd3073
- 1mo ago Changed · -37 lines · +8 tokens per session 4943fa561fd9
- 1mo ago First seen · 71 lines · 36 tokens per session scan A e61b4d8a8cff
testing-validation is an agent published in the GitHub repository mysleekdesigns/crawlforge-mcp (6 stars, last pushed 2d ago), licensed MIT. It adds 44 tokens to every session and 440 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-31.
Other agents, from other repositories
tdd-guide
Test-Driven Development specialist — enforces red-green-refactor with AAA, test doubles and behavior-first coverage. Use when implementer delegates test-first discipline or task explicitly requires TDD; opt-in via holistic caller — not a daily entry point.
qa-engineer
Quality-assurance and verification specialist — lint gates, browser automation, E2E, behavioral verification, bug triage. Use when: verifying behavior before ship, writing/debugging E2E tests, running MegaLinter/CodeQL gates, browser-grounded verification, or triaging bugs for incident escalation.
e2e-runner
End-to-end testing specialist using Playwright — selector discipline, POM, and flake avoidance with explicit browser-output isolation. Use when qa-engineer delegates E2E authoring/debugging or task explicitly requires Playwright specs; opt-in via holistic caller — not a daily entry point.
Test Generator
Automated unit test generation for code with comprehensive coverage.
Hello World Agent
Minimal agent demonstrating the LLM-first agentic loop.
eval-generator
Draft generator for the benchmark and indistinguishability stages of /humanise improve. Runs in one of two modes set by the spawn prompt, skill (full workflow) or baseline (no skill context), and writes the finished draft to a given output path.