P0013: search canon before designing, not just before asking (accept or defer-pending-second-incident both legitimate) - #307
Conversation
…ep, C1 2026-07-20) — maintainer-gated
Canon Quality — Homepage Surfacing ✅50 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: |
Canon Quality —
|
Canon Quality — Frontmatter Schema ✅All 50 file(s) in Validator: |
Canon Quality — P0010 Retrieval-Readiness
|
Corollary appended verbatim at the promotion's named anchor in
canon/constraints/mode-discipline-and-bottleneck-respect.md per captain
instruction 2026-07-20 ('307 a and merge') — one-merge landing shape.
Promotion from the first distillation sweep (C1, successor charter, 2026-07-20). Drafted by sweep flight
run_fb133d81, transplanted by the dispatch seat (klappy.dev push refused to the flight — documented fallback). Patch wasgit apply --checkverified against main. Merging is the maintainer's alone (M3) — defer and reject are legitimate outcomes and each promotion's Evidence section says so honestly.Full report + kirigami foldout:
docs/reports/2026-07-20-first-distillation-sweep.mdonsweep/2026-07-20-first-distillationin outcomes-driven-development.uri: klappy://docs/promotions/P0013-search-canon-before-designing
title: "P0013: Search Canon Before Designing, Not Just Before Asking"
audience: docs
exposure: nav
tier: 3
voice: neutral
stability: evolving
tags: ["promotions", "proposed", "canon-search", "design-time", "mode-discipline", "anti-cache-lying"]
promotion_status: proposed
P0013: Search Canon Before Designing, Not Just Before Asking
Observed Pattern
A design decision with a named canon domain (in this case, caching) was made without first consulting the canon domain that already governed it. The existing "search before asking" rule did not catch this, because the failure never reached the asking step — it was a fully-formed design before any question would have been surfaced. The rule closes the gap between "a question is about to be asked" and "canon already answered it." It does not close the earlier gap: "a design is about to be chosen" and "canon already constrains this domain."
Evidence
odd/constraint/anti-cache-lying.md(E0005, stable canon since 2026-02-12, itself proven necessary by the earlier OddKit Stale-Cache Incident) — a TTL-shaped per-isolate cache for derived content, without a canon search at design timeodd/debriefs/2026-07-19-weekend-closeout.md)anti-cache-lying.md); its value here is as proof that the constraint's existence alone did not prevent violation — the actionable gap is the design-time search corollary this promotion proposes, not a restatement of the caching rule itselfTotal observations: 2 independent design decisions violating the same pre-existing constraint in one incident, plus one folded corroborating debrief line
Independent occurrences: 2 (two distinct design choices, same incident) — honestly below this pipeline's usual ≥2-independent-incidents bar (see P0004/P0006, which each cite 2 distinct repositories/projects). Flagged for the maintainer: this promotion may be better dispositioned as deferred pending a second, separate incident rather than accepted outright, precisely because the sweep's own honesty mandate does not want to inflate a same-incident double-count into cross-incident evidence.
Affected workflows: any design-mode work touching a canon-governed domain
Current Handling
canon/constraints/mode-discipline-and-bottleneck-respect.mdbinds "search canon before asking anything, in any mode" — this fires at the question-surfacing boundaryNote
Low Risk
Documentation and governance text only; no runtime, auth, or data-path changes.
Overview
Extends
canon/constraints/mode-discipline-and-bottleneck-respect.mdwith a design-time corollary to the existing “search canon before asking” rule: for any decision in a named canon domain (caching, storage, identity, disclosure, etc.), the model must search canon before picking a solution shape, because confident designs can skip the ask step entirely.Introduces
docs/promotions/P0013-search-canon-before-designing.md, which records the caching-incident evidence, the proposed wording (now reflected in canon), and maintainer notes that accept vs defer-pending-a-second-incident are both legitimate given the evidence bar.The promotion file’s Status section mixes “LANDED AS ACTIVE CANON” with
proposedand empty review/execution fields—worth reconciling on merge if this PR is meant to reflect final disposition only.Reviewed by Cursor Bugbot for commit 1798f3f. Bugbot is set up for automated code reviews on this repo. Configure here.