49409c9dd3
The gate had two live consumers and no producer. store.go resolves a pending sign-off by subject, and manuallySignedOff checks for a prior one, but every comment Orchestra imported was hardcoded to operator_instruction. A phase carrying a manual step could reach awaiting_manual_verification and never leave it. A comment whose first line reads "orchestra verify <phase-id>" now approves that phase. Orchestra supplies the plan ref from the task's own accepted plan, so the approval binds to the plan that was current when the human wrote it. Everything else still lands under operator_instruction, which is what keeps a generic "looks good" from satisfying a gate nobody was discussing. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CVbaKucEYBjMqVeUgJUsc1