workflow: delete docs/journals/ and docs/journal-archive.md
Strict application of the "Future-Use, not Verlauf" criterion to the
two remaining journal artefacts:
- `docs/journals/` (110 files): the per-iter and audit journals from
2026-05-11 onward. Pure history; no live reader after the previous
sweep. Entire directory removed.
- `docs/journals/2026-05-19-design-decision-records.md`: the one file
that had live readers (`docs_honesty_pin.rs:108`, `parse.rs:80`,
`duplicate_ctor_pin.rs:8`, three roadmap.md mentions) and was framed
as a "relitigation guard". On re-examination its three asserted
pinned phrases ("Regions were considered and rejected", the
"demands annotations *because*" rationale, the prose-render
placeholder statement) are rationale-prose, not load-bearing
invariants — the test pinned itself, not a system property. Any
Decision that still holds lives in the code, `design/contracts/`,
or `design/models/`. Removed with the rest.
- `docs/journal-archive.md` (pre-2026-05-11 history): content-frozen
long-tail history with no live reader. Removed; if anyone ever
needs the pre-cutoff rationale they can `git log --before=2026-05-11
--grep=<keyword>`.
Live-file consequences:
- `docs_honesty_pin.rs` `design_md_present_tense_anchors_present`:
the three `records.*` assertions and the `read("docs/journals/…")`
are dropped; the contract/model anchor pins remain.
- `duplicate_ctor_pin.rs`: the "why-two-overlays rationale lives in
docs/journals/…" comment is replaced with the rationale inline.
- `parse.rs`: the "form-refinement rationale lives in docs/journals/…"
comment is dropped (the rule body already states the refinement).
- `roadmap.md`: the decision-records mention in the DESIGN.md →
design/ entry's body is dropped; the journal-archive.md `context:`
pointers across ~12 closed entries are either rephrased to point
at the relevant iter/audit (no path), or simplified to a one-line
comment when the iter name alone carries the story.
- `CLAUDE.md` Roles section: the `docs/journal-archive.md` slot is
removed; vocabulary note rephrased.
- `design/INDEX.md`: the Docs bullet drops `journal-archive.md`.
- `skills/README.md` bootstrap-rationale pointer rephrased.
`docs/specs/` and `docs/plans/` (per-milestone specs and per-iteration
plans) are unaffected — they remain the structured-design artefacts
they were before this sweep.
Workspace builds, full test suite green.
This commit is contained in:
+29
-28
@@ -21,11 +21,10 @@ 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 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.
|
||||
- Optional `context:` line points to the rationale: a spec file
|
||||
under `docs/specs/`, a commit hash (`git show <hash>`), or a
|
||||
`git log --grep="<keyword>"` pointer for older entries. 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.
|
||||
@@ -365,9 +364,8 @@ work progresses.
|
||||
polymorphic links — prose file OR authoritative source `//!`),
|
||||
14 `design/contracts/*.md` test-linked invariants + 3
|
||||
source-link-only contracts (mangling/env-construction/
|
||||
qualified-xref — code is SoT), 5 `design/models/*.md`
|
||||
whitepapers, and `docs/journals/2026-05-19-design-decision-records.md`
|
||||
(the relitigation-guard archive). RED-first
|
||||
qualified-xref — code is SoT), and 5 `design/models/*.md`
|
||||
whitepapers. RED-first
|
||||
`design_index_pin.rs` 4-clause anti-regrowth spine; clause-3 is
|
||||
a hand-rolled **faithful Sweep-1 superset** so the in-code hard
|
||||
gate enforces the honesty spirit (clause-3 GREEN ⟹ Sweep-1
|
||||
@@ -418,9 +416,9 @@ work progresses.
|
||||
- **Decision-record / relitigating-guard** — why X was chosen,
|
||||
why Y/Z were rejected (region inference, tracing GC, …).
|
||||
Consumer: a future `brainstorm`, so it does not re-propose a
|
||||
settled-and-rejected idea. This already has a home —
|
||||
`docs/journals/` — and sits in DESIGN.md only because the
|
||||
audit-trail invariant predates per-iter addressable journals.
|
||||
settled-and-rejected idea. (This tier was migrated out of
|
||||
DESIGN.md at split time and later retired entirely; the
|
||||
project's history lives in `git log`.)
|
||||
|
||||
Underlying principle: the code is authoritative for *what it
|
||||
does* — delete every description of behaviour, the code speaks;
|
||||
@@ -440,8 +438,8 @@ work progresses.
|
||||
single-owner `//!` source header (mangling, env, roundtrip,
|
||||
float, tail-calls, data-model), or a `design/models/…`
|
||||
whitepaper. INDEX.md is the sole addressable entry point.
|
||||
Decision-records move out to `docs/journals/`; the honesty-lint
|
||||
audit-trail invariant is repointed there in the same milestone.
|
||||
Decision-records move out of DESIGN.md; the honesty-lint
|
||||
audit-trail invariant is repointed in the same milestone.
|
||||
|
||||
**Rejected — do not relitigate.** Quarto / `.qmd` was evaluated
|
||||
and rejected: every distinctive Quarto feature (rendered
|
||||
@@ -618,13 +616,14 @@ 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: `docs/journal-archive.md` (2026-05-09 entry).
|
||||
- context: `git log --before=2026-05-11 --grep=...` for the
|
||||
pre-archive-cutoff rationale.
|
||||
- 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: `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.
|
||||
- context: 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
|
||||
@@ -639,7 +638,7 @@ work progresses.
|
||||
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: `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`.
|
||||
- context: 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
|
||||
@@ -647,11 +646,12 @@ 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: `docs/journal-archive.md` (2026-05-11 "Iteration ct.1") — flagged by ct.1.5a quality reviewer.
|
||||
- context: flagged by the 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: `docs/journal-archive.md` (2026-05-09 entry).
|
||||
- context: `git log --before=2026-05-11 --grep=...` for the
|
||||
pre-archive-cutoff rationale.
|
||||
- [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
|
||||
@@ -671,7 +671,8 @@ work progresses.
|
||||
- [ ] **\[todo\]** Boehm full retirement — remove the transitional
|
||||
Boehm GC path now that RC + uniqueness is the canonical memory
|
||||
story.
|
||||
- context: `docs/journal-archive.md` (pre-22, "Boehm transitional").
|
||||
- context: pre-milestone-22 "Boehm transitional" decision —
|
||||
see commits from that window.
|
||||
- [ ] **\[feature\]** Closure-pair slab / pool — codegen tweak to
|
||||
pool the env+code closure pairs instead of one-shot heap allocs.
|
||||
Bench-gated.
|
||||
@@ -705,7 +706,8 @@ 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: `docs/journal-archive.md` (2026-05-10 "Audit close: design-md-consolidation").
|
||||
- context: surfaced in the design-md-consolidation audit close
|
||||
(2026-05-10).
|
||||
- [ ] **\[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
|
||||
@@ -744,7 +746,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: `docs/journal-archive.md` (2026-05-10 "Audit close").
|
||||
- context: surfaced in the 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
|
||||
@@ -835,8 +837,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: `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.
|
||||
- context: 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
|
||||
@@ -1004,7 +1006,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: `docs/journal-archive.md` (2026-05-11 "Iteration ct.3" + ct.4 close).
|
||||
- context: surfaced in iter ct.3 + ct.4 close (2026-05-11).
|
||||
- [ ] **\[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;
|
||||
@@ -1013,8 +1015,7 @@ work progresses.
|
||||
build`. The E2E stdout assertion already covers correctness; the
|
||||
IR-shape test would catch refactor regressions that rename
|
||||
mono symbols.
|
||||
- context: `docs/journal-archive.md` (2026-05-11 "Iteration ct.4") —
|
||||
dropped from ct.4.4 when the BLOCKED condition surfaced.
|
||||
- context: 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
|
||||
@@ -1023,13 +1024,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: `docs/journal-archive.md` (2026-05-10 "Iteration 22-tidy.7").
|
||||
- context: surfaced in iter 22-tidy.7 (2026-05-10).
|
||||
- [ ] **\[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: `docs/journal-archive.md` (2026-05-10 "Iteration 22-tidy.6").
|
||||
- context: surfaced in iter 22-tidy.6 (2026-05-10).
|
||||
- [ ] **\[idea\]** Richer integration paths between RC and
|
||||
uniqueness — deferred from the 21' arc; revisit once the
|
||||
uniqueness inference covers more program shapes.
|
||||
|
||||
Reference in New Issue
Block a user