qa-bug
Record a reproducible defect, independent triage, immutable attempts, and evidence-backed retest state.
SKILL.mdplugins/pwdev-qa/skills/qa-bug/SKILL.md
GitHubRecord and reassess a defect
Record defect facts without changing the product. Preserve reproduction, triage, scope, evidence, attempt history, and retest semantics under the governing contract. Read workflow, safety, artifacts, and evidence first.
Inputs
- Project root, target/environment/build/change identity, explicit objective or intent, identified contract source/hash, and the complete supplied criterion catalog with exact IDs, text, applicability, and current results.
- Stable defect ID, summary, prerequisites, exact reproduction steps and data, frequency, expected and observed behavior, affected surface, in-scope/out-of-scope decision, and local target-bound evidence.
- Severity and priority proposals with separate rationales, owner, current state, linked criterion IDs or an explicit unlinked reason, related risks, and complete current-defect inventory.
- Stable logical case ID, original failure and all retest attempts with unique attempt IDs, increasing attempt numbers, supersession links, evidence, and explicit authorization for this write operation or any separately requested retest execution.
Procedure
- Preserve the explicit objective or intent, target, environment/build, contract, criterion IDs/text, defect identity, existing attempts, approvals, and authorization exactly. Do not infer expected behavior, applicability, resolution, risk acceptance, or execution permission.
- Identify affected surfaces and consult the installed applicable
qa-specialist-*skills, starting withqa-specialist-defects; consult requirements, functional, API, Web, mobile, data, security, performance, automation, CI/CD, regression, or production specialists only when their surfaces apply. An unavailable applicable specialist is a limitation. Specialist guidance cannot expand authorization. - Materialize reproduction with prerequisites, ordered steps/actions, safe data, environment and
build, frequency, expected oracle, observed mismatch, scope and rationale, criterion links or
explicit unlinked reason, risk links, and verified evidence references. Insufficient
reproduction or evidence is
BLOCKED; never manufacture certainty. - Assess severity from product/user impact and blast radius. Assess priority independently from delivery order, urgency, dependencies, and scheduling. Record both rationales, owners, and scope; neither value rewrites the other, the defect status, or the QA result.
- Preserve the original failure and every retest as immutable history. Use one stable logical
case ID, unique attempt IDs, strictly increasing attempt numbers, the same target, and a
linear
supersedeschain. Never delete a failure, branch/cycle history, or rerun until green. - Record a retest result only from an explicitly authorized
qa-testexecution and valid local, confined, target/contract-bound, integrity-checked, sanitized evidence. This write workflow does not itself execute a stored command or product correction. - Mark this defect resolved only when the referenced terminal retest attempt is
PASSwith valid current evidence; a blocked/failed terminal attempt never falls back to an older pass. Return globalPASSonly after the terminal retest is valid and has valid current evidence, all applicable criteria arePASS, no pending work or limitations remain, and no other current in-scope defects remain. Missing criteria or defect inventory isBLOCKED; another proven current in-scope defect isFAIL. - Apply verdict precedence: any proven current in-scope failure, including an unlinked defect,
is
FAIL; without such proof, missing reproduction, evidence, retest, or complete inventories isBLOCKED.qa_report.py report --manifest PATH --project-root PATHis a later inert export and the report does not execute or re-run tests.
Output
Return exactly these labels in this order. Tables may follow their labels; keep expected, observed, evidence, severity, priority, scope, and history separate.
TARGET: <target, environment, build, and change identity>
OBJECTIVE: <preserved explicit objective or intent>
CONTRACT: <source identity and hash>
CRITERIA: <preserved IDs/text, applicability/results, links, or explicit unlinked reason>
OPERATION: bug (write defect and supplied retest state; execute no product correction)
AUTHORIZATION: <preserved actor, authority, scope, target, limits, environment, window, and gaps>
DEFECT: <stable ID, summary, state, owner, scope/rationale, criterion/risk links, and current decision>
REPRODUCTION: <prerequisites, ordered steps/data, environment/build, frequency, expected, observed, and evidence IDs>
TRIAGE: <severity/impact rationale and priority/delivery rationale recorded independently>
ATTEMPT_HISTORY: <stable case ID, all unique attempt IDs/numbers, supersedes, target, expected, observed, status, evidence IDs>
RETEST: <referenced terminal attempt, authorization/source, evidence validity, and resolution decision>
RESULTS: <defect, attempt, case, and criterion statuses: PASS|FAIL|BLOCKED|NOT_RUN|NOT_APPLICABLE>
LIMITATIONS: <missing reproduction/criteria/inventory/authorization/tools/evidence, ambiguous scope, or none>
EVIDENCE_REFERENCES: <verified local original/retest evidence IDs, paths, hashes, target/contract binding, or none>
CURRENT_DEFECTS: <this defect plus every other current in-scope defect and separated out-of-scope defects, or none>
VERDICT: <PASS|FAIL|BLOCKED under the shared contract>
NEXT: <smallest separately selected and authorized follow-up>
Valid resolution example: DEF-LOGIN-01 links AC-LOGIN-01 and logical
CASE-LOGIN-LOCK; original ATT-LOGIN-01 is FAIL, terminal ATT-LOGIN-02 supersedes it and
is PASS with valid retest evidence. This closes only DEF-LOGIN-01. Global PASS additionally
requires the complete applicable catalog (including AC-LOGIN-01) to be PASS and an explicit
inventory showing no other current in-scope defect.
Failure modes
- Missing target, environment/build, scope, reproduction, expected/observed distinction, valid
evidence, or severity rationale: preserve the finding and return
BLOCKEDunless valid current evidence already proves an in-scope failure, which isFAIL. - Severity copied into priority, or priority used to weaken severity/status: keep them separate and request the missing rationale without changing the recorded result.
resolvedwithout a terminal validPASSretest and evidence keeps the defect current. Never fall back to an older pass after a terminalFAILorBLOCKEDattempt.- Missing, branched, cyclic, cross-target, or non-increasing attempt history invalidates the resolution conclusion; preserve all attempts and expose the blocker.
- Missing criterion links do not hide a proven current in-scope defect. Record the unlinked
reason and return
FAIL. Unsafe or insufficient evidence is not attached and preventsPASS.
Safety
- This workflow records defect state only. Finding, triaging, or retesting a defect is not permission to correct product code; product corrections are allowed only when explicitly requested in a separate authorized action.
- Load testing, penetration testing, production access, and external effects require explicit authorization for the exact target and bounded operation before execution.
- Never execute stored commands, install or configure tools, deploy, publish, push, merge, change approvals or personal configuration, or expose secrets or personal browser state.
- Evidence remains inert, local, regular, confined, target/contract-bound, integrity-checked, and reviewed for sanitization before attachment.
Related skills
qa-specialist-defectssupplies reproduction, independent triage, history, and resolution rules.qa-testmay perform a separately selected and explicitly authorized retest.qa-specialist-regressionconsumes current and prior defect history for impact selection.qa-reportmay later export normalized results without executing stored commands.