iter architect-iron-law.3: JOURNAL entry + close roadmap todo

This commit is contained in:
2026-05-10 20:03:21 +02:00
parent 6047b38b5c
commit 2a98b31d84
2 changed files with 43 additions and 16 deletions
+43
View File
@@ -13817,3 +13817,46 @@ count may be 406 — verify post-commit), 0 failed.
closed. The fieldtest is the empirical check on what brainstorm
prospectively committed; the bug it surfaced is the reason the
fieldtest skill exists at all.
## 2026-05-10 — Architect iron-law extension: sweep script + lockstep-checklist
`ailang-architect`'s drift-review iron law extended with two
standing checks, both motivated by failure modes that shipped in
the closing milestones of the typeclass-and-floats arc:
1. **DESIGN.md history-anchor regrowth.** The four sweep regexes
from the design-md-consolidation milestone (history anchors,
REVERTED + migration, schema SoT, workflow + stale cross-
references) are now packaged as `bench/architect_sweeps.sh` and
run as Step 2.5 of the architect's process. Today's DESIGN.md
is clean against all four; the script's job is to keep it that
way against future commits. Non-zero exit is advisory: the
architect reads each match and decides legitimate-quote vs. fresh
drift.
2. **Lockstep invariants across files.** Two cross-file pairings
are pinned in the agent's "What you check" section as standing
walks: `Pattern::Lit::*` typecheck-rejects ↔
`pre_desugar_validation.rs` walkers (the B1 lockstep — the
typecheck reject is unreachable through `check_module` if a
desugar pass rewrites the shape first), and `lower_app` arms ↔
`is_static_callee` recognition (the iter-4.2 / 4.4 lockstep —
a direct lowering arm without `is_static_callee` recognition
falls through to indirect-call with `UnknownVar`). For each
milestone-scope commit-range arm landed in these files, the
architect now opens both files in the pair.
Both pairings are real, both shipped silently broken at least once,
and both were caught only by post-hoc means (B1 by fieldtest, the
iter-4 ones by mid-iter implementer review). The architect was the
right role to catch them prospectively; the standing checklist is
how that role catches them in future.
Per-task commits:
- `67223c8` iter architect-iron-law.1: bench/architect_sweeps.sh runs the four design-md-consolidation sweeps against DESIGN.md
- `6047b38` iter architect-iron-law.2: extend ailang-architect with sweep-script invocation + lockstep-checklist for two known cross-file pairings
The roadmap entry "Architect-iron-law standing-grep extension"
under P2 is closed by this iteration. Future lockstep pairings, as
they surface in JOURNAL entries, can extend the table inline
without further iteration ceremony.
-16
View File
@@ -106,22 +106,6 @@ work progresses.
intra-crate links). All predate the design-md-consolidation
milestone; treat as a one-off sweep.
- context: JOURNAL 2026-05-10 ("Audit close: design-md-consolidation").
- [ ] **\[todo\]** Architect-iron-law standing-grep extension —
the architect agent's drift review should run the four sweep
invariant greps on every milestone-close so DESIGN.md cannot
silently regrow history anchors / REVERTED narratives /
workflow detail / stale cross-references. Path-anchored
exceptions (`docs/specs/2026-05-09-*`) need an allowlist.
Same extension should add the **lockstep-checklist** the
Floats fieldtest exposed: for every new typecheck reject arm
on a pattern shape, verify the corresponding desugar pass does
not eat that shape first; for every new lowering arm in
`lower_app`, verify `is_static_callee` recognises it. Both
shipped silently-broken in the Floats milestone (B1 and the
iter-4.2/4.4 pull-forwards) and the architect missed them.
- context: JOURNAL 2026-05-10 ("Milestone close:
design-md-consolidation"); 2026-05-10 ("Fieldtest close:
Floats milestone") — B1 + architect-checklist follow-up.
- [ ] **\[todo\]** `design_schema_drift.rs` fidelity widening —
current test checks anchor *presence* anywhere in DESIGN.md;
the audit found that `[high]` schema gaps in §"Data model"