Skip to content

Phase Gates

Phase gates are checkpoints where the plan is validated against your constitution. Three gates must pass before implementation begins.

Input

Plan

Gate 1

Simplicity

Gate 2

Anti-Abstraction

Gate 3

Integration-First

Pass Result

Tasks Ready

Simplicity GateFail action

Simplify architecture and reduce moving parts.

Anti-Abstraction GateFail action

Remove wrappers and use frameworks directly.

Integration-First GateFail action

Define contracts before implementation work.

  • Maximum 3 projects in the initial structure
  • No future-proofing for hypothetical requirements
  • If two approaches work, pick the one with fewer moving parts

Fail example: A plan proposes 5 microservices for a single-user task manager. Gate fails. Simplify to a monolith.

  • Frameworks used directly, not wrapped
  • No abstract base classes without 3+ concrete implementations
  • Single model per entity, no mapper layers

Fail example: A plan includes a DatabaseAdapter interface wrapping Drizzle ORM. Gate fails. Use Drizzle directly.

  • API contracts defined before implementation
  • Contract tests exist for every integration boundary
  • Real databases in tests, not mocks

Fail example: A plan has no contracts/ directory. Gate fails. Define the API before building it.

When a gate violation is justified, document it:

GateViolationJustificationSimpler Alternative Rejected Because
Simplicity4 projectsMobile + API requires separate buildsSingle project cannot target both web and mobile

This table lives in the plan and is reviewed during task generation.