plan+audit: design-md-rolesplit.tidy re-derived on planning-time evidence (mechanism + scope corrected)

The tidy's gate-first Task 1 RED-verification + Boss independent
verification surfaced two defects in the audit Resolution as first
written — caught exactly where the planner->Boss loop is designed to,
before any contract byte moved. Per the 'two+ defects in one
iteration => fix the upstream artifact, do not patch a third time'
discipline, the audit Resolution is corrected in lockstep with the
plan re-derivation:

- Mechanism (Resolution-4): the 'case-insensitive iter-code regex'
  clause-3 design is REJECTED as unworkable — a blanket
  iter/milestone detector conflates the memory-model rule-names
  'Iter A'/'Iter B' and ordinary words 'pre-existing'/'pre-set'/
  'pre-Boehm' with provenance, over-firing on legit present-tense
  contract prose (4 no-strip files). Replaced by a FAITHFUL Sweep-1
  superset: case-sensitive digit-anchored Sweep-1 line anchors
  (confirmed ZERO across all contracts) + Sweep-1's ^[^/]*
  path-excluded date (so docs/specs/2026-.. citations are not
  flagged — repairs the iso_date over-fire the implement
  orchestrator correctly BLOCKED on) + the audit-named
  decision-record phrases (case-insensitive). No regex dep. The
  load-bearing invariant (clause-3 GREEN => Sweep-1 clean) is
  preserved; it never required the blanket detector.
- Scope (Resolution-1): the architect's [medium] was a 3-file
  spot-check; the exhaustive scan found roundtrip-invariant.md:73
  ('at iter form-a.1') and data-model.md:149,161 ('loop-recur iter
  1:') also carry lowercase provenance. True strip set = 5 files;
  plan Task 5b adds the 2 (spirit-cleanup, not gate-blocking).

Plan self-review 8/8 re-run; clause-3 = hand-rolled faithful Sweep-1
superset, no regex dep, no blanket iter detector.
This commit is contained in:
2026-05-19 13:36:14 +02:00
parent 4f61a7aa4f
commit f2cdd67e69
2 changed files with 232 additions and 87 deletions
@@ -83,13 +83,21 @@ milestone.
iteration** `design-md-rolesplit.tidy`. Orchestrator-decided
scope (the architect named the gap; the clause-3-widening
decision is mine):
1. Move the decision-record/history prose out of
`design/contracts/{typeclasses,str-abi,scope-boundaries}.md`
into `docs/journals/2026-05-19-design-decision-records.md`
(append — same milestone's relitigation archive). Each removed
history sentence is replaced by its present-tense contract
equivalent (e.g. the builtin *signature* is the contract; the
`(iter …)` stamp is journal metadata).
1. Move the decision-record/history prose out of the affected
contract files into
`docs/journals/2026-05-19-design-decision-records.md` (append —
same milestone's relitigation archive). Each removed history
sentence is replaced by its present-tense contract equivalent
(the builtin *signature* is the contract; the `(iter …)` stamp
is journal metadata). **Scope corrected on planning-time
evidence (see amendment below):** the architect's `[medium]`
was a 3-file spot-check
(`typeclasses`/`str-abi`/`scope-boundaries`); the exhaustive
plan-recon + Boss verification scan found two more contract
files carrying lowercase `iter <code>` provenance the
spot-check missed — `roundtrip-invariant.md:73` ("at iter
form-a.1") and `data-model.md:149,161` ("loop-recur iter 1:").
The true strip set is **5 contract files**.
2. Fix `float-semantics.md` stale-direction cross-ref →
`(see design/contracts/str-abi.md)`.
3. **Re-scope the `architect_sweeps.sh` honesty sweeps from
@@ -102,19 +110,60 @@ milestone.
`ailang-architect.md` + any sweep-scope doc in lockstep.
4. **Widen `design_index_pin.rs` clause-3** so, over the
`design/contracts/` scope, it *subsumes* `architect_sweeps.sh`
Sweep-1's history-anchor regex (case-insensitive; iter-code
and ISO-date regexes; "earlier draft", "amends the above",
"was retired", "deliberately deferred", "new-baseline
decision", "milestone NN"). Invariant established:
Sweep-1's history-anchor regex. Invariant established:
**clause-3 GREEN ⟹ Sweep-1 finds nothing in `contracts/`**
the in-code hard gate enforces the spirit; the advisory can
then only legitimately fire on `models/` (now out of its
scope). This permanently closes the spirit-vs-letter gap the
literal 6-marker list left open.
5. Exit state: `architect_sweeps.sh` exit 0; widened
`design_index_pin.rs` clause-3 GREEN; whole `cargo test
--workspace` GREEN; the decision-record journal grows; no new
contract carries history residue.
the in-code hard gate enforces the spirit; the advisory then
only legitimately fires on `models/` (out of its scope after
point 3). This permanently closes the spirit-vs-letter gap the
literal 6-marker list left open. **Mechanism corrected on
planning-time evidence (see amendment below):** the original
"case-insensitive iter-code regex" sketch is *unworkable* and
is rejected — a blanket case-insensitive `iter`/`milestone`
detector conflates the memory-model rule-names "Iter A"/"Iter
B" and the ordinary words "pre-existing"/"pre-set"/"pre-Boehm"
with provenance, over-firing on legitimate present-tense
contract prose. The workable design: clause-3 = a **faithful
reproduction** of Sweep-1's actual alternatives
(case-*sensitive*, digit-anchored — confirmed ZERO across all
contracts) + Sweep-1's `^[^/]*` **path-excluded** date
(so `docs/specs/2026-…` citations are not flagged) + the
audit-named decision-record **phrases** (case-insensitive — the
deliberate widening that closes the capital-variance dodge).
The lowercase `(iter <code>)` provenance is removed by the
strip tasks (point 1), not by a fragile hard-gate regex; the
invariant holds without the rejected detector.
5. Exit state: `architect_sweeps.sh` exit 0; the widened
(faithful-superset) `design_index_pin.rs` clause-3 GREEN; whole
`cargo test --workspace` GREEN; the decision-record journal
grows; no contract carries history residue.
### Resolution amendment (2026-05-19, planning-time evidence)
The tidy plan's gate-first Task 1 (RED-verification) + Boss
independent verification surfaced two defects in this Resolution as
first written — caught exactly where the planner→Boss loop is
designed to catch them, before any contract byte moved:
- **Mechanism (point 4):** "case-insensitive iter-code regex" is
unworkable (conflates rule-names + ordinary words with
provenance). Replaced by the faithful-Sweep-1 + path-excluded-date
+ phrases design above. The load-bearing invariant (clause-3 ⟹
Sweep-1 clean) is *preserved* — it never required the blanket
detector; faithful-Sweep-1 + phrases suffices and faithful-Sweep-1
is confirmed already ZERO across every contract.
- **Scope (point 1):** the `[medium]` was a 3-file spot-check; the
exhaustive scan found `roundtrip-invariant.md` + `data-model.md`
also carry lowercase provenance. The strip set is 5 files (the
plan's Task 5b covers the 2 additions; they are spirit-cleanup,
not gate-blocking — neither Sweep-1 nor the corrected clause-3
trips on lowercase `iter form-a.1`, so the invariant/gate close
regardless; stripping them is the audit's *spirit* fully honored).
This amendment is the upstream-artifact correction the discipline
mandates over patching the plan a third time (the "two+ defects in
one iteration ⇒ the upstream artifact is wrong" rule). The plan
`docs/plans/design-md-rolesplit.tidy.md` is re-derived consistently
with it.
Milestone closes after the tidy iteration lands Boss-verified.
No fieldtest (zero authoring-surface change — the only author-facing