-
-
Notifications
You must be signed in to change notification settings - Fork 0
docs(canon): ADR-007 — open ratification step 1 for "Elegance by default" (PROVISIONAL; adopts nothing) #1083
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Closed
Closed
Changes from all commits
Commits
Show all changes
5 commits
Select commit
Hold shift + click to select a range
af3f614
docs(canon): open CHANGE-PROCEDURE step 1 for "Elegance by default" r…
hyperpolymath 8127579
docs(ADR-007): cite the pre-rename path for the a983c00 absence claim
hyperpolymath 2961f42
Merge branch 'main' into docs/adr-007-elegance-by-default
hyperpolymath ae0a552
docs(adr): clarify tag repair status and ratification obligations
coderabbitai[bot] 045a222
fix: calibrate docstring tests on merged #1034 and refresh RSR hash
coderabbitai[bot] File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,157 @@ | ||
| // SPDX-License-Identifier: CC-BY-SA-4.0 | ||
| // Copyright (c) 2026 Jonathan D.A. Jewell | ||
| = ADR-007: Elegance by default — retroactive ratification record (PROPOSAL) | ||
| :toc: preamble | ||
|
|
||
| [cols="1,4"] | ||
| |=== | ||
| | Status | *Proposed* — step 1 of `0-canon/constitution/CHANGE-PROCEDURE.adoc`, opened *retroactively*. Not adopted. | ||
| | Date | 2026-09-30 | ||
| | Supersedes | nothing | ||
| | Authority sought | normative (an operating principle in `0-canon/RSR-PHILOSOPHY.adoc`), with projection into estate-common `CLAUDE.md` doctrine as arrival-pack rule 15 | ||
| |=== | ||
|
|
||
| This record is *retroactive*. Unlike ADR-006, which opened its proposal before any | ||
| projection, _Elegance by default_ is already emitted into every generated `CLAUDE.md` | ||
| as arrival-pack rule 15, while the canon marks it *PROVISIONAL* and forbids that | ||
| projection. `0-canon/constitution/KNOWN-TENSIONS.adoc` records the disagreement as a | ||
| `contradiction` (severity *high*, status *measured*) and names two exits: complete the | ||
| ratification record, or remove rule 15 and regenerate. | ||
|
|
||
| On 2026-09-23 the owner chose the first exit — *ratify it properly* — via the selection | ||
| UI (estate ruling ledger D209, posted to `standards#787`). This document is step 1 of | ||
| that. Steps 3–6 are *not* performed here and remain owed. | ||
|
|
||
| == The request | ||
|
|
||
| The principle originates in a repeated owner instruction, first recorded 2026-09-14: | ||
| the most elegant and correct long-term option is the default arm, and every choice put | ||
| to the owner must say which option that is. The 2026-09-14 instruction authorised | ||
| *drafting* the principle; it did not complete the procedure that makes a principle | ||
| canonical. The projection into rule 15 then ran ahead of the record. | ||
|
|
||
| == Context — the problem being solved | ||
|
|
||
| A choice presented to the owner as a list of merely _different_ options is not neutral: | ||
| whichever option is listed first or described most fluently becomes the | ||
| recommendation. Without a rule, the convenience of whoever wrote the question | ||
| substitutes for the long-run standard the estate is held to. The canonical text in | ||
| `RSR-PHILOSOPHY.adoc` states the three obligations (label it; justify any departure; | ||
| it binds unasked decisions too) and is not restated here. | ||
|
|
||
| The *procedural* problem this ADR solves is narrower: the estate currently asserts two | ||
| incompatible things about the same principle. Every visiting agent reads rule 15 as | ||
| doctrine; the canon says it is not doctrine. A validator passing on either side does | ||
| not resolve that. | ||
|
|
||
| == Decision proposed | ||
|
|
||
| . Ratify _Elegance by default_ as an operating principle, with the canonical wording | ||
| currently in `0-canon/RSR-PHILOSOPHY.adoc` § _Elegance by default_ unchanged. | ||
| . On ratification, replace that section's *Proposal status — not canonical* banner with | ||
| the step-5 record (decision, dissent, effective version/hash, superseded material, | ||
| migration limits). | ||
| . Keep arrival-pack rule 15 as it is. It is the projection this ratification | ||
| authorises; no text change to `arrival-pack.ncl` is proposed. | ||
| . Close the KNOWN-TENSIONS `contradiction` row, citing the step-5 record. | ||
|
|
||
| == Rationale | ||
|
|
||
| * *The owner has already chosen this exit.* The KNOWN-TENSIONS row offers ratification | ||
| or removal; D209 selected ratification. Removing a rule the owner has ruled to keep, | ||
| only to re-add it after the record completes, would be two regenerations of every | ||
| downstream `CLAUDE.md` to arrive where the estate already stands. | ||
| * *The rule is exercised, not aspirational.* Agent sessions in this estate already | ||
| label the elegant arm in owner-facing choices and justify departures in the question | ||
| itself; the estate ruling ledger records owner selections made from labelled options | ||
| (for example D207 in `standards#787`, 2026-09-30). The procedure is catching up with | ||
| established practice, not introducing new behaviour. | ||
| * *It closes a soundness hole of the canon's own kind.* A canon that says "not | ||
| doctrine" beside a generator that emits it as doctrine is a check that cannot fail in | ||
| either direction — _always fail loudly_ applied to governance. | ||
|
|
||
| == Alternatives considered | ||
|
|
||
| [cols="1,3,2",options="header"] | ||
| |=== | ||
| |Alternative |Description |Why not | ||
|
|
||
| |Remove rule 15 and regenerate | ||
| |The other KNOWN-TENSIONS exit: stop projecting until ratified. | ||
| |Procedurally clean, but contradicts the owner's recorded choice (D209) and costs two | ||
| estate-wide regenerations. Retained as the fallback if the contest period (step 4) | ||
| produces an unanswered challenge. | ||
|
|
||
| |Status quo | ||
| |Leave the canon and the projection in disagreement. | ||
| |Explicitly forbidden by the KNOWN-TENSIONS row ("do not leave the two in | ||
| disagreement"). Rejected. | ||
|
|
||
| |Ratify a narrower rule (owner-facing questions only) | ||
| |Drop obligation 3 ("binds unasked decisions too"). | ||
| |Obligation 3 is what stops the rule degrading into a formatting convention for | ||
| questions; an expedient choice taken silently is the case the principle exists to | ||
| surface. Offered for the contest period, not recommended. | ||
| |=== | ||
|
|
||
| == Compatibility | ||
|
|
||
| * *With _solutions at source_:* the same category of reasoning — a choice justified by | ||
| construction, not by who wrote it. Compatible. | ||
| * *With _holes before goals_ and _always fail loudly_:* compatible. Neither governs how | ||
| options are offered. | ||
| * *With ADR-006 _Always leave it working_:* compatible. ADR-006 governs the state work | ||
| is left in; this governs how choices are put. ADR-006 cites this contradiction as the | ||
| precedent its own projection delta must not repeat. | ||
| * *With the `manifesto`:* the manifesto prevails on wording. The estate-common block | ||
| carries `manifesto_pin = "DRAFT-unratified"` as a whole; ratifying this principle does | ||
| not by itself lift that pin, which is a separate decision. | ||
|
|
||
| == Evidence status | ||
|
|
||
| *Assumed, not measured.* That labelled choices produce better long-run outcomes than | ||
| unlabelled ones is reasoned, not measured against a control. What *is* measured is the | ||
| contradiction itself (KNOWN-TENSIONS status `measured`) and the projection's presence: | ||
| rule 15 is in `rsr-template-repo` `.machine_readable/arrival-pack/arrival-pack.ncl` at | ||
| `7cb285f` (2026-09-17) and later (15 numbered rules, rule 15 = _Elegance by default_), and | ||
| absent at `a983c00` (2026-08-26), where the same file lived at | ||
| `machine-readable/arrival-pack/arrival-pack.ncl` (6076 bytes, 14 numbered rules, no | ||
| occurrence of "elegan"). | ||
|
|
||
| == Tensions introduced | ||
|
|
||
| . *Containment until step 5.* Rule 15 remains projected during review and contest. The | ||
| only containment is the `DRAFT-unratified` manifesto pin on the whole estate-common | ||
| block. If the contest period is expected to be long, the fallback arm (remove and | ||
| regenerate) becomes the better containment; that call belongs to the reviewing | ||
| authority. | ||
| . *"Elegant" is a judgement, not a check.* No validator can decide which arm is | ||
| elegant. Enforcement is by labelling and review, not by a gate, and this ADR proposes | ||
| no gate. | ||
|
|
||
| == Machine-readable impact | ||
|
|
||
| *None to the projection engine.* Ratification changes only: | ||
|
|
||
| * `0-canon/RSR-PHILOSOPHY.adoc` — the *Proposal status* banner is replaced by the step-5 | ||
| record; | ||
| * `0-canon/constitution/KNOWN-TENSIONS.adoc` — the `contradiction` row is closed; | ||
| * `rsr-template-repo` `.machine_readable/arrival-pack/arrival-pack.ncl` — *unchanged*. | ||
|
|
||
| Step 6 requires downstream `CLAUDE.md` regeneration (`just claude-md`), validation, | ||
| and proof of deterministic regeneration, with all results recorded even when the | ||
| generated output is unchanged. These obligations apply regardless of whether the | ||
| manifesto pin moves; changing that pin remains a separate decision. | ||
|
|
||
| == What remains owed | ||
|
|
||
| [cols="1,4",options="header"] | ||
| |=== | ||
| |Step |Status | ||
| |1. Proposal |✅ this document (retroactive) | ||
| |2. Human- and machine-readable impact |✅ above | ||
| |3. Review by the named constitutional authority and affected domain maintainers |owed — authorised review by both is required before merging this proposal | ||
| |4. Meaningful contest period; answer recorded challenges |owed for ratification; not a prerequisite to merging this proposal | ||
| |5. Record decision, dissent, effective version/hash, superseded material, migration limits |owed for ratification; not a prerequisite to merging this proposal | ||
| |6. Regenerate derived registries; validate; prove deterministic regeneration; merge after authorised review |owed for ratification — regenerate downstream `CLAUDE.md`, validate, and record proof of deterministic regeneration even if output is unchanged, regardless of manifesto pin changes. Merging this proposal requires the authorised review in step 3; completion of steps 4–6 remains owed for ratification and is not a prerequisite to merging the proposal. | ||
| |=== |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.