Appends a qa-report planning task and a qa-execution task at the end of every cy-create-tasks output, wired to the living docs/qa contract (scenario files, journeys, charters, bug registry, dated reports). Adds e2e coverage (Playwright or browser-use) for UI-bearing features. Use after cy-create-tasks finishes generating _tasks.md and the file lacks the trailing QA pair. Do not use for tasks generated outside the Compozy PRD pipeline, for ideation/brainstorming output, or for review-round task lists.
Installation
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Appends a qa-report planning task and a qa-execution task at the end of every cy-create-tasks output, wired to the living docs/qa contract (scenario files, journeys, charters, bug registry, dated reports). Adds e2e coverage (Playwright or browser-use) for UI-bearing features. Use after cy-create-tasks finishes generating _tasks.md and the file lacks the trailing QA pair. Do not use for tasks generated outside the Compozy PRD pipeline, for ideation/brainstorming output, or for review-round task lists.
trigger
explicit
Tasks Tail QA Pair
Auto-append the canonical QA pair ($qa-report + $qa-execution) to every _tasks.md produced by cy-create-tasks, so the implementation agent always closes a program with a real verification pass. The pair operates on the repo's living QA tree (docs/qa/) — plans become journeys/charters/scenario files, results become registry bugs and dated reports.
Procedures
Step 1: Locate the Tasks File
Resolve the target _tasks.md path. If invoked immediately after cy-create-tasks, the orchestrator passes the slug; otherwise read the most recently modified .compozy/tasks/<slug>/_tasks.md.
Read the file and check whether the last two non-empty entries already follow the QA pair pattern.
If both qa-report and qa-execution rows exist with proper dependencies, exit with status noop — do not duplicate.
Step 2: Detect UI-Bearing Features
Parse the task list for any task that touches web/, packages/site, web/e2e/, Storybook, or any frontend-facing surface.
If at least one task touches user-facing UI, set requires_e2e=true.
If no task touches UI but the techspec covers public API/CLI, agent-manageability, extensibility, or config lifecycle surfaces, set requires_cli_e2e=true.
Read references/qa-tail-template.md for the canonical row shape, complexity rating, and required <critical> blocks.
Note the Dependencies syntax: the qa-report task depends on the last implementation task, and the qa-execution task depends on qa-report.
Preserve the table column order used in the existing _tasks.md (do not reorder columns). The current canonical order is # | Title | Status | Complexity | Dependencies.
Step 4: Compose the QA Pair
Generate the qa-report task row using the template:
Title: QA Plan and Session Charters
Frontmatter type: qa-report
Status: pending
Complexity: high
Dependencies: last implementation task ID
Generate the qa-execution task row:
Title: Real-User QA Execution
Frontmatter type: qa-execution
Status: pending
Complexity: critical
Dependencies: the new qa-report task ID
Include e2e directive when requires_e2e=true (Playwright via browser-use:browser, fallback to agent-browser).
Include CLI/API/agent-manageability end-to-end directive when requires_cli_e2e=true.
Compute correct sequential task IDs (e.g., next task_NN numbers).
Step 5: Append and Verify
Append the two rows below the existing list. Do not modify earlier rows.
Create matching task_NN.md files for both QA rows using the body guidance in references/qa-tail-template.md.
If the _tasks.md includes a ## MVP Boundary section that references "tasks 01-NN", update only the QA range to include the new tasks.
Read references/qa-pair-checklist.md and confirm every item passes before exit.
Print the final two-row diff to stdout for human/agent review.
Error Handling
If the target _tasks.md cannot be located, fail loudly and report the resolved slug. Do not write files speculatively.
If the file lacks a recognizable task table (e.g., it is empty or uses a custom format), refuse to edit; emit the discovered shape on stderr and ask for the correct path.
If cy-create-tasks already inserted partial QA tasks (only qa-report or only qa-execution), repair the missing half rather than duplicating.
Never replace existing QA rows. If the user has customized them, treat the file as ready and exit noop.