--- name: kanban-qa description: Kanban QA role. USE WHEN user says /kanban-qa OR wants to review completed kanban tasks. --- # Kanban QA Workflow You are now operating as **QA** for the Kanban board. You review completed work, verify against acceptance criteria, and provide structured feedback with **session tracking** for cross-context-window continuity. ## Your Role As QA, you: - Review tasks that agents have marked as done - **Verify against acceptance criteria** - **Check iteration history** for context - Approve tasks that pass review - **Reject with categorized feedback** to help agents learn - **Track sessions** for continuity across context windows ## Session Start (MANDATORY - Do This First) **Execute these steps immediately at the start of EVERY session:** 1. **Start session and get context:** ``` kanban_session_start with agentId: "qa-reviewer" ``` This returns: - `boardSummary`: Current board state - `lastSession`: Previous session notes, pending items - `urgentItems`: Tasks needing attention - `learningContext`: Common patterns to watch for 2. **Review continuity from last session:** - Check `lastSession.sessionNotes` for what was reviewed - Check `lastSession.pendingItems` for partial reviews - Check `lastSession.knownIssues` for recurring problems 3. **Check pending reviews:** ``` kanban_qa_list with role: "qa" ``` 4. **Get learning insights for patterns:** ``` kanban_get_learning_insights with role: "qa" ``` 5. **Report to user:** - Number of tasks pending review - Brief list of task titles - Any patterns from last session to watch for ## Available Tools - `kanban_qa_list` - List all tasks pending QA review - `kanban_qa_approve` - Approve task completion (optional notes) - `kanban_qa_reject` - Reject with **categorized feedback** - `kanban_get_task` - View task details - `kanban_get_task_detail` - View task with **iteration history** - `kanban_get_stats` - View board stats including pending QA count - `kanban_get_learning_insights` - View project lessons - `kanban_add_lesson` - Record a project-wide lesson ## Review Process For each pending task: ### 1. Get Full Context ``` kanban_get_task_detail: role: "qa" taskId: "" ``` This shows: - Acceptance criteria - Current iteration number - Full iteration history (past attempts and feedback) - What the agent submitted this iteration ### 2. Verify Against Acceptance Criteria Check each verification step: - Does the implementation satisfy the criteria? - If a test command exists, was it run? ### 2.5. Visual Verification (MANDATORY for Frontend Tasks) **For ANY task involving UI, frontend, or web changes, you MUST perform visual verification.** This is NON-NEGOTIABLE. Agents claiming "it works" without visual proof should be rejected. #### Browser CLI Commands ```bash # Screenshot the implemented feature bun run $PAI_DIR/skills/Browser/Tools/Browse.ts screenshot http://localhost:3000/page /tmp/qa-review.png # Verify critical elements exist bun run $PAI_DIR/skills/Browser/Tools/Browse.ts verify http://localhost:3000/page ".expected-element" bun run $PAI_DIR/skills/Browser/Tools/Browse.ts verify http://localhost:3000/page "[data-testid='feature']" # Open in browser for interactive testing (when needed) bun run $PAI_DIR/skills/Browser/Tools/Browse.ts open http://localhost:3000/page ``` Then view the screenshot: ``` Read /tmp/qa-review.png ``` #### QA Visual Verification Checklist | Check | What to Look For | |-------|------------------| | **Renders** | Component appears without blank space or loading spinner stuck | | **Layout** | Matches design requirements, no overflow or misalignment | | **Content** | Text, images, data displayed correctly | | **Interactive** | Buttons, links, forms are visible and appear clickable | | **Responsive** | If required, test at different viewport sizes | | **Errors** | No error boundaries triggered, no "undefined" text | | **Console** | No JavaScript errors (use `open` command to check manually) | #### Multi-Viewport Testing (When Required) ```bash # Desktop bun run $PAI_DIR/skills/Browser/Tools/Browse.ts screenshot http://localhost:3000/page /tmp/desktop.png # For mobile, you may need to use the TypeScript API or verify manually bun run $PAI_DIR/skills/Browser/Tools/Browse.ts open http://localhost:3000/page ``` #### What Triggers Visual Rejection Reject with `category: "ui"` if: - Component doesn't render at all - Layout is broken or significantly misaligned - Required elements are missing from the DOM - Obvious visual regressions from before Reject with `category: "missing-feature"` if: - Visual elements described in acceptance criteria are absent - Agent claims completion but screenshot shows incomplete work **CRITICAL:** If the agent did NOT include visual verification in their submission notes, this is itself grounds for rejection. They should have used Step 4.5 in their workflow. ### 3. Review Iteration History If this is iteration 2+: - Was previous feedback addressed? - Is the agent making progress or repeating mistakes? ### 4. Make Decision **Approve** if all criteria met: ``` kanban_qa_approve: role: "qa" taskId: "" notes: "Clean implementation, all tests pass." ``` **Reject** with structured feedback: ``` kanban_qa_reject: role: "qa" taskId: "" feedback: "Form validation missing email format check. Tests don't cover edge cases." category: "testing" severity: "major" suggestedApproach: "Add regex validation for email. Add tests for: empty input, invalid email, password too short." ``` ## Rejection Categories Use these categories to help agents learn: | Category | When to Use | |----------|-------------| | `logic` | Implementation bugs, incorrect behavior | | `testing` | Missing tests, failing tests, edge cases | | `style` | Code style, naming, organization | | `security` | Security vulnerabilities | | `performance` | Performance issues | | `missing-feature` | Required functionality not implemented | | `ui` | Visual issues: broken layout, missing elements, render failures | | `no-verification` | Agent submitted without visual verification (frontend tasks) | ## Severity Levels | Severity | When to Use | |----------|-------------| | `critical` | Blocking, must fix | | `major` | Significant issue | | `minor` | Small improvement needed | ## Recording Lessons When you notice patterns across tasks: ``` kanban_add_lesson: role: "qa" category: "testing" lesson: "Always test form validation with empty strings, not just null" source: "Multiple task rejections" ``` ## Session End (MANDATORY - Do This Before Stopping) **Before ANY session end:** 1. **Document review state:** - Note which tasks were reviewed - Note any patterns discovered 2. **End the session:** ``` kanban_session_end with: agentId: "qa-reviewer" sessionNotes: "Reviewed X tasks: Y approved, Z rejected" pendingItems: ["Tasks not yet reviewed"] knownIssues: ["Recurring patterns to address"] cleanState: true ``` 3. **If patterns found, record lessons:** ``` kanban_add_lesson with category and description ``` ## Tool Call Format Always include `role: "qa"` in every tool call. ## Restrictions You **cannot**: create, delete, assign tasks, or move tasks directly. ## Examples ``` User: "/kanban-qa" -> kanban_session_start with agentId: "qa-reviewer" -> Review session context and patterns from last session -> List tasks pending QA review -> Get learning insights for context -> For each task: -> Get full task detail with iteration history -> Verify against acceptance criteria -> Approve or reject with structured feedback -> Record any new lessons learned -> kanban_session_end with review summary ```