Brummel 90977663ff plan: schema-camelcase-fix — 4-task atomic schema-tag migration (refs #30)
Iteration plan derived from `docs/specs/2026-05-21-schema-camelcase-fix.md`
(commit 55ce6d0, amended). Single-iteration milestone, four tasks:

- **Task 1 (RED)**: add `lam_serialises_with_kebab_keys` pin to
  `design_schema_drift.rs` + extend `anchor_in_jsonc_block` walk
  to require the new tag spellings inside `data-model.md`'s `lam`
  fenced block. Verifies pin fires RED on current state.

- **Task 2 (GREEN atomic schema swap)**: 10-step coupled
  migration of `ast.rs:492,494` + `workspace.rs:1925-1926` +
  `examples/test_loop_binder_captured_by_lambda.ail.json` +
  `experiments/.../master/examples/fn_with_lambda.ail.json` +
  `design/contracts/data-model.md:142-147`. All five files MUST
  move together — changing only `ast.rs` makes the JSON literals
  undeserialisable (no `#[serde(default)]` on `param_tys`/`ret_ty`,
  so the renamed-away key is a hard error).

- **Task 3 (GREEN-2 rustdoc honesty)**: three pure-prose edits in
  `ast.rs:8`, `parse.rs:81`, `check/lib.rs:1707`. Decoupled from
  the schema swap — no compile or test consequence.

- **Task 4 (Verify)**: exhaustive negative grep, full workspace
  test suite, round-trip invariance, forbidden-files check.

Plan pre-recon by `ailang-plan-recon` (DONE_WITH_CONCERNS) caught
the data-model.md + rustdoc layer the brainstorm initially missed
— spec was amended in commit 55ce6d0 + re-grounding-check PASS
(9 claims ratified, 2 of them via exhaustive negative grep as
"no-test-pins-this" Boss-overrideable shape).

Self-review: 8/8 (spec coverage, no placeholders, name consistency,
step granularity 2-5 min, no commit steps, pin/replacement
contiguity, compile-gate threading complete within Task 2,
verification filters all resolve to named real tests).
2026-05-21 12:48:59 +02:00
S
Description
No description provided
26 MiB
Languages
Rust 91.6%
Python 4.6%
C 1.8%
LLVM 1.6%
Shell 0.4%