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.mdsource 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
: set status to "pr-ready"status.json - 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