---
name: "Human QA gate with rejection flow"
---

# Story 247: Human QA gate with rejection flow

## User Story

As the project owner, I want stories to require my manual approval after machine QA before they can be merged, so that features that compile and pass tests but do not actually work correctly are caught before reaching master.

## Acceptance Criteria

- [ ] Story files support a manual_qa front matter field (defaults to true)
- [ ] After machine QA passes in 3_qa, stories with manual_qa: true wait for human approval before moving to 4_merge
- [ ] The UI shows a clear way to launch the app from the worktree for manual testing (single button click), with automatic port conflict handling via .story_kit_port
- [ ] Frontend and backend are pre-compiled during machine QA so the app is ready to run instantly for manual testing
- [ ] Only one QA app instance runs at a time — do not automatically spin up multiple instances
- [ ] Human can approve a story from 3_qa to move it to 4_merge
- [ ] Human can reject a story from 3_qa back to 2_current with notes about what is broken
- [ ] Rejection notes are written into the story file so the coder can see what needs fixing
- [ ] Stories with manual_qa: false skip the human gate and proceed directly from machine QA to 4_merge

## Out of Scope

- TBD
