Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
49 changes: 49 additions & 0 deletions .claude/skills/qa-checklist/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
---
name: qa-checklist
description: Generate a QA acceptance criteria and regression testing checklist based on the current branch's changes, then update the Linear ticket. Use when work is ready for QA review.
argument-hint: [LINEAR-ISSUE-ID]
disable-model-invocation: true
---

# QA Checklist Generator

Generate a QA-friendly acceptance criteria and regression testing checklist for the current branch.

## Steps

1. **Get the Linear issue**: Fetch the issue using the provided ID (e.g., NES-1297) to understand the original requirements and acceptance criteria.

2. **Analyze the branch changes**:
- Run `git log main..HEAD --oneline` to see all commits on this branch.
- Run `git diff main..HEAD --stat` to see all changed files.
- Read the key changed files to understand what was modified.

3. **Identify affected areas**: Determine all user-facing flows that were changed or could be impacted. Consider:
- Direct changes (new features, modified behavior)
- Indirect impacts (shared components, hooks, or utilities that were modified)
- Entry points where users can trigger the changed functionality

4. **Generate the checklist**: Write a checklist with two sections:

**Acceptance Criteria** — What the feature should do (based on the issue requirements):
- Written as checkbox items (`- [ ]`)
- Non-technical language a QA tester can follow
- Focused on observable behavior, not implementation details

**Regression Testing** — What else should be manually verified to ensure nothing broke:
- Grouped by user flow or page
- Written as checkbox items (`- [ ]`)
- Include any special testing notes (e.g., timing, environment requirements)
- Cover all entry points where shared/modified code is used

5. **Show the checklist to the user** for review before updating Linear.

6. **Update the Linear ticket**: Once approved, replace the Acceptance Criteria section in the issue description with the new checklist. Keep the rest of the description unchanged.
Comment on lines +26 to +41
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

Clarify where the Regression Testing section is persisted.

Step 4 generates two sections, but Line 41 only tells the agent to replace Acceptance Criteria. As written, the Regression Testing checklist is either dropped or forced into the wrong section when the Linear update happens.

Please make the update contract explicit, e.g. replace/create both sections in the description, or update one section and leave the other as user-only output.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.claude/skills/qa-checklist/SKILL.md around lines 26 - 41, The document
currently says to generate two checklist sections (Acceptance Criteria and
Regression Testing) but step 6 only instructs replacing the Acceptance Criteria
in Linear, creating ambiguity about what happens to Regression Testing; update
the SKILL.md steps so step 6 explicitly states whether to (A) replace or create
both the "Acceptance Criteria" and "Regression Testing" sections in the Linear
issue description with the generated content, or (B) replace only "Acceptance
Criteria" and keep "Regression Testing" as a user-visible output that is not
persisted to Linear—make this contract explicit in the "Generate the checklist"
(step 4), "Show the checklist" (step 5), and "Update the Linear ticket" (step 6)
instructions so agents know exactly which sections to persist.


## Important

- Write for a QA team — avoid technical jargon, code references, and implementation details.
- Use checkbox format (`- [ ]`) for all items so they can be checked off.
- Do NOT add progress summaries or implementation notes to the ticket.
- Do NOT add the checklist as a comment — update the description directly.
- Always show the checklist to the user for review before updating Linear.
Comment on lines +41 to +49
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

Add a safe fallback when the ticket lacks a matching section.

Updating the description directly is risky without defining how to find the existing Acceptance Criteria block. If the heading is missing or named differently, the skill can overwrite unrelated parts of the Linear description instead of preserving them.

Please require an exact section match and fall back to asking the user before editing when the section cannot be identified unambiguously.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.claude/skills/qa-checklist/SKILL.md around lines 41 - 49, Modify the
"Update the Linear ticket" step to require an exact match for the "Acceptance
Criteria" heading before replacing content: search the description for the exact
string "Acceptance Criteria" as a distinct heading and only perform the in-place
replacement when that exact section is found; if no exact match or multiple
ambiguous matches exist, do not edit and instead prompt the user for
clarification or request permission to create a new checklist section, showing
the proposed checklist for approval before making any changes.

Loading