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 skills add TimothyHan/qa-buddy-skills --skill test-casesgit clone --depth 1 https://github.com/TimothyHan/qa-buddy-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/skills/timothyhan/qa-buddy-skills/test-cases)<a href="https://agentmods.dev/skills/timothyhan/qa-buddy-skills/test-cases"><img src="https://agentmods.dev/badge/skills/timothyhan/qa-buddy-skills/test-cases/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/skills/timothyhan/qa-buddy-skills/test-cases"><img src="https://agentmods.dev/badge/skills/timothyhan/qa-buddy-skills/test-cases.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
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.00119 | $0.02515 |
| Opus 5 | $0.00060 | $0.01257 |
| Sonnet 5 | $0.00024 | $0.00503 |
| Haiku 4.5 | $0.00012 | $0.00251 |
Grade A, and why
test-cases 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.
How it starts
The opening of the file, as written. The whole thing — 221 lines — stays where its author put it; the contents beside it link to each section on GitHub.
/qa-test-cases: Generate Test Cases from ACs
You are an SDT partner generating test cases for a ticket. You pull the ticket's ACs from Jira, cross-reference the epic test plan, and produce:
- E2E test scenarios (steps and expected results —
/qa-e2e-writeimplements them) - Unit test checklist (for developers)
- Requirements-to-test mapping (for traceability)
Constraints
- Match the project's test style. Read existing Playwright tests first. Use the same patterns, imports, helpers, page objects.
- No implementation code in test cases. Steps and expected results are the contract;
/qa-e2e-writeowns selectors, waits and fixtures. Put automation constraints a writer must know (isolation, run-once, data hygiene) into Preconditions. - Every test case traces to a requirement. No orphan tests. No untested ACs.
- Unit test checklist is for devs. Keep it brief and actionable — describe what to test, not how.
- Don't duplicate existing tests. If a scenario is already covered, reference it instead of creating a new one.
- Prioritize ruthlessly. A ticket with 3 ACs doesn't need 30 test cases. Focus on what catches real bugs.
- Observed beats assumed. A precondition or step that names a control label, a seeded record, a displayed value or a request the browser makes comes from the running app (Phase 1 step 8) or carries
(unverified)for/qa-e2e-pomto settle. Never assert the network behaviour of a page you have not watched.
Scratchpad (run protocol): write ## Plan to the run's scratchpad.md before Phase 1; at each phase boundary and every Review Options pause update ## State and re-read the scratchpad before continuing; drop noteworthy things into ## Candidate learnings as you go.
Phase 1: Gather Context
Input: User provides a ticket key (e.g., PROJ-789) or pastes ticket details.
- Read
.qabuddy.json(if exists) for context source and team mode.contextSource: "spec"→ search workspace for spec files before askingcontextSource: "chat"→ skip Jira, ask SDT for context directlycontextSource: "jira"or no config → current behavior
What ships with it
60 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- tests/calibration/control-coverage-honesty/artifact/features-kb/test-cases/control.md 647 B
- tests/calibration/control-coverage-honesty/human.json 234 B
- tests/calibration/control-coverage-honesty/meta.json 165 B
- tests/calibration/control-coverage-honesty/scoring-sheet.md 9.4 KB
- tests/calibration/control-dedup-by-assertion/artifact/features-kb/test-cases/control.md 740 B
- tests/calibration/control-dedup-by-assertion/human.json 235 B
- tests/calibration/control-dedup-by-assertion/meta.json 171 B
- tests/calibration/control-dedup-by-assertion/scoring-sheet.md 11 KB
- tests/calibration/control-no-code/artifact/features-kb/test-cases/control.md 536 B
- tests/calibration/control-no-code/human.json 235 B
- tests/calibration/control-no-code/meta.json 147 B
- tests/calibration/control-no-code/scoring-sheet.md 9.3 KB
- tests/calibration/control-observed-or-unverified/artifact/features-kb/test-cases/control.md 540 B
- tests/calibration/control-observed-or-unverified/human.json 236 B
- tests/calibration/control-observed-or-unverified/meta.json 177 B
- tests/calibration/control-observed-or-unverified/scoring-sheet.md 9.3 KB
- tests/calibration/control-status-block/artifact/features-kb/test-cases/control.md 517 B
- tests/calibration/control-status-block/human.json 235 B
- tests/calibration/control-status-block/meta.json 157 B
- tests/calibration/control-status-block/scoring-sheet.md 9.3 KB
- tests/calibration/control-traceability/artifact/features-kb/test-cases/control.md 1.3 KB
- tests/calibration/control-traceability/human.json 235 B
- tests/calibration/control-traceability/meta.json 157 B
- tests/calibration/control-traceability/scoring-sheet.md 10 KB
- tests/calibration/extra-acme-projects-test-cases/artifact/features-kb/test-cases/extra.md 1.5 KB
- tests/calibration/extra-acme-projects-test-cases/human.json 235 B
- tests/calibration/extra-acme-projects-test-cases/meta.json 263 B
- tests/calibration/extra-acme-projects-test-cases/scoring-sheet.md 10 KB
- tests/calibration/run-pr2-accept-projects-happy-run-1/artifact/.qa-reports/runs/test-cases-nobranch-46cf69/scratchpad.md 2.0 KB
- tests/calibration/run-pr2-accept-projects-happy-run-1/artifact/exec.jsonl 168 KB
- tests/calibration/run-pr2-accept-projects-happy-run-1/artifact/features-kb/features/projects/test-cases/projects-mapping.json 2.8 KB
- tests/calibration/run-pr2-accept-projects-happy-run-1/artifact/features-kb/features/projects/test-cases/projects.md 9.4 KB
- tests/calibration/run-pr2-accept-projects-happy-run-1/artifact/features-kb/learnings-log.jsonl 3.2 KB
- tests/calibration/run-pr2-accept-projects-happy-run-1/human.json 234 B
- tests/calibration/run-pr2-accept-projects-happy-run-1/meta.json 213 B
- tests/calibration/run-pr2-accept-projects-happy-run-1/scoring-sheet.md 21 KB
- tests/calibration/run-pr3-set-thin-ticket-run-1/artifact/.qa-reports/runs/test-cases-nobranch-67d284/scratchpad.md 200 B
- tests/calibration/run-pr3-set-thin-ticket-run-1/artifact/exec.jsonl 127 KB
- tests/calibration/run-pr3-set-thin-ticket-run-1/artifact/features-kb/features/tags/test-cases/tags-mapping.json 463 B
- tests/calibration/run-pr3-set-thin-ticket-run-1/artifact/features-kb/features/tags/test-cases/tags.md 2.7 KB
- tests/calibration/run-pr3-set-thin-ticket-run-1/artifact/features-kb/learnings-log.jsonl 3.0 KB
- tests/calibration/run-pr3-set-thin-ticket-run-1/human.json 234 B
- tests/calibration/run-pr3-set-thin-ticket-run-1/meta.json 198 B
- tests/calibration/run-pr3-set-thin-ticket-run-1/scoring-sheet.md 9.6 KB
- tests/calibration/run-pr3-set-vacuous-coverage-run-1/artifact/.qa-reports/runs/test-cases-nobranch-81721e/scratchpad.md 2.6 KB
- tests/calibration/run-pr3-set-vacuous-coverage-run-1/artifact/exec.jsonl 261 KB
- tests/calibration/run-pr3-set-vacuous-coverage-run-1/artifact/features-kb/features/projects/test-cases/projects-mapping.json 2.7 KB
- tests/calibration/run-pr3-set-vacuous-coverage-run-1/artifact/features-kb/features/projects/test-cases/projects.md 6.5 KB
- tests/calibration/run-pr3-set-vacuous-coverage-run-1/artifact/features-kb/learnings-log.jsonl 3.5 KB
- tests/calibration/run-pr3-set-vacuous-coverage-run-1/human.json 234 B
- tests/calibration/run-pr3-set-vacuous-coverage-run-1/meta.json 213 B
- tests/calibration/run-pr3-set-vacuous-coverage-run-1/scoring-sheet.md 20 KB
- tests/cases/projects-happy/case.json 274 B
- tests/cases/projects-happy/input/.qabuddy.json 177 B
- tests/cases/projects-happy/input/docs/specs/projects.md 1.1 KB
- tests/cases/projects-happy/input/features-kb/features/projects/feature.md 683 B
- tests/cases/projects-happy/input/features-kb/index.json 132 B
- tests/cases/projects-happy/input/playwright/tests/smoke.spec.ts 231 B runs code
- tests/cases/projects-happy/judge-notes.md 1.2 KB
- tests/cases/thin-ticket/case.json 266 B
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.
- yesterday Changed · +6 lines 2fbf440f1641
- 2d ago Changed 8525dc43f670
- 4d ago Changed · +9 lines f2417f72c553
- 5d ago Changed · -18 lines · +8 tokens per session 4448e8eec5d8
- 9d ago First seen · 224 lines · 111 tokens per session scan A 985d73ff9034
test-cases is a skill published in the GitHub repository TimothyHan/qa-buddy-skills (8 stars, last pushed yesterday), licensed Apache-2.0. It adds 119 tokens to every session and 2,515 once invoked, about $0.0006 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 skills, from other repositories
gsd-add-tests
Generate tests for a completed phase based on UAT criteria and implementation.
06-test
Write and iterate tests until they pass, or validate a user journey end to end in the browser. Use when the user wants to add coverage, find what's untested, or walk a flow. Not for auditing test health or debugging a failure.
qawolf-cli
Manage QA Wolf through the qawolf CLI. Use when asked to create, update, or list coverage requests, bug reports, or maintenance reports; start a run of flows or tags on the QA Wolf platform or read a run's results; list, set, or delete environment variables; manage environments, flows, or tags; request automation of…
test-writer
Write tests with TDD following structured patterns. Ensures consistent AAA structure, proper coverage targets, and framework-specific conventions. Without this skill, tests lack consistent naming, miss coverage targets, and skip anti-pattern checks.
test-review
A review checklist for newly written or changed automated tests using TypeScript and Playwright. Playwright is a tool for testing web browsers, and automated tests check software without repeating the steps by hand.
playwright-expert
Expert in Playwright E2E testing framework, auto-waiting mechanisms, test generation, trace viewer, and CI/CD integration. Use when the user mentions testing, end-to-end tests, QA, automation, end-to-end testing, or test automation, or when the task involves Playwright Framework, Test Organization, Advanced Features…