skills/manual-testing/SKILL.md
Guide users through targeted manual verification after code changes. Use when asked to "test this", "verify it works", "QA this", "walk me through testing", "smoke test", "sanity check", "regression test", "acceptance test", or after implementing a feature or bug fix that still needs human validation. Favor this skill for focused verification of the current change; use a broader exploratory-testing skill for open-ended bug hunting across an entire app.
npx skillsauth add petekp/claude-skills manual-testingInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Finish work with a tight verification loop: prove everything possible with tools first, then ask the user to verify only what requires human eyes, hands, devices, or judgment.
Do not make the user invent the test plan. Lead them through it.
Before asking the user to do anything, know:
Never ask the user to "poke around" or "let me know if it works." Give concrete actions, a specific screen or command, the expected result, and a short set of likely outcomes to reply with.
Translate the change into a short verification plan before running anything.
For each changed behavior, capture:
Use a simple internal checklist like:
| Behavior | Happy path | Edge/regression | Verified by | |----------|------------|-----------------|-------------| | Save settings | Form saves | Validation error still works | Tool + user |
Keep the matrix small and focused on the current change.
Exhaust automated verification before involving the user.
Prefer to verify these yourself:
Only hand work to the user when the result depends on:
If an automated check fails, stop and address it before asking for manual verification.
Set the user up so they can perform the check with minimal effort.
Provide:
If the user needs an already-running app, point them to the exact place to open. If you can safely prepare state, data, or fixtures first, do that yourself.
Run manual verification as a guided sequence, not a dump of vague instructions.
Prefer one atomic step at a time. For a tiny smoke test, bundle at most 2-3 closely related checks.
Use this structure:
Testing: [feature or fix]
Progress: Step N of M
Action: [exact thing to click, type, or inspect]
Expected: [what should happen]
Reply with one:
1. [expected outcome]
2. [common failure mode]
3. [second common failure mode]
4. Other
If structured question tools are available, convert those reply options into a structured prompt. Otherwise ask the question in plain text with the options inline.
Example:
Testing: profile photo upload
Progress: Step 2 of 3
Action: Open `/settings/profile`, upload a PNG under 2 MB, and wait for the save state to finish.
Expected: The new avatar appears in the header and no error message is shown.
Reply with one:
1. Upload worked and the new avatar is visible
2. Upload finished but the avatar did not update
3. I saw an error message or spinner got stuck
4. Other
Always test the changed path first, then cover the most likely place it could fail.
Use these prompts as a calibration checklist.
For UI changes:
For bug fixes:
For API or backend changes:
For CLI or local-tool changes:
When the user reports a problem:
Before changing code, generate 2-3 plausible hypotheses for the failure so the next debugging step is deliberate instead of guess-driven.
If the failure blocks confidence in the change, stop the manual test and switch into diagnosis.
Close with a short verification summary that separates what is proven from what is still assumed.
Include:
development
Draft short, plainspoken notes in the author's voice that help reviewers understand non-obvious choices, boundaries, and preserved behavior in the author's own pull request or local diff. Use when the user asks to self-review, annotate, or add reviewer context to their PR or changes. Draft locally when no PR exists, and post approved notes as one GitHub review when a PR does exist. Do not use for reviewing someone else's PR, writing code comments, explaining code generally, or drafting a PR description. Never post without explicit approval.
tools
Design and build pure-CSS (zero-JavaScript) Tailwind CSS v4 plugins of unusual depth and craft. Use when the user wants to create, architect, or refine a Tailwind utility plugin or CSS effect — e.g. "make a tailwind plugin", "build a tw-* plugin", "a CSS-only shimmer/fade/glow/grain/noise utility", "tailwind v4 @utility", "package this effect as a plugin", or wants an effect with surprising visual depth (gradients, masks, filters, SVG filter tricks, scroll-driven animation). Pairs deep CSS/SVG technique research with a bespoke tuning workbench for dialing the effect in. Inspired by tw-fade and tw-shimmer.
content-media
Create clear, polished before-and-after screenshots for a GitHub pull request. Use when a UI change needs visual proof: capture matching states, crop to the relevant UI, stitch and caption one comparison image, attach it natively to the PR, and keep the image out of the repository.
testing
--- name: latent-potential description: First-principles, team-of-experts assessment of a software project that surfaces latent potential; underexploited assets, a sharper north star, missing high-leverage capabilities, better framing and messaging. Produces a prioritized, evidence-grounded report with cheap probes, a reframe candidate, a stop-doing list, and an honest skeptic's case. Use whenever the user wants fresh eyes on a project they have built: "what am I sitting on", "what could this be