workflow: replace per-iter journal system with git log + BLOCKED.md

The per-iter journal under docs/journals/ duplicated the iter commit
body's substance and accumulated as Verlauf-Doku with no Future-Use.
Sweep across all live control documents: CLAUDE.md, the 7 SKILL.md
files, the 11 agent files, design/INDEX.md and the contracts/models
that referenced journals, docs/roadmap.md, and the handful of source
comments + tests that pointed at journal files for rationale.

Mechanism changes:
- Standing-reading-lists in every agent now read `git log -N --format=full`
  for recent project state, never per-iter journal files. The architect
  reads `git log <prev-milestone-close>..HEAD --format=full` for audit
  scope.
- implement-orchestrator no longer writes a journal file. DONE outcomes
  emit just code + stats; the end-report is the per-task summary the
  Boss uses to write the commit body. PARTIAL/BLOCKED outcomes emit
  BLOCKED.md at the repo root — uncommitted by convention, Boss removes
  on repair or discard. New iron-law line + four-rationalisation row
  + red-flag bullet codify it.
- audit ratify mechanic: --update-baseline is now paired with an explicit
  ratify paragraph in the audit-close commit body, not a separate
  JOURNAL ratify entry.
- design/contracts/honesty-rule.md: "history and rationale lives in
  docs/journals/" → "lives in git log (iter and audit commit bodies)".
  Pinned phrase preserved verbatim.
- CLAUDE.md "Roles of …" section reframed: design/, git log,
  journal-archive.md (content-frozen), roadmap.md, specs/, plans/.
  No docs/journals/ slot anymore.
- roadmap.md context-lines that pointed at per-iter journals are
  dropped where the spec/commit already carries the rationale, or
  rephrased to "shipped in the <iter> iter commit" / "docs/journal-
  archive.md (<date> entry)" for pre-2026-05-11 references.

What stays (this commit):
- docs/journals/ directory and contents are NOT touched. Removing the
  contents is a separate follow-up.
- docs/journals/2026-05-19-design-decision-records.md still has live
  readers (docs_honesty_pin.rs Z 108 + parse.rs + duplicate_ctor_pin.rs
  + 3 roadmap mentions) — also follow-up.
- docs/journal-archive.md still exists; its self-pointer header has
  been updated to drop the "see docs/journals/INDEX.md" mention.

Workspace builds, full test suite green.
This commit is contained in:
2026-05-20 11:21:37 +02:00
parent 55ad0fa37f
commit 8e586f493f
28 changed files with 362 additions and 373 deletions
+3 -4
View File
@@ -1,9 +1,8 @@
# JOURNAL
> **Status:** archived 2026-05-11. New iter journals live under
> `docs/journals/`. See `docs/journals/INDEX.md` for the
> chronological pointer list. This file remains the historical
> record for entries prior to that date.
> **Status:** archived 2026-05-11. Content-frozen. This file is the
> historical record for entries prior to that date. Current iter and
> audit history lives in `git log` (commit bodies).
Chronological notes for myself. Not every change; only decisions, obstacles,
and observations that future iterations will need.
+63 -94
View File
@@ -8,10 +8,9 @@ work progresses.
## Conventions
- One checkbox per entry. `- [ ]` is open; `- [~]` is in progress
(work has started — a plan exists, a branch is open, or commits are
landing); `- [x]` is done. A finished entry may stay briefly for
context, then is removed (with a one-line mirror in
`docs/journals/`).
(work has started — a plan exists or commits are landing); `- [x]`
is done. A finished entry may stay briefly for context, then is
removed; the durable record stays in `git log`.
- Each entry is tagged by **kind** and lives under a **priority**
bucket:
- **\[milestone\]** — big chunk that will get a `docs/specs/<milestone>.md`.
@@ -22,11 +21,11 @@ work progresses.
- **\[idea\]** — not yet decision-ready, no commitment.
- Optional `depends on:` line names another entry that has to land
first.
- Optional `context:` line points to the journal entry (per-iter
file under `docs/journals/` or, for pre-2026-05-11 entries, the
archived `docs/journal-archive.md`) where the rationale lives.
The roadmap is intentionally terse; rationale stays in the
journals.
- Optional `context:` line points to the rationale. For current
work this is a spec file under `docs/specs/` or a commit hash
(`git show <hash>`); for pre-2026-05-11 entries it points to the
archived `docs/journal-archive.md`. The roadmap is intentionally
terse; rationale stays in those sources.
- Priority buckets:
- **P0** — in flight. Spec or plan already exists.
- **P1** — next up. Decision made; not yet started.
@@ -54,11 +53,9 @@ work progresses.
programs, all worked first try without mutable locals — the
removal thesis empirically confirmed). Decoupled from
Stateful-islands. Stays here briefly for context; remove once
stale (full record in `docs/journals/INDEX.md`).
stale (full record in `git log`).
- context: `docs/specs/2026-05-18-remove-mut-var-assign.md`;
`docs/specs/2026-05-18-fieldtest-remove-mut-var-assign.md`;
`docs/journals/2026-05-18-iter-remove-mut-var-assign.1.md`;
`docs/journals/2026-05-18-audit-remove-mut-var-assign.md`
`docs/specs/2026-05-18-fieldtest-remove-mut-var-assign.md`
- [x] **\[milestone\]** Prose `loop` binders — projection redesign —
CLOSED 2026-05-18. Form-B prose now renders loop binders as a
@@ -75,8 +72,7 @@ work progresses.
P2 `*.bump_s` environmental staleness, latency-tail proven sampling
noise by re-run); no fieldtest (projection-only, no authoring-
surface change). Stays here briefly for context; remove once stale.
- context: `docs/specs/2026-05-18-prose-loop-binders.md`;
`docs/journals/2026-05-18-audit-prose-loop-binders.md`; surfaced
- context: `docs/specs/2026-05-18-prose-loop-binders.md`; surfaced
from the loop/recur prose review (2026-05-18 chat).
- [x] **\[milestone\]** Standalone `loop` / `recur` — CLOSED 2026-05-18.
@@ -91,7 +87,7 @@ work progresses.
no-termination exact). Two orthogonal non-blocking findings routed
to P2 todos (niladic `(app f)` — re-confirms mut-local F3; module
`(doc)` diagnostic hint). Stays here briefly for context; remove
once stale (full record in `docs/journals/INDEX.md`).
once stale (full record in `git log`).
- context: `docs/specs/2026-05-17-loop-recur.md`;
`docs/specs/2026-05-18-fieldtest-loop-recur.md`; principles entry
`docs/specs/2026-05-17-llm-surface-discipline.md` §6.2.
@@ -121,11 +117,9 @@ work progresses.
P3 below; bench causally exonerated — HEAD vs `5bb7211`/`de66eb7`
bench binaries `cmp`-byte-identical, NO ratify); no fieldtest (zero
authoring-surface change). Stays here briefly for context; remove
once stale (full record in `docs/journals/INDEX.md`).
once stale (full record in `git log`).
- context: `docs/specs/2026-05-18-docs-honesty-lint.md`
(grounding-check PASS 10/10);
`docs/journals/2026-05-18-iter-docs-honesty-lint.1.md`;
`docs/journals/2026-05-18-audit-docs-honesty-lint.md`
(grounding-check PASS 10/10).
## P1 — Next
@@ -158,11 +152,9 @@ work progresses.
precise+self-correcting; 3 working) — 3 non-blocking findings
routed to the two follow-up items directly below. Stays here
briefly for context; remove once stale (full record in
`docs/journals/INDEX.md`).
`git log`).
- context: `docs/specs/2026-05-18-embedding-abi-m1.md`;
`docs/specs/2026-05-18-fieldtest-embedding-abi-m1.md`;
`docs/journals/2026-05-18-iter-embedding-abi-m1.1.md`;
`docs/journals/2026-05-18-audit-embedding-abi-m1.md`
`docs/specs/2026-05-18-fieldtest-embedding-abi-m1.md`
- [x] **\[todo\]** form_a.md scalar-parameter mode carve-out — docs-
honesty tidy (M1 fieldtest friction + spec_gap#1, shared root) —
@@ -184,10 +176,9 @@ work progresses.
gate (the pin IS the regression coverage). plan
`docs/plans/form-a-scalar-param-mode-carveout.md` (`4c266a6`) → iter
`7d7f04e`. Stays here briefly for context; remove once stale (full
record in `docs/journals/INDEX.md`).
record in `git log`).
- context: `docs/specs/2026-05-18-fieldtest-embedding-abi-m1.md`
findings [friction] + [spec_gap]#1;
`docs/journals/2026-05-18-iter-form-a-scalar-param-mode-carveout.md`.
findings [friction] + [spec_gap]#1.
- [x] **\[feature\]** `ail emit-ir --emit=staticlib` — restore the
Decision-5 IR-readability affordance for kernels (M1 fieldtest
@@ -213,10 +204,9 @@ work progresses.
reuses the M1-audited codegen path, no invariant/surface change).
plan `docs/plans/emit-ir-staticlib.md` (`03493c9`) → iter
`bcfe554`. Stays here briefly for context; remove once stale (full
record in `docs/journals/INDEX.md`).
record in `git log`).
- context: `docs/specs/2026-05-18-fieldtest-embedding-abi-m1.md`
finding [spec_gap]#2;
`docs/journals/2026-05-18-iter-emit-ir-staticlib.md`.
finding [spec_gap]#2.
- [x] **\[milestone\]** Embedding ABI — M2: per-thread runtime
context + concurrency safety — CLOSED 2026-05-18. A compiled
@@ -257,11 +247,8 @@ work progresses.
ratify) → tidy `a80d495` (the `## Embedding ABI` lockstep rename,
drift resolved). No fieldtest (zero authoring-surface change).
Stays here briefly for context; remove once stale (full record in
`docs/journals/INDEX.md`).
- context: `docs/specs/2026-05-18-embedding-abi-m2.md`;
`docs/journals/2026-05-18-iter-embedding-abi-m2.1.md`;
`docs/journals/2026-05-18-audit-embedding-abi-m2.md`;
`docs/journals/2026-05-18-iter-embedding-abi-m2.tidy.md`.
`git log`).
- context: `docs/specs/2026-05-18-embedding-abi-m2.md`.
- [x] **\[milestone\]** Embedding ABI — M3: frozen value layout +
single ADT/record crossing + RC ownership contract — CLOSED
@@ -297,12 +284,9 @@ work progresses.
families, NO ratify) → tidy `63d7d60` (pin-safe; drift resolved).
No fieldtest (zero authoring-surface change). Stays here briefly
for context; remove once stale (full record in
`docs/journals/INDEX.md`).
`git log`).
- depends on: Embedding ABI — M2.
- context: `docs/specs/2026-05-18-embedding-abi-m3.md`;
`docs/journals/2026-05-18-iter-embedding-abi-m3.1.md`;
`docs/journals/2026-05-18-audit-embedding-abi-m3.md`;
`docs/journals/2026-05-18-iter-embedding-abi-m3.tidy.md`.
- context: `docs/specs/2026-05-18-embedding-abi-m3.md`.
- [x] **\[milestone\]** Embedding ABI — M5: `ail-embed` adapter +
`data-server` wiring + thread-swarm backtest — **DONE 2026-05-19**,
@@ -337,13 +321,7 @@ work progresses.
Stays one cycle for context, then prune.
- depends on: Embedding ABI — M3 (shipped); Tick-coverage on M3
(shipped `170464f`).
- context: `docs/specs/2026-05-19-embedding-abi-m5.md`; iter
journals `2026-05-19-iter-embedding-abi-m5.{1,2,3,tidy}.md` +
`…-m5.2-resume-attempt.md` + bugfix
`…-rc-global-stats-race.md` / `…-swarm-rc-alloc-undercount.md`;
audit `docs/journals/2026-05-19-audit-embedding-abi-m5.md`; M4
retirement
`docs/journals/2026-05-18-brainstorm-embedding-abi-m4-retired.md`.
- context: `docs/specs/2026-05-19-embedding-abi-m5.md`.
- [x] **\[milestone\]** Heap-`Str` ABI — runtime infrastructure for
malloc-backed, refcounted `Str` values alongside the existing
@@ -376,8 +354,7 @@ work progresses.
blocked the original spec retired in mq.3 (2026-05-13); spec
`docs/specs/2026-05-13-24-show-print.md` re-derived 24.2 + 24.3
against the post-mq architecture.
- context: spec `docs/specs/2026-05-13-24-show-print.md`; per-iter
journals 2026-05-12-iter-24.1, 2026-05-13-iter-24.2, 2026-05-13-iter-24.3.
- context: spec `docs/specs/2026-05-13-24-show-print.md`.
## P2 — Medium-term
@@ -412,7 +389,7 @@ work progresses.
discipline, not a third patch). No fieldtest (zero
authoring-surface change — reasoned exclusion). Stays briefly
for context; remove once stale (full record in
`docs/journals/INDEX.md`). Original decided-shape rationale
`git log`). Original decided-shape rationale
retained below for context until pruned.
**Motivation.** The just-closed `docs-honesty-lint` milestone is
@@ -499,12 +476,9 @@ work progresses.
rewrites enforced invariants and agent contracts.
- context: spec `docs/specs/2026-05-19-design-md-rolesplit.md`
(incl. the Boss-adjudicated relocation Appendix; grounding-check
PASS ×2); audit `docs/journals/2026-05-19-audit-design-md-rolesplit.md`;
iter journals `2026-05-19-iter-design-md-rolesplit.{1,tidy}.md`;
`docs/journals/2026-05-19-design-decision-records.md`; origin
2026-05-18 chat (DESIGN.md-management dialogue — six-turn
convergence). CLOSED — audited + drift-resolved; hard gate
enforces the honesty spirit.
PASS ×2); origin 2026-05-18 chat (DESIGN.md-management
dialogue — six-turn convergence). CLOSED — audited +
drift-resolved; hard gate enforces the honesty spirit.
- [x] **\[milestone\]** Formal cross-links in the `design/` ledger
(browsable wiki) — CLOSED 2026-05-19. The positive completion
@@ -534,13 +508,10 @@ work progresses.
(grounding-check PASS ×3 across two corpus-grounded amendments —
clause-6 + cross-ref definition; clause-5 fence-skip + closed
convert-set enumeration); plan
`docs/plans/design-ledger-formal-links.1.md`; iter journal
`docs/journals/2026-05-19-iter-design-ledger-formal-links.1.md`;
audit `docs/journals/2026-05-19-audit-design-ledger-formal-links.md`;
origin this session's six-turn design conversation following the
split close. CLOSED — audit clean (zero drift, bench trio
0/0/0); no tidy, no fieldtest (zero authoring-surface change —
reasoned exclusion).
`docs/plans/design-ledger-formal-links.1.md`; origin this
session's six-turn design conversation following the split close.
CLOSED — audit clean (zero drift, bench trio 0/0/0); no tidy,
no fieldtest (zero authoring-surface change — reasoned exclusion).
- [ ] **\[milestone\]** Flat array/slice primitive — performance
follow-up to the Embedding ABI arc, *not* a capability gap.
@@ -562,10 +533,9 @@ work progresses.
- depends on: Embedding ABI — M5 (shipped; measured ~206 ns/tick
— the justification input now exists).
- context: 2026-05-18 chat (user deferred this to keep the ABI
arc clean); M5 audit
`docs/journals/2026-05-19-audit-embedding-abi-m5.md` (the
friction-harvest number); M4 retirement
`docs/journals/2026-05-18-brainstorm-embedding-abi-m4-retired.md`.
arc clean); the friction-harvest number recorded in the M5
audit commit; M4 retirement decision recorded in the M5 closing
commits.
- [ ] **\[milestone\]** Iteration-totality story — structural +
Int-bounded total recursion with *enforced* non-negativity.
@@ -580,14 +550,14 @@ work progresses.
- depends on: a future `Nat`/refinement-types milestone (no spec
yet).
- context: `docs/specs/2026-05-16-iteration-discipline-revert.md`
(why the 2026-05 attempt was reverted) and
`docs/journals/2026-05-15-iter-it.3.md` (the branching-builder
counter-example that surfaced the gap).
(why the 2026-05 attempt was reverted); the branching-builder
counter-example that surfaced the gap landed in the it.3 iter
commit.
- [x] **\[milestone\]** Retire `io/print_int` / `io/print_bool` /
`io/print_float` effect-ops + migrate example corpus to `print`.
Shipped 2026-05-14 as iter rpe.1.
- context: per-iter journal `docs/journals/2026-05-14-iter-rpe.1.md`.
- context: shipped in the rpe.1 iter commit.
- [x] **\[todo\]** Author `examples/prelude.ail` alongside
`examples/prelude.ail.json`. (Satisfied 2026-05-13 by iter
@@ -648,13 +618,13 @@ work progresses.
`<` etc. resolved via the typeclass instead of the built-in
primitive comparators. No commitment; gated on bench re-baselining
to make sure the indirection doesn't tank latency.
- context: JOURNAL 2026-05-09
- context: `docs/journal-archive.md` (2026-05-09 entry).
- depends on: Post-22 Prelude — Eq/Ord (shipped 23.5)
- [x] **\[todo\]** `types` / `ctor_index` overlay shape question —
decide whether the env's two parallel ctor maps should collapse
into one overlay, or stay split. Surfaced during the
env-construction unify audit.
- context: JOURNAL 2026-05-10 ("Audit close: env-construction unify"); closed by iter ctt.1 — DESIGN.md §"Env construction" anchors the split decision.
- context: `docs/journal-archive.md` (2026-05-10 "Audit close: env-construction unify"); closed by iter ctt.1 — DESIGN.md §"Env construction" anchors the split decision.
- [x] **\[todo\]** CLI human-mode diagnostic surface for `WorkspaceLoadError`.
Shipped 2026-05-14 as iter cli-diag-human — a new `load_workspace_human`
helper in `crates/ail/src/main.rs` routes 9 non-JSON
@@ -662,14 +632,14 @@ work progresses.
`workspace_error_to_diagnostic`, so the bracketed `[code]` prefix is
preserved across `ail check`, `build`, `run`, `emit-ir`, `prose`,
`describe`, `deps`, `diff`, `manifest`.
- context: per-iter journal `docs/journals/2026-05-14-iter-cli-diag-human.md`.
- context: shipped in the cli-diag-human iter commit.
- [x] **\[todo\]** Retire dead `KindMismatch` arm — `validate_classdefs`'s
`walk_kind_mismatch` path is structurally unreachable through
well-formed schema post-ct.1 (the canonical-form validator catches
the malformed `Type::Con { name: param }` shape earlier). The
enum variant + `walk_kind_mismatch` helper stay as dead-but-defensive
code; a future tidy can delete both.
- context: JOURNAL 2026-05-11 ("Iteration ct.1"); closed by iter ctt.3 — variant + helper + dispatch + Display arm all deleted; canonical-form-rejection test stays green asserting `BareCrossModuleTypeRef`.
- context: `docs/journal-archive.md` (2026-05-11 "Iteration ct.1"); closed by iter ctt.3 — variant + helper + dispatch + Display arm all deleted; canonical-form-rejection test stays green asserting `BareCrossModuleTypeRef`.
- [x] **\[todo\]** Re-key `Registry.type_def_module` to handle
bare-name-collision-across-modules — `BTreeMap<String, String>` keyed
by bare type name silently overwrites when two modules each define
@@ -677,11 +647,11 @@ work progresses.
and `N.Foo` to whichever insert won. Acceptable for current corpus
(distinct bare type names across modules), but the proper fix is to
key by `(owning_module, bare_name) → defining_module`.
- context: JOURNAL 2026-05-11 ("Iteration ct.1") — flagged by ct.1.5a quality reviewer.
- context: `docs/journal-archive.md` (2026-05-11 "Iteration ct.1") — flagged by ct.1.5a quality reviewer.
- [ ] **\[feature\]** 22c — typeclass corpus expansion. User-defined
classes beyond the prelude four; multi-parameter classes; superclass
chains; richer instance bodies. Deferred from milestone 22.
- context: JOURNAL 2026-05-09
- context: `docs/journal-archive.md` (2026-05-09 entry).
- [x] **\[milestone\]** Module-qualified class names + type-driven
method dispatch — retired the `MethodNameCollision` workaround;
shipped 2026-05-13 as iters mq.1 (canonical-form extension for
@@ -701,7 +671,7 @@ work progresses.
- [ ] **\[todo\]** Boehm full retirement — remove the transitional
Boehm GC path now that RC + uniqueness is the canonical memory
story.
- context: JOURNAL pre-22, "Boehm transitional"
- context: `docs/journal-archive.md` (pre-22, "Boehm transitional").
- [ ] **\[feature\]** Closure-pair slab / pool — codegen tweak to
pool the env+code closure pairs instead of one-shot heap allocs.
Bench-gated.
@@ -720,8 +690,7 @@ work progresses.
real flat-closed-set / IO-only / `IndexMap`+codegen-`match`
mechanism, satellite lockstep done, guarded by a 4-test
doc-presence pin. No language/checker/codegen change.
- context: per-iter journal
`docs/journals/2026-05-16-iter-effect-doc-honesty.md`.
- context: shipped in the effect-doc-honesty iter commit.
- [ ] **\[todo\]** `io/print_float` always-emit-`.0` — surface
printer always emits `.` or `e/E` so re-lex routes to Float;
the runtime printer (`printf("%g\n", v)`) doesn't, so `2.0`
@@ -736,7 +705,7 @@ work progresses.
`ailang-core`: private-item links from public doc, unresolved
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").
- context: `docs/journal-archive.md` (2026-05-10 "Audit close: design-md-consolidation").
- [ ] **\[todo\]** `ailang-plan-recon` site-undercount countermeasure
(P2, **escalated** — now a structural recon-contract defect, no
longer a single-milestone curiosity) — the recon agent hand-lists
@@ -775,7 +744,7 @@ work progresses.
Constrain the test to scan only §"Data model" + ParamMode
block, or extract JSON-schema blocks into a machine-readable
file the test consumes.
- context: JOURNAL 2026-05-10 ("Audit close").
- context: `docs/journal-archive.md` (2026-05-10 "Audit close").
- [ ] **\[todo\]** Split `BadCrossModuleTypeRef` into two diagnostics —
the current single shape collapses unknown-owner and
known-owner / unknown-type-in-owner into one message. The two
@@ -856,8 +825,8 @@ work progresses.
- context: remove-mut-var-assign close audit, bencher localisation
(2026-05-18) — byte-identical-binary causal exoneration + the
3-milestone false-positive history.
- context: `docs/journals/2026-05-16-audit-iteration-discipline-revert.md`
(the bencher localisation evidence).
- context: the bencher localisation evidence in the
iteration-discipline-revert audit commit.
- [x] **\[todo\]** `check_in_workspace` per-module overlay narrowing —
`crates/ailang-check/src/lib.rs:1234` still clears+rebuilds
`env.ctor_index` per-module; ct.3.2 narrowed the analogous mono
@@ -866,8 +835,8 @@ work progresses.
time, not the runtime ctor lookup (which is type-driven post-ct.2.2).
Narrowing is mechanical but needs a careful read to confirm no
other consumer survives.
- context: JOURNAL 2026-05-11 ("Iteration ct.4") — milestone close
follow-up; closed by iter ctt.1 — recon confirmed the rebuild is the load-bearing consumer of in-band DuplicateCtor (pinned by `crates/ailang-check/tests/duplicate_ctor_pin.rs`); the asymmetry with the mono side is intentional.
- context: `docs/journal-archive.md` (2026-05-11 "Iteration ct.4") —
milestone close follow-up; closed by iter ctt.1 — recon confirmed the rebuild is the load-bearing consumer of in-band DuplicateCtor (pinned by `crates/ailang-check/tests/duplicate_ctor_pin.rs`); the asymmetry with the mono side is intentional.
- [x] **\[feature\]** `str_concat : (borrow Str, borrow Str) -> Str` —
heap-Str concatenation primitive. Shipped 2026-05-13 as iter
str-concat (closes fieldtest-form-a friction #4). Symmetric to the
@@ -876,7 +845,7 @@ work progresses.
registration, `ailang-codegen` extern + `lower_app` arm, plus a
fresh `examples/show_user_adt_with_label.ail` corpus fixture
exercising the LLM-natural Show-body shape.
- context: per-iter journal 2026-05-13-iter-str-concat.md.
- context: shipped in the str-concat iter commit.
- [~] **\[milestone\]** Stateful islands — bounded mutation for
streaming workloads (`Stateful a b` + `!Mut` effect + `mut`
@@ -1035,7 +1004,7 @@ work progresses.
qualified `Type::Con` through pattern lowering would type-anchor
it symmetric to the ct.2.2 typecheck-side fix. Not load-bearing
(uniqueness is enforced at typecheck), but cleaner.
- context: JOURNAL 2026-05-11 ("Iteration ct.3" + ct.4 close).
- context: `docs/journal-archive.md` (2026-05-11 "Iteration ct.3" + ct.4 close).
- [ ] **\[todo\]** `compare_primitives_smoke` IR-shape assertion —
observe `compare__Int` / `compare__Bool` / `compare__Str` symbols
in the emitted IR. Blocked on `emit-ir` CLI not running mono;
@@ -1044,8 +1013,8 @@ work progresses.
build`. The E2E stdout assertion already covers correctness; the
IR-shape test would catch refactor regressions that rename
mono symbols.
- context: JOURNAL 2026-05-11 ("Iteration ct.4") — dropped from
ct.4.4 when the BLOCKED condition surfaced.
- context: `docs/journal-archive.md` (2026-05-11 "Iteration ct.4") —
dropped from ct.4.4 when the BLOCKED condition surfaced.
- [ ] **\[idea\]** Latency methodology rework — switch from per-run
timing to a histogram-based approach so tail-latency regressions
@@ -1054,13 +1023,13 @@ work progresses.
sites (class × 3, class method × 2, instance × 3, instance method
× 1). No regression pin today; only worth it if a 22b.4a-era
diagnostic needs to change.
- context: JOURNAL 2026-05-10 ("Iteration 22-tidy.7")
- context: `docs/journal-archive.md` (2026-05-10 "Iteration 22-tidy.7").
- [ ] **\[idea\]** `write_type` `Type::Forall` arm in
`crates/ailang-prose/src/lib.rs` silently drops constraints in
inline-type rendering. Dormant — surface forms today only carry
forall at fn-signature top level. Fix only if a future feature
carries forall + constraints inline.
- context: JOURNAL 2026-05-10 ("Iteration 22-tidy.6")
- context: `docs/journal-archive.md` (2026-05-10 "Iteration 22-tidy.6").
- [ ] **\[idea\]** Richer integration paths between RC and
uniqueness — deferred from the 21' arc; revisit once the
uniqueness inference covers more program shapes.
@@ -1084,5 +1053,5 @@ work progresses.
negative-lookbehind / line-range exclusion so the rule's own example
list is not a hit. P3 — may be cut; the architect adjudicates the
single known self-match trivially today.
- context: `docs/journals/2026-05-18-audit-docs-honesty-lint.md`
(architect `[medium]` advisory wart, carry-on)
- context: docs-honesty-lint audit commit (architect `[medium]`
advisory wart, carry-on).