audit-rt: milestone close — Direction-2 5th test + roadmap entry retired + wording sync

Milestone-close audit found three drift items (architect) plus
two carry-on items; bench all-green.

Fixes (rt.tidy, boss-direct):
- 5th test parse_then_print_then_parse_is_idempotent_on_every_ailx_fixture
  enforces Direction 2 of the Roundtrip Invariant directly. The
  DESIGN.md enforcement list grows from four to five tests.
- docs/roadmap.md P1 'Round-trip completeness invariant' entry
  retired with one-line journal mirror per roadmap convention.
- DESIGN.md wording sync: <16-hex> → <16-lowercase-hex> for the
  Float-bits-hex spelling in the new section (matches §Data model).

Milestone closed clean; five workspace-wide tests anchor the
.ail.json ↔ .ailx bijection plus AST-variant coverage.
This commit is contained in:
2026-05-12 09:44:29 +02:00
parent e3b0dd20c5
commit 44c6e56a0a
5 changed files with 198 additions and 44 deletions
-28
View File
@@ -49,34 +49,6 @@ context. Pick the next milestone from P1.)_
has neither instance by design; polymorphic helpers at Float fire
Float-aware `NoInstance` per DESIGN.md §"Float semantics".
- [ ] **\[milestone\]** Round-trip completeness invariant — `.ail.json`
`.ailx` must be a structurally lossless bijection. For every
valid module: `ail parse` followed by `ail render` yields the
original `.ailx` (modulo formatting), and `ail render` followed by
`ail parse` yields the original `.ail.json` (canonical key order).
Decision 6 mentions round-trip-as-property in passing, and
`crates/ailang-surface/tests/round_trip.rs` checks the `.ailx`
direction over the fixture corpus, but the invariant is not
prominently anchored as a non-negotiable language property and
the symmetric direction (every `.ail.json` has a printable, re-
parseable `.ailx` form) is not workspace-wide enforced. This
milestone (a) audits the existing fixture corpus for structural
gaps in either direction, (b) closes any render / parse gaps
surfaced, (c) lifts the round-trip property to a named, prominent
invariant in DESIGN.md (likely as a dedicated subsection of
Decision 6, or as its own decision-level entry), (d) adds a
workspace-wide check (E2E or unit, in addition to the existing
surface-side fixture test) that the invariant holds over every
fixture on every build.
- context: brainstorm 2026-05-12 — surfaced while scoping the
cross-model authoring-form test (see P2 entry below). The test
requires both forms to be exactly equipotent in expressive
power; otherwise measured form-preference is contaminated by
expressive-power gaps rather than authoring ergonomics. The
invariant is also load-bearing on its own: if `.ailx` is the
"AI authoring projection" per Decision 6, programs expressible
in one form but not the other are a first-class bug class.
- [ ] **\[todo\]** Brainstorm Step 7.5 — Grounding-check is the *last*
step before the spec is committed. Any post-PASS edit to the spec
(Boss-side polish, user-requested change, anything) must