canon(principle): Abstraction Matches Scope — falsifiability placement test [DRAFT]#295
canon(principle): Abstraction Matches Scope — falsifiability placement test [DRAFT]#295git-repo-auth[bot] wants to merge 1 commit into
Conversation
…ment test) Universal governance principle: a document's abstraction must equal the breadth of what it governs. Placement decided by the falsifiability test — if a change confined to one repo or stack would falsify a doc, it is repo-scoped, not universal. Corollary: mis-filed docs relocate, not caveat. Reconciles with D0001 (sharpens its temporal/breadth litmus into a falsifiability test) and is distinct from scope-over-folders (location non-authoritativeness). Epoch E0010. target_repo: outcomes-driven-development. DRAFT for operator review — not for merge.
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: |
Canon Quality — Frontmatter Schema ✅All 49 file(s) in Validator: |
Canon Quality — P0010 Retrieval-Readiness
|
DRAFT — operator review only. Do not merge. Assigned to @klappy; review not requested.
What this adds
One universal canon principle:
canon/principles/abstraction-matches-scope.md(epoch E0010, tier 1,target_repo: outcomes-driven-development, neutral voice,status: proposed).The principle: a governing document's level of abstraction must equal the breadth of what it actually governs.
The doc passes its own test (only a change to the shared discipline of assigning authority could falsify it), which is why it is stated abstractly in universal canon.
Reconciliation — what already existed (the operator "thought it was already documented")
Searched canon first. Closest existing coverage, and how this reconciles rather than duplicates:
odd/decisions/D0001, tier 1, stable) already separates universal principles / program constraints / implementation detail and gives a placement litmus built on temporal reach + breadth ("true in 10 years?" / "should all products obey?"). This principle sharpens that litmus into a falsifiability test (decidable now, no forecasting) and makes explicit the relocation corollary D0001 implies but never states. This is very likely the doc that felt "already written" — it covers the tiers, not the placement test.canon/principles/scope-over-folders(tier 2) governs a different axis: storage location is not authoritative; scope is a declared attribute, never inferred from path. It forbids faking scope with folders. This principle forbids faking scope with generality. Complementary, not overlapping.docs/repo-bifurcation-and-target-repo-routing— its "domain-applicability test" is this falsifiability test wearing klappy.dev→ODD clothes: the stack-specific instance of the universal principle proposed here.Net: no existing doc states the falsifiability placement test or the relocation corollary. New peer principle warranted; cross-referenced to all three above via
derives_from/complements.oddkit_challenge (mode: canon-tier-1) — findings folded
block_until_addressed: false,tensions: [],governance_source: knowledge_base. Folded into a new "Limits, prior art, and where the test needs care" section:Residuals (for operator): the principle rests on a small sample of placement cases; it is offered as an operator-ruled working invariant, not a proven theorem.
The task described the
sandbox-hygiene-per-flight-scratchconstraint as "first filed in universal canon, being relocated to agent-role-service." Observed repo state differs: on branchpolicy/sandbox-hygiene-per-flight-scratch, the constraint sits whole in portable canon (canon/constraints/sandbox-hygiene-per-flight-scratch.md, tier 1,target_repo: outcomes-driven-development) and is not yet relocated. Its content is mixed-scope: a universal law (state residue is indistinguishable from signal) plus a substrate-specific mechanism (per-flight owned scratch dirs, no/tmp/pr_body.md).So I did not encode "is being relocated" as accomplished fact. The doc instead presents the truthful, stronger version: the constraint is a mixed-scope case; the universal law stays up, the substrate mechanism goes down to agent-role-service per your ruling; and a parenthetical notes the relocation is a directed decision not yet reflected in the repo. Please confirm this framing matches your intent.
Before merge (not done here — draft)
canon/constraints/governance-change-discipline: a behavior-affecting canon addition needs a version bump + changelog entry + release note (and epoch attribution E0010). Not authored in this draft.Provenance
Authored via oddkit canon reads (klappy.dev @
f999655). Frontmatter passesscripts/validate-frontmatter.py(0 findings). Commit attributed to klappy 118073+klappy@users.noreply.github.com.