Repository navigation
Gates and Signoff
Every task in the run had to pass its required gates before it counted as done. A human decision sat between the build and the deploy. This page lists what the gates were and where they actually changed the outcome.
| Phase | Gate | Who ran it | What it checked |
|---|---|---|---|
| Plan | design-review |
Product Designer | UX flows, themes, states, accessibility notes cover the brief |
| Plan | prototype-review |
Product Designer | Prototype passed 7 real-browser checks (desktop and 360 px, keyboard, reduced motion, console) |
| Plan | spec-review |
Product Owner, Architect | Every brief item traced to a PRD requirement, architecture, ADRs |
| Build |
build, lint, unit
|
Frontend Developer | TypeScript build, ESLint with zero warnings, Prettier, Vitest |
| Test | acceptance |
QA | Unit, 16 Playwright scenarios, PWA/offline, privacy network, Lighthouse |
| Test | critic-review |
Code Reviewer | Blocking defects in correctness, reliability, accessibility |
| Test | security |
Security and RAI | SAST, secrets, dependencies, lockfile, privacy, import threats, responsible AI |
| Sign-off | human | Product Owner, Security Team, Tech Lead | Approve or request changes for one exact commit |
| Deploy |
pre-deploy, smoke, rollback-ready
|
DevOps | Approved tree only, live checks, documented rollback |
-
The first PRD failed
spec-review. It had replaced the required 25/5, 50/10 and 15/3 rhythms with different durations and deferred required features. It was reopened and fixed.
-
Critic review found a real state bug. Pressing Done or Escape left the completed timer in place instead of returning to idle. It was fixed and covered by regression tests.
-
QA was blocked on three manual checks that no agent can do (a representative screen reader, current Safari offline and update, a manual zoom and forced-colors matrix). A named human recorded a waiver, verbatim, in
decisions.md. -
The human sign-off requested changes for three defects every automated gate had passed: a malformed SVG path in the plant art, small and similar plants, and a heavy focus outline after navigation. See the before and after screenshots in the evidence page.
-
Security blocked on a lockfile problem. A clean
npm cion Node 24 reportedthird-party-web@0.30.0missing. It was repaired with exact overrides and the whole chain re-ran.
- The orchestrator never fills in the approvers. It pauses and presents what was built, the gate results, the decisions and risks, and the exact commit.
- A human answers. The answer, the identity and a verbatim quote are written to an append-only record in
decisions.md, and only then doesstate.jsonshowsignoff.status: approved. - Any change after approval resets the sign-off to pending and loops back to build.
- Deploy ships the approved tree only. The merge into
mainwas verified to have the same tree hash as the approved commit.
Focus Garden