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:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user