Gate-first TDD: widened design_index_pin.rs clause-3 to a hand-rolled
FAITHFUL Sweep-1 superset (case-sensitive digit-anchored line anchors
+ Sweep-1's ^[^/]* path-excluded date + the audit-named
decision-record phrases, case-insensitive); no regex dep; the blanket
iter-detector rejected as unworkable. Sentence-level strip of
faithfully-migrated history/decision-record prose out of 5 contract
files (the audit's 3 spot-checked + roundtrip-invariant.md +
data-model.md the exhaustive scan found) into the decision-record
journal, each replaced by its present-tense contract equivalent;
float-semantics.md stale 'see Str ABI below' -> str-abi.md;
architect_sweeps honesty sweeps re-scoped to design/contracts only
(models/ is the narrative tier) + ailang-architect.md lockstep.
Invariant: clause-3 GREEN => Sweep-1 clean in contracts/.
The prior dispatch correctly BLOCKED on a real plan defect (iso_date
lacked Sweep-1's path-exclusion, over-firing on legit
docs/specs/2026-.. citations); per the two+-defects-in-one-iteration
discipline the audit Resolution mechanism+scope were corrected
upstream in lockstep (f2cdd67) before re-dispatch, not patched a
third time.
Boss-verified independently: cargo test --workspace 646/0,
design_index_pin 4/4 (clause-3 RED->GREEN), architect_sweeps.sh exit
0 'All five sweeps clean' (acceptance criterion 9 met), acceptance
grep CLEAN, 3 docs_honesty_pin pinned runs each exactly 1 contiguous
match. Zero spec/quality re-loops. FINAL design-md-rolesplit
iteration — milestone functionally complete, audited, drift-resolved,
hard gate enforces the honesty spirit.
4.4 KiB
iter design-md-rolesplit.tidy — contract-history strip + clause-3 widening
Date: 2026-05-19
Started from: f2cdd67e69
Status: DONE
Tasks completed: 7 of 7 (Tasks 1, 2, 3, 4, 5, 5b, 6, 7 — task_range [1,7] covers the 5b sub-task)
Summary
Closes the [medium]+[low] spirit-vs-letter drift from
audit-design-md-rolesplit: the ###-whole relocation in iter .1
dragged decision-record/history prose into 5 contract files. This
tidy extracts that prose into
docs/journals/2026-05-19-design-decision-records.md (each removed
history sentence replaced by its present-tense contract equivalent),
fixes the one stale (see "Str ABI" below) cross-ref in
float-semantics.md, re-scopes architect_sweeps.sh from
design/contracts design/models to design/contracts only (the
narrative tier is not honesty-bound) with its lockstep
ailang-architect.md sentence, and widens design_index_pin.rs
clause-3 into a hand-rolled faithful superset of Sweep-1 over
the contracts scope (case-sensitive digit-anchored sweep1_line_anchor
- path-EXCLUDED
date_anchor+ case-insensitive decision-record PHRASES; noregexdep, no blanket iter detector). Gate-first TDD: clause-3 was verified RED against the un-stripped tree (PHRASES hit"an earlier draft"in typeclasses.md) before any strip, then flipped GREEN after Tasks 2–5b. End state: design_index_pin 4/4,architect_sweeps.shexit 0,cargo test --workspace646 passed / 0 failed, acceptance grep CLEAN.
Per-task notes
- Task 1: replaced
contracts_carry_no_decision_record_prose(:130-157) with the widened provable-superset matcher (verbatim from plan; other 3 clauses + helpers untouched). RED verified against un-stripped tree; other 3 clauses + build GREEN. - Task 2: typeclasses.md — 6 spans rewritten present-tense (:77-78,
:182-186, :197-200, :279-289 deleted wholesale, :291-300, :302-317);
Prelude-classes evolution history appended to the decision-record
journal.
io/print_strpin contiguous at :297; docs_honesty_pin 5/5. - Task 3: str-abi.md —
(iter …)parentheticals + deferred-operatorNum/axis-7 rationale stripped (:14, :16, :18, :20, :22-23 soft-wrap collapsed, :74, :38-43, :45-47); journal appended.type-installed; codegen is reserved…pin contiguous at :19.
- Task 4: scope-boundaries.md — process-meta line plain-deleted (:5-6), closure-pair-global + rpe.1-retirement rationale stripped (:14-17, :36-38); journal appended. Diverge over-strip guard: pin byte-untouched, effect_doc_honesty_pin 4/4 (pin line shifted :9→:8 as the expected consequence of the authorized :5-6 two-line collapse — content match unaffected).
- Task 5: float-semantics.md:99-100 stale
(see "Str ABI" below …)→(see design/contracts/str-abi.md …). eq_float_noinstance 1/1. - Task 5b: roundtrip-invariant.md:73 corpus-flip parenthetical
dropped; data-model.md:149/161
// loop-recur iter 1:→// loop:/// recur:; :154pre-existingleft untouched (ordinary word); journal appended. No lowercase iter-code provenance remains; design_schema_drift 7/7, round_trip 2/2. - Task 6: architect_sweeps.sh DESIGN_GLOB narrowed to
design/contractswith substantive-reason inline comment + header prose; ailang-architect.md:77-84bullet gains the scope sentence. All five sweeps clean, exit 0. - Task 7: whole-tree gate — design_index_pin 4/4 (clause-3 RED→GREEN), 3 pins + 2 E2Es PASS, workspace 646/0, sweep exit 0, acceptance grep CLEAN.
Concerns
(none)
Known debt
(none — the audit Resolution scope is fully covered: Resolution-1 history→journal across the corrected 5-file set, Resolution-2 stale below, Resolution-3 sweep re-scope+lockstep, Resolution-4 faithful- superset clause-3, Resolution-5 exit state.)
Blocked detail
(none — DONE)
Files touched
- Test gate:
crates/ailang-core/tests/design_index_pin.rs - Contract strips:
design/contracts/typeclasses.md,design/contracts/str-abi.md,design/contracts/scope-boundaries.md,design/contracts/float-semantics.md,design/contracts/roundtrip-invariant.md,design/contracts/data-model.md - Decision-record archive:
docs/journals/2026-05-19-design-decision-records.md - Sweep re-scope + lockstep:
bench/architect_sweeps.sh,skills/audit/agents/ailang-architect.md
Stats
bench/orchestrator-stats/2026-05-19-iter-design-md-rolesplit.tidy.json