agentic-qa
Installation
SKILL.md
agentic-qa
Drive the change through the running app; judge visible behavior, logs and requests. Write evidence and findings, never code.
Inputs
- Change — a PR number or branch. Read the diff, the head SHA, and the linked issue.
- Acceptance criteria — the issue's body section/checklist, otherwise its newest standalone
## Acceptance criteriacomment (legacy criteria markers remain readable), plus any/tdd-loopAC map. Cover rows markedagentic-qa (<surface>). No criteria →BLOCKED. - Isolated worktree — the app runs from
<project-repo>/.worktrees/pr-<n>at the head SHA (detached is fine; the tester commits nothing): reuse the verified PR or factory task worktree; before a PR exists use.worktrees/qa-<branch-slug>. Otherwise usegit worktree add --detachper workspace policy. Only an explicitly started/factory runor/orchestrate-t3may read/followusing-git-worktreesfor its task setup; direct skill use requires the user's invocation. Before commands there, report and verify path, owning repo/common Git directory, branch or detached state, starting SHA and baseline against workspace rules. Setup failure or mismatch blocks; never use the main checkout as fallback. Leave and report the worktree; cleanup follows workspace policy. The base-commit baseline runs from its own worktree,.worktrees/pr-<n>-base. - Running app — local URL from that worktree at head. Staging needs this session's explicit user approval and user-provided SSH access under the global rule; read-only unless each mutation is separately approved. Neither →
BLOCKED. - Roles — each role that can see the touched surfaces, with test logins referenced by env var name only, never values. A role with no login → gap cells; if required to verify a criterion, result
BLOCKED, otherwisePARTIAL. - Escape classes — open and closed issues labelled
qa-escapewhose area matches the touched surfaces (gh issue list --label qa-escape --state all --search "<area>", or the tracker's label filter). Each class and matching## QA escape guardsline becomes rows; excludereproduced=noandnot-a-regressionmarkers. A guard line whose surface no longer exists → report it under Needs user; never skip it silently.