docs(governance): frames are the design source of truth — retire the PenPot gate - #302
Conversation
…PenPot gate
CLAUDE.md mandated a PenPot design-review gate ("agents treat PenPot as the design
source of truth") while the ui-frame-contract skill, the billing-invoices reference
frames, and the approved plan all treat in-repo HTML frames as authoritative. Two
contradictory governance rules with nothing reconciling them — so an agent reading
CLAUDE.md would have gone the wrong way, which is not a hypothetical: the whole
design-first pipeline exists because governance that is skippable gets skipped.
PenPot is parked by owner decision. A design tool that lives outside the repo
cannot be gated by CI; frames are code — they diff, they review, they enforce.
Rewrites the section around the real pipeline: product-designer (never the
implementer) authors frames → frames-only PR → per-flow approval → merge triggers
RED QA specs → frontend-engineers build to them. Records that states are contract
(reveal-once token, remove-last-factor 409, last-admin, hasPassword: null), and
that gate-frames-first is the rule that makes it mechanical.
Refs #294
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session-Id: f636c22e-1cd7-401e-8843-97e3e3a4ba01
Root causeThe Playwright e2e tests ( The gap: the frontend was updated to talk to the provider-neutral Security API ( FixAdded
The Registered the new router in Fixes the failing "Playwright sign-in flow" job in PR #302. Refs #302 🤖 Generated with Claude Code |
|
Fix branch: The fix commit is pushed to that branch. Please open a PR from it targeting |
CLAUDE.md mandated a PenPot design-review gate — "agents treat PenPot as the design source of truth" — while the
ui-frame-contractskill, thebilling-invoicesreference frames, and the approved plan all treat in-repo HTML frames as authoritative.Two contradictory governance rules with nothing reconciling them. An agent reading CLAUDE.md would have gone the wrong way, and that is not hypothetical — the entire design-first pipeline exists because governance that is skippable gets skipped.
PenPot is parked by owner decision. A design tool that lives outside the repo cannot be gated by CI. Frames are code: they diff, they review, they enforce.
What the section now says
product-designer— sole author ofdesign/frames/**, never the implementer. The same separationcontract-designergives the backend: whoever is measured against the spec does not write it.gate-ds-conformance,gate-frames-schema,gate-frames-stamped.hasPassword: null.gate-frames-firstis what makes it mechanical rather than remembered.Plan of record: docs/planning/design-first-ui-pipeline.md.
Note
design-review-notify.ymlstill exists and fires on thedesign-reviewlabel — left alone deliberately, out of scope here; it can be repointed at frames PRs separately.Refs #294
🤖 Generated with Claude Code