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.