qa-acceptance
Skill1 starsChanged 5 months agoMITView on GitHub
Produce QA acceptance criteria and a manual validation plan for a feature change — golden path, edge cases, error states, performance limits, and explicit pass/fail evidence.
We split this skill into the rules it gives an agent
4 rules. About 0 are common, 3 are distinctive, and 1 is very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈3
Distinctive · estimate
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 18
Write acceptance criteria that a reviewer can run against the running app and decide pass or fail without asking the author.
- Very specific: line 46
Avoid criteria that combine multiple whens or thens.
- Distinctive: line 59
If a section is genuinely not applicable, write "N/A: <why>" — do not silently omit.
- Distinctive: line 76
If you add a new criterion mid-pass, restart the pass — partial coverage hides regressions.
≈ “Common” is an estimate: at least 1 in 5 of the 308,232 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
QA Acceptance
Write acceptance criteria that a reviewer can run against the running app and decide pass or fail without asking the author. The criteria are the contract — automated tests cover correctness, QA covers feature-level behavior.
When to use
- A feature change is heading to QA and needs a written validation plan.
- A reviewer is asked to verify a PR that touches user-visible behavior.
- An incident postmortem requires a regression check before reopen-prevention.
- A release candidate needs a pre-cut smoke pass.
When not to use
- The change is unit-test-only (utility refactor, internal naming). Acceptance criteria are unnecessary churn.
- You are asked to write tests against API contracts. Use contract testing, not feature QA.
Acceptance criteria format
Each criterion is a single, independently-verifiable statement:
- **Given** <starting state>, **when** <action>, **then** <observable outcome>.Example:
- **Given** a CSV export with 0 rows, **when** the user clicks Export, **then** the file downloads with only the header row and the UI shows "Exported 0 rows".Avoid criteria that combine multiple whens or thens. Split them.
What every plan must cover
- Golden path. The most common successful flow, end to end.
- Empty and minimum states. Zero items, one item, missing optional inputs.
- Boundary inputs. Max length strings, max numeric values, unicode, RTL text where applicable.
- Error states. Network failure, permission denied, validation failures, conflict (409), not found (404).
- Concurrency and ordering. Two users acting at once, race against background jobs, refresh during mutation.
- Performance envelope. The largest realistic input the change must handle without UI hangs or timeouts.
- Backward compatibility. Existing data, existing URLs, persisted user preferences continue to work.
- Telemetry and audit. Events, logs, or activity entries the change is supposed to emit.
If a section is genuinely not applicable, write "N/A: <why>" — do not silently omit.
Evidence
Each criterion needs evidence on the verification pass:
- Screenshot or short clip for UI behavior.
- Copied console / network output for API behavior.
- Log snippet or activity row for telemetry.
- Timing measurement for performance criteria.
"Looks good to me" without evidence is not a pass.
Quarantine and follow-up
- A failing criterion blocks acceptance unless explicitly waived by the owner with a tracked follow-up issue.
- "Known issue" without a linked follow-up is not a waiver.
- If you add a new criterion mid-pass, restart the pass — partial coverage hides regressions.
Handoff back to the author
Return the validation plan with three sections:
- Pass. Criteria that passed, with one-line evidence summaries.
- Fail. Criteria that failed, with the exact reproduction.
- Blocked. Criteria you could not run, with why.
The author owns turning failures into either fixes or accepted deferrals.
Anti-patterns
- Acceptance phrased as test plan ("write a Cypress test for X"). Acceptance is what is true after the change ships; tests are how you check.
- Criteria that depend on inspecting implementation details (selectors, query plans). Stay observable.
- Long checklists with no priority. Mark must-pass criteria distinctly from nice-to-have.
- Validation reports that say "passed" with no evidence. Reviewers cannot audit those.
In this repository38 other files it gives its agents.
- AGENTS.mdAGENTS.md
- docs/api/agents.mdAGENTS.md
- packages/plugins/plugin-llm-wiki/agents/wiki-maintainer/AGENTS.mdAGENTS.md
- packages/plugins/plugin-llm-wiki/fixtures/basic-root/AGENTS.mdAGENTS.md
- packages/plugins/plugin-llm-wiki/templates/AGENTS.mdAGENTS.md
- server/src/onboarding-assets/ceo/AGENTS.mdAGENTS.md
- server/src/onboarding-assets/default/AGENTS.mdAGENTS.md
- company-creatorSkill
- create-agent-adapterSkill
- deal-with-security-advisorySkill
- doc-maintenanceSkill
- prcheckloopSkill
- pr-reportSkill
- release-changelog-discord-messageSkill
- release-changelogSkill
- releaseSkill
- design-guideSkill
- index-refreshSkill
- paperclip-distillSkill
- wiki-ingestSkill
- wiki-lintSkill
- LLM Wiki MaintainerSkill
- wiki-querySkill
- doc-maintenanceSkill
- issue-triageSkill
- task-planningSkill
- github-pr-workflowSkill
- agent-browserSkill
- release-announcementSkill
- design-critiqueSkill
- diagnose-why-work-stoppedSkill
- paperclip-converting-plans-to-tasksSkill
- paperclip-create-agentSkill
- paperclip-create-pluginSkill
- paperclip-devSkill
- paperclipSkill
- para-memory-filesSkill
- terminal-bench-loopSkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
Reviews can't be read right now.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

