Claude-skill-registry final-qa-launcher

Start dev server, generate QA checklist, guide manual verification. Use before creating PR.

install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/final-qa-launcher" ~/.claude/skills/majiayu000-claude-skill-registry-final-qa-launcher && rm -rf "$T"
manifest: skills/data/final-qa-launcher/SKILL.md
source content

Final QA Launcher

Starts the dev server in tmux, generates a QA checklist from ticket and plan, and guides human through final manual verification.

Prerequisites

  • Code review complete
  • All review items addressed
  • Ready for final human verification

Workflow

1. Determine Server Type

Ask the user:

Which dev server should I start?

A) pnpm dev - Standard (default)
B) pnpm dev:cloud - Cloud features
C) pnpm dev:electron - Electron features

(or specify custom command)

2. Start Dev Server

Use tmux to start the server in the background:

# Kill existing dev-server window if present
tmux list-windows 2>/dev/null | grep -q dev-server && tmux kill-window -t dev-server

# Create new window and start server
tmux new-window -n "dev-server" -d
tmux send-keys -t "dev-server" "cd {frontend-dir} && pnpm dev:cloud" C-m

Replace

{frontend-dir}
with the actual ComfyUI_frontend path.

3. Wait for Server Ready

Poll until the server is ready (look for localhost URL):

for i in {1..30}; do
  output=$(tmux capture-pane -p -t "dev-server")
  if echo "$output" | grep -qE "localhost:[0-9]+"; then
    break
  fi
  sleep 2
done

4. Print Server Info

Once ready, output:

✅ Dev server started

URL: http://localhost:5173 (or detected URL)

To view logs: tmux capture-pane -p -t "dev-server"
To stop: tmux kill-window -t "dev-server"

5. Generate QA Checklist

Load ticket.json and plan.md from the run directory. Create a checklist:

# QA Checklist: {Ticket Title}

## Acceptance Criteria

(from ticket.json)

- [ ] {Criterion 1}
- [ ] {Criterion 2}

## Implementation Verification

(from plan.md)

- [ ] {Feature 1} works as expected
- [ ] {Feature 2} works as expected

## Standard Checks

- [ ] No console errors in browser DevTools
- [ ] No network errors in DevTools Network tab
- [ ] Responsive: works on desktop width
- [ ] Responsive: works on mobile width (if applicable)
- [ ] Keyboard navigation works (if applicable)
- [ ] Loading states display correctly
- [ ] Error states display correctly
- [ ] No visual regressions in related areas

## Edge Cases

- [ ] Empty state handled
- [ ] Error state handled
- [ ] Large data handled (if applicable)
- [ ] Concurrent actions handled (if applicable)

## Integration

- [ ] Feature works with rest of application
- [ ] No breaks in related features

6. Save & Present Checklist

Save to

{run-dir}/qa-checklist.md
and print to user:

Please verify each item manually in the browser.

When complete:
- "approved" - Continue to PR creation
- "issue: {description}" - Report an issue found
- "stop" - Stop for now, will continue later

7. Handle User Response

If "approved":

  • Update
    status.json
    : set status to "pr-ready"
  • Prompt: "Ready to create PR. Continue?"

If "issue: {description}":

  • Log the issue
  • Ask: "Fix now or note for later?"
  • If fix now: return to implementation mode
  • If note: add to known issues list in status.json

If "stop":

  • Save current state
  • Output: "State saved. Resume with 'final-qa-launcher' skill."

8. Cleanup

Ask:

Keep dev server running? (Y/n)

If no, run:

tmux kill-window -t "dev-server"

File Locations

  • Ticket:
    {run-dir}/ticket.json
  • Plan:
    {run-dir}/plan.md
  • QA Checklist:
    {run-dir}/qa-checklist.md
  • Status:
    {run-dir}/status.json

Notes

  • Dev server startup typically takes 10-30 seconds
  • Vite prints the URL when ready
  • Keep checklist focused—don't overwhelm with items
  • Standard checks apply to all tickets
  • Acceptance criteria come directly from ticket.json
  • Server persists across the QA session until explicitly stopped