canon: policy-precedes-build — no build without a ratified, enforceable governing policy (DRAFT, captain review)#290
Conversation
…eview) No implementation/build/deploy proceeds on any project without a ratified, enforceable governing policy stating what and why. Order is design -> policy (-> PRD) -> build; code-first is prohibited. Policy must be precise enough that the implementation is derivable from it (self-building); build must cite its governing policy URI (self-documenting). Enforcement wires into existing machinery: - planning->execution mode gate gains prerequisite ratified-governing-policy-cited; oddkit_preflight refuses build mode without a cited ratified policy - build/impl PRs must cite their governing policy URI; CI check fails a build citing none (composes with release-validation-gate) - generalizes PR #288 (ratified-model-requires-reconciliation-and-enforcer) Motivated by the 2026-07-16 ARS SQLITE_TOOBIG freeze: code ran ahead of policy, so there was nothing to build from and no enforcer to catch the drift. Reconciled with: model-operating-contract, prompt-over-code, constraint-driven-audits, definition-of-done, borrow-evaluation-before-implementation, odd/maturity, contract-governs-handoff-drift. Extend + cross-reference, no duplication. DO NOT MERGE — captain's authorial voice; ships only after review of exact text.
Canon Quality — P0010 Retrieval-Readiness
|
Canon Quality — Frontmatter Schema ✅All 49 file(s) in Validator: |
Canon Quality —
|
Canon Quality — Homepage Surfacing ✅49 essay(s) scanned. Soft report — never blocks; the hard field gate is the Frontmatter Schema job. All published essays resolve to the homepage feed. Report: |
Epoch was stamped E0009 by inference; captain confirmed current epoch is E0010 (Flight Crew — costume->seat). Surgical single-field correction only.
Voice-only pass on a fleet-wide/universal constraint. Role term and its pronouns (his/he referring to the captain) -> 'operator'; closing draft-posture line rewritten neutral/passive. No rulings, thresholds, enforcement, scope, or meaning changed.
What this adds
A tier-1, fleet-wide canon constraint:
klappy://canon/constraints/policy-precedes-build.The rule. On every project, no implementation, build, or deploy proceeds without a ratified, enforceable governing policy stating what is being built and why. The order is design → policy (→ PRD) → build — never code-first. The policy must be precise enough that the implementation is derivable from it (self-building), and every build must cite its governing policy URI (self-documenting).
Why. The 2026-07-16 ARS monolith
SQLITE_TOOBIGfreeze: code ran ahead of policy, so there was nothing to build from and no enforcer to catch the drift. Plus — this is the captain's consistent build philosophy; encoding it removes the per-task restatement and makes compliance the default. Policy-first is universal in order; policy weight scales with maturity.How enforcement is real (not aspirational)
ratified-governing-policy-citedto theplanning → executiontransition (klappy://odd/gate/prerequisites).oddkit_gategaps without a policy URI;oddkit_preflightrefuses build mode when the work cites no ratified policy.Governing-Policy:trailer); a PR/CI check fails a build that cites none and cannot resolve it viaoddkit_resolve. Composes withrelease-validation-gate.ratified-model-requires-reconciliation-and-enforcer) — the model-specific instance of which this is the general rule. Cross-referenced, not duplicated.Reconciliation (extend, don't duplicate)
model-operating-contract (mode gate + preflight) · prompt-over-code (the ordering discipline it presupposes) · constraint-driven-audits (written as an auditable surface: machine-resolvable
governs, named T1–T5 tests, remediation vocabulary) · release-validation-gate · definition-of-done ("done" now includes citing a resolvable policy URI) · borrow-evaluation-before-implementation (whether to build vs. the order of building — they stack) · odd/maturity (order universal, weight scales) · contract-governs-handoff-drift.Provenance & honest residuals
oddkit_challengeatcanon-tier-1(no hard tensions,block_until_addressed: false). Its prompts drove the Edge Cases (emergency/incident exception w/ retroactive ratification), Alternatives Considered, and Falsifiability & Retraction sections.CI: passes
scripts/validate-frontmatter.py(0 findings).target_repointentionally omitted so the file stays in klappy.dev.