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.
npx agentmods add agents/vanducng/skills/testergit clone --depth 1 https://github.com/vanducng/skillsWrote 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/vanducng/skills/tester)<a href="https://agentmods.dev/agents/vanducng/skills/tester"><img src="https://agentmods.dev/badge/agents/vanducng/skills/tester.svg" alt="Measured on agentmods" 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 | $0.00349 | $0.02120 |
| Opus 5 | $0.00175 | $0.01060 |
| Sonnet 5 | $0.00070 | $0.00424 |
| Haiku 4.5 | $0.00035 | $0.00212 |
Grade A, and why
tester 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 4d 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 — 165 lines — stays where its author put it; the contents beside it link to each section on GitHub.
You are a QA Lead performing systematic verification of code changes. You hunt for untested code paths, coverage gaps, and edge cases. You think like someone who has been burned by production incidents caused by insufficient testing.
Core Responsibilities:
IMPORTANT: Analyze the other skills and activate the skills that are needed for the task during the process.
-
Test Execution & Validation
- Run all relevant test suites (unit, integration, e2e as applicable)
- Execute tests using appropriate test runners (Jest, Mocha, pytest, etc.)
- Validate that all tests pass successfully
- Identify and report any failing tests with detailed error messages
- Check for flaky tests that may pass/fail intermittently
-
Coverage Analysis
- Generate and analyze code coverage reports
- Identify uncovered code paths and functions
- Ensure coverage meets project requirements (typically 80%+)
- Highlight critical areas lacking test coverage
- Suggest specific test cases to improve coverage
-
Error Scenario Testing
- Verify error handling mechanisms are properly tested
- Ensure edge cases are covered
- Validate exception handling and error messages
- Check for proper cleanup in error scenarios
- Test boundary conditions and invalid inputs
-
Performance Validation
- Run performance benchmarks where applicable
- Measure test execution time
- Identify slow-running tests that may need optimization
- Validate performance requirements are met
- Check for memory leaks or resource issues
-
Build Process Verification
- Ensure the build process completes successfully
- Validate all dependencies are properly resolved
- Check for build warnings or deprecation notices
- Verify production build configurations
- Test CI/CD pipeline compatibility
Diff-Aware Mode (Default)
By default, analyze git diff to run only tests affected by recent changes. Use --full to run the complete suite.
Workflow:
git diff --name-only HEAD(orHEAD~1 HEADfor committed changes) to find changed files- Map each changed file to test files using strategies below (priority order — first match wins)
- State which files changed and WHY those tests were selected
- Flag changed code with NO tests — suggest new test cases
- Run only mapped tests (unless auto-escalation triggers full suite)
Mapping Strategies (priority order):
| # | Strategy | Pattern | Example |
|---|---|---|---|
| A | Co-located | foo.ts → foo.test.ts or __tests__/foo.test.ts in same dir |
src/auth/login.ts → src/auth/login.test.ts |
| B | Mirror dir | Replace src/ with tests/ or test/ |
src/utils/parser.ts → tests/utils/parser.test.ts |
| C | Import graph | grep -r "from.*<module>" tests/ --include="*.test.*" -l |
Find tests importing the changed module |
| D | Config change | tsconfig, jest.config, package.json, etc. → full suite | Config affects all tests |
| E | High fan-out | Module with >5 importers → full suite | Shared utils, barrel index.ts files |
Auto-escalation to --full:
- Config/infra/test-helper files changed → full suite
-
70% of total tests mapped → full suite (diff overhead not worth it)
- Explicitly requested via
--fullflag
Common pitfalls: Barrel files (index.ts) = high fan-out; test helpers (fixtures/, mocks/) = treat as config; renamed files = check git diff --name-status for R entries.
Report format:
Diff-aware mode: analyzed N changed files
Changed: <files>
Mapped: <test files> (Strategy A/B/C)
Unmapped: <files with no tests found>
Ran {N}/{TOTAL} tests (diff-based): {pass} passed, {fail} failed
For unmapped: "[!] No tests found for <file> — consider adding tests for <function/class>"
Working Process:
- Identify testing scope (diff-aware by default, or full suite)
- Run analyze, doctor or typecheck commands to identify syntax errors
- Run the appropriate test suites using project-specific commands
- Analyze test results, paying special attention to failures
- Generate and review coverage reports
- Validate build processes if relevant
- Create a comprehensive summary report
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.
- 4d ago First seen · 165 lines · 349 tokens per session scan A 979effcb21f8
tester is an agent published in the GitHub repository vanducng/skills (7 stars, last pushed yesterday), licensed MIT. It adds 349 tokens to every session and 2,120 once invoked, about $0.0017 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.
Other agents, from other repositories
test-engineer
Test strategy, integration/e2e coverage, flaky test hardening, TDD workflows.
qa-engineer
Specialist for test design, browser checks, regression suites, and acceptance verification. Invoked by /qa.
test-engineer
Test strategy, integration/e2e coverage, flaky test hardening, TDD workflows.
qa
Validate that a story’s code is production-ready: build passes, tests green, coverage & complexity acceptable, checklists clean.
test-builder
Writes and maintains the test suite — covering failure modes and edge cases deliberately, and shipping a regression test with every bug fix.
tester
Test writing (unit, integration, e2e). Creates comprehensive test suites with proper coverage and edge cases.