mcpField
Q
qa-checklist

qa-checklist

github.com/unlearndevTesting & quality10564 installsUpdated 3w ago
Repository

About qa-checklist

qa-checklist is a skill that turns code diffs into short manual QA checklists for testing a deployed app. It focuses on user-visible changes rather than code review or regression testing.

Key features

  1. 01Read branch changes against a base
  2. 02Translate code changes into UI behavior
  3. 03Cover key failure paths and adjacent flows
  4. 04Produce checklists of roughly 5–10 steps

Use cases

  1. 01Check a feature change before release
  2. 02Test form validation and access controls
  3. 03Check both states of a feature flag

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/unlearndev/skills --skill qa-checklist

After installing, type/qa-checklistin Claude Code to confirm it loaded.

Details

From the project README

Manual QA checklist from a diff

Produce a short checklist a human can click through in the deployed app to confirm this change works. The reader is a person with a browser and a test account — not a developer reading code. Every step must be something they can do and observe through the UI (or, rarely, an email inbox / API client if the change only surfaces there).

This is not a regression suite and not a code review. Cover only what this diff changed, plus the one or two adjacent flows most likely to break as a side effect. If the checklist grows past ~10 steps, it's too broad — cut it back to what the change actually touched.

1. Get the diff

Default to comparing the current branch against main; respect any base, commit range, or PR the user names instead.

git fetch origin
git diff origin/main...HEAD --stat     # overview
git diff origin/main...HEAD            # read the whole diff

Use ... (merge-base) so you see only what this branch adds. Where the diff alone is ambiguous, open the touched files — you need to understand the user-visible behaviour, not just the lines that moved.

2. Translate code changes into user-visible behaviour

For each change, ask: "what would a user see or do differently because of this?" That question decides what goes on the checklist.

  • Controllers / routes / pages — the pages and actions to exercise. New route → visit it; changed store/update logic → submit the form and check the result.
  • Validation & authorization — the failure paths are QA steps too: submit the invalid input and confirm the inline error; try the action as a user who shouldn't be allowed and confirm it's blocked.
  • Frontend components — the interactions to click: toggles, modals, optimistic updates, empty states, flash messages.
  • Feature flags — if behaviour is gated (e.g. Pennant), include checking both sides: flag on shows the feature, flag off hides it cleanly. Say how to identify a flagged account if the diff makes that clear.
  • Emails / notifications / jobs — trigger the action, then check the observable result (email arrives, notification appears). Skip anything with no observable surface.
  • Migrations / data changes — only if they change what users see (e.g. a renamed field on a page). Running migrations belongs in a deploy checklist, not here.

Skip entirely: refactors with no behaviour change, test-only changes, CI/tooling, code style. If the whole diff is like that, say so — "nothing to QA manually" is a valid answer.

3. Write the checklist

Output a single markdown checklist. Rules:

  • Plain English, imperative steps — "Open a feedback item and click the 👍 reaction", not "Verify ReactionController@store persists the reaction". Never reference class names, routes-as-code, or files.
  • Each step pairs an action with the expected result: do X — you should see Y.
  • Order steps as a walkthrough, so a person can do them top to bottom in one session without backtracking (set up state first, then exercise it, then check side effects).
  • Note required preconditions up front in one line if any exist: a second test account, a feature flag enabled, an existing record to act on.
  • Keep it to roughly 5–10 checkboxes. One step per behaviour, not per code path.

Format:

## QA checklist — <one-line summary of the change>

**Before you start:** <preconditions, or omit this line>

- [ ] <action> — <expected result>
- [ ] ...

End with nothing else — no summary of the diff, no code commentary.

Comments

Markdown supported