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:
2026-05-20 11:25:15 +02:00
parent 8e586f493f
commit 54f0ced148
118 changed files with 55 additions and 30541 deletions
+4 -15
View File
@@ -91,21 +91,16 @@ fn design_md_has_no_doc_archaeology() {
#[test]
fn design_md_present_tense_anchors_present() {
// Each anchor is read from its post-split home (spec Appendix
// relocation map). Three honest-reserved rationale anchors
// ("Regions were considered and rejected", the "does not infer
// everything" bullet, the Form-B prose-placeholder state) sat in
// `### What this Decision deliberately does not do` / `### What
// this decision does NOT commit to`, which the Appendix routes to
// the decision-record journal — so the journal is part of the
// canonical anchor corpus, not a contract surface.
// Each anchor is read from its post-split home. Phrases that only
// ever lived in the (now-removed) decision-records annex are
// dropped — anything the design/ ledger truly needs lives in
// design/contracts/ or design/models/.
let honesty = norm(&read("design/contracts/honesty-rule.md"));
let scope = norm(&read("design/contracts/scope-boundaries.md"));
let memory = norm(&read("design/contracts/memory-model.md"));
let pipeline = norm(&read("design/models/pipeline.md"));
let str_abi = norm(&read("design/contracts/str-abi.md"));
let prelude_classes = norm(&read("design/contracts/prelude-classes.md"));
let records = norm(&read("docs/journals/2026-05-19-design-decision-records.md"));
// the discriminator meta-subsection -> contracts/honesty-rule.md
assert!(honesty.contains("the honesty rule it holds itself to"),
@@ -115,8 +110,6 @@ fn design_md_present_tense_anchors_present() {
// protected honest-reserved exceptions — over-correction guard
assert!(scope.contains("`Diverge` is a reserved effect name with no op and no codegen"),
"the gold-form honest-reserved anchor must remain in scope-boundaries.md (do not over-strip)");
assert!(records.contains("Regions were considered and rejected"),
"the present-tense design-rationale exclusion must remain in the decision-records (do not over-strip)");
assert!(memory.contains("a tiebreaker, not a rationale"),
"the self-labelled tiebreaker is honest and stays in memory-model.md (do not over-strip)");
// corrected present-tense anchors
@@ -124,12 +117,8 @@ fn design_md_present_tense_anchors_present() {
"models/pipeline.md must describe Boehm present-tense, not as 'on the path to retirement'");
assert!(str_abi.contains("type-installed; codegen is reserved and not yet shipped"),
"float_to_str must be present-tense honest-reserved in str-abi.md");
assert!(records.contains("AILang demands annotations *because* the LLM author can produce them effortlessly"),
"the 'does not infer everything' bullet must be present-tense in the decision-records (no doc-archaeology)");
assert!(prelude_classes.contains("`io/print_str` is the only built-in direct-output effect-op"),
"the print-op set must be stated present-tense in prelude-classes.md (post-split home), not as a retirement narrative");
assert!(records.contains("the render in `crates/ailang-prose/src/lib.rs` is a placeholder and informational only"),
"the Form-B class/instance prose-projection state must be present-tense in the decision-records");
}
#[test]