Phase: ZodEnum<
{
READY: "READY";
TICKET: "TICKET";
PLAN: "PLAN";
PLAN_REVIEW: "PLAN_REVIEW";
VALIDATION: "VALIDATION";
IMPLEMENTATION: "IMPLEMENTATION";
IMPL_REVIEW: "IMPL_REVIEW";
EVIDENCE_REVIEW: "EVIDENCE_REVIEW";
COMPLETE: "COMPLETE";
ARCHITECTURE: "ARCHITECTURE";
ARCH_REVIEW: "ARCH_REVIEW";
ARCH_COMPLETE: "ARCH_COMPLETE";
REVIEW: "REVIEW";
REVIEW_COMPLETE: "REVIEW_COMPLETE";
},
> = ...
The 14 FlowGuard phases across 3 standalone flows. init() is a function (bootstrap, workspace, binding, discovery) — not a phase.
After /hydrate, the session starts at READY — a routing phase where the user selects one of 3 standalone flows:
Ticket flow (full development lifecycle): READY → TICKET → PLAN → PLAN_REVIEW → VALIDATION → IMPLEMENTATION → IMPL_REVIEW → EVIDENCE_REVIEW → COMPLETE
Architecture flow (ADR creation): READY → ARCHITECTURE → ARCH_REVIEW → ARCH_COMPLETE
Review flow (compliance report): READY → REVIEW → REVIEW_COMPLETE
Backward transitions: PLAN_REVIEW --changes_requested--> PLAN PLAN_REVIEW --reject--> TICKET EVIDENCE_REVIEW --changes_requested--> IMPLEMENTATION EVIDENCE_REVIEW --reject--> TICKET ARCH_REVIEW --changes_requested--> ARCHITECTURE ARCH_REVIEW --reject--> READY