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