feature-qa-loop
Skill0 starsChanged 2 months agoMITView on GitHub
Guide collaborative QA of one deployed feature, one manual step at a time; capture user observations and requirements, investigate discrepancies, and—when explicitly authorized for the session—fix confirmed blockers, push the verified repair, and resume the failed step. Use for interactive real-world or production-like feature testing with a human tester. Do not use for ordinary automated test writing or one-shot code review.
In this repositoryOne other file it gives its agents.
- pr-test-planSkill
The file
We split this skill into the rules it gives an agent
11 rules. About 0 are common, 11 are distinctive, and 0 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈11
Distinctive · estimate
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 8
Run a tight human-in-the-loop QA cycle for one feature.
- Distinctive: line 12
Ask for the feature only if the user has not named it.
- Distinctive: line 19
Do not make the user review the whole test plan.
- Distinctive: line 23
Every manual-testing turn must contain exactly one action for the user.
- Distinctive: line 28
Keep it brief and easy to scan.
- Distinctive: line 30
Read-only checks the assistant can perform—repository inspection, logs, database reads, deployment status, or screenshot analysis—do not …
- Distinctive: line 61
When the user says to "note", "record", or "add" something, update the note immediately.
- Distinctive: line 67
When blocker fixes are authorized:
- Distinctive: line 70
Add or update a regression test that reproduces the failure when practical.
- Distinctive: line 72
Run focused checks, then the relevant CI-equivalent checks proportional to risk.
- Distinctive: line 73
Commit only files belonging to the fix.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 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
Feature QA Loop
Run a tight human-in-the-loop QA cycle for one feature. Keep the user focused on a single action while maintaining the deeper test plan, evidence trail, and engineering loop yourself.
Start the session
Ask for the feature only if the user has not named it. Resolve the target environment and current deployed version from context or read-only inspection. Inspect relevant product docs, code, fixtures, and existing QA instructions before choosing the first action.
Establish the mutation policy from the user's explicit wording:
analysis-only: investigate and record; do not edit code, commit, push, deploy, or change production data.fix blockers: implement and verify confirmed blockers. Commit or push only when the user explicitly authorizes those actions for this session. Skill invocation alone never grants write or production authority.
Do not make the user review the whole test plan. Maintain it privately and reveal one step at a time.
One-step contract
Every manual-testing turn must contain exactly one action for the user. State:
- The single action to perform.
- The exact visible result expected.
Keep it brief and easy to scan. Do not include later steps, optional branches, multiple actions hidden in one bullet, or a full checklist. Wait for the user's result before advancing.
Read-only checks the assistant can perform—repository inspection, logs, database reads, deployment status, or screenshot analysis—do not count as extra user steps. Perform them when they remove guesswork.
Process each result
Classify the result internally as one of:
- pass;
- observation or UX confusion;
- suggestion / requested requirement;
- non-blocking defect;
- blocking defect;
- inconclusive.
Record it before moving on. Clearly distinguish user reported from confirmed by evidence. Do not turn an apparent symptom into a confirmed bug until logs, stored state, code behavior, or a reproducible check supports it. For documents, use stable evidence such as content, byte size, checksum, attachment ID, and stored classification when filenames can be lost or rewritten.
Then respond with the next single step. If the result is inconclusive, the next step should isolate the uncertainty rather than advance the flow.
Session notes
Reuse an existing QA session note when one exists. Otherwise create a workspace-local note under tmp/qa-sessions/<date>-<feature>.md unless the user specifies a durable tracked location.
Maintain these sections as the session evolves:
- feature, environment, start date, and deployed revision;
- chronological observations with expected versus observed behavior;
- confirmed bugs;
- user-requested requirements and suggestions;
- fixes, commits, CI runs, and deployments;
- untested cases and why they remain untested;
- the exact step from which testing should resume.
When the user says to "note", "record", or "add" something, update the note immediately. At the end of the session, give a compact bug/requirement summary and a link to the note.
Handle a blocker
First diagnose the root cause using the least invasive evidence available. Do not bypass the failed step or silently mutate production data.
When blocker fixes are authorized:
- Inspect the worktree and preserve unrelated user changes.
- Add or update a regression test that reproduces the failure when practical.
- Implement the smallest root-cause fix.
- Run focused checks, then the relevant CI-equivalent checks proportional to risk.
- Commit only files belonging to the fix.
- Push to
mainonly when direct-main push was explicitly authorized. Never force-push. - Monitor CI to completion. If the environment auto-deploys after CI, monitor that deployment and verify the deployed revision and service health read-only.
- Return to the same failed QA step. Do not advance until it passes.
One confirmed root cause should produce at most one direct-main push. If the same step remains blocked after two separately verified production fixes, stop before another production mutation, summarize the evidence, and ask for direction.
Real-world timing and production limits
Do not alter a production system clock. For flows requiring days to pass, test the immediately reachable stages and record the time-gated stages as untested. Use backdated test data, a clock abstraction, a non-production environment, or a controlled scheduler invocation only when the user explicitly authorizes that method and scope.
Production inspection is read-only unless the user separately authorizes a specific mutation. Never use real client data for fixture creation or destructive tests.
Finish or pause
Continue until the feature's intended flow passes, the user pauses/stops, or progress requires new authority or an external state change. On pause, record the exact resume point and give only the most useful next action.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
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.

