iter docs-honesty-lint.1: canonical docs present-tense-honest + wrap-robust pin + Sweep 5
Strips Wunschdenken (forward intent stated as fact) and non-citation post-mortem / doc-archaeology from docs/DESIGN.md (14 corrections incl. 1 Step-14 procedural-catch-all site the spec's illustrative regex would have missed) + docs/PROSE_ROUNDTRIP.md; genuine forward intent (LLM tool-use / MCP / LSP) relocated to roadmap P3. Codifies the tense+modality discriminator as a present-tense DESIGN.md meta- subsection. Guards two ways: wrap-robust enumerated absent/present pin (crates/ailang-core/tests/docs_honesty_pin.rs, norm() whitespace- collapse helper — structurally discharges the recurring grep/contains line-wrap failure family) + wrap-robust advisory Sweep 5 in architect_sweeps.sh (contiguous-fragment regex) with full sweep-count lockstep + new ailang-architect.md "DESIGN.md honesty drift" bullet. KEEPs preserved (Diverge-reserved, regions-rejected, self-labelled tiebreaker). No language/checker/codegen/runtime change — sole crates/ change is the additive pin; ail check/run/build byte-unchanged. Workspace 609/0 (delta +4 pin), sentinel trio green, build clean.
This commit is contained in:
@@ -0,0 +1,131 @@
|
||||
# iter docs-honesty-lint.1 — canonical docs made present-tense-honest, guarded by a wrap-robust pin + Sweep 5
|
||||
|
||||
**Date:** 2026-05-18
|
||||
**Started from:** de66eb7ab2e457bfe7e5dbe2f87c5da15a786cd7
|
||||
**Status:** DONE
|
||||
**Tasks completed:** 6 of 6
|
||||
|
||||
## Summary
|
||||
|
||||
`docs/DESIGN.md` and `docs/PROSE_ROUNDTRIP.md` carried Wunschdenken
|
||||
(forward intent stated as fact) and non-citation post-mortem /
|
||||
doc-archaeology narrative. This iter strips both classes, codifies
|
||||
the honesty discriminator as a `### What this document is — and the
|
||||
honesty rule it holds itself to` meta-subsection inside DESIGN.md
|
||||
§"Project ecosystem", and guards the invariant two ways: a
|
||||
wrap-robust enumerated absent/present regression pin
|
||||
(`crates/ailang-core/tests/docs_honesty_pin.rs`, 4 tests) and a
|
||||
wrap-robust advisory Sweep 5 in `bench/architect_sweeps.sh` with all
|
||||
sweep-count lockstep wording + a new `ailang-architect.md` "DESIGN.md
|
||||
honesty drift" bullet. Genuine forward intent (LLM tool-use / MCP /
|
||||
LSP) relocated to `docs/roadmap.md` P3. No language/checker/codegen/
|
||||
runtime change — the sole `crates/` change is the additive pin file;
|
||||
`ail check`/`run`/`build` are byte-unchanged by construction.
|
||||
|
||||
## Per-task notes
|
||||
|
||||
- iter docs-honesty-lint.1.1: created the wrap-robust RED pin
|
||||
(`docs_honesty_pin.rs`, `norm()` whitespace-collapse helper, 4
|
||||
tests). Verified RED for the right reasons (compiles, 4 fail on the
|
||||
enumerated still-present strings + the absent discriminator).
|
||||
- iter docs-honesty-lint.1.2: appended Sweep 5 to
|
||||
`architect_sweeps.sh` + tail "All four"→"All five" + header
|
||||
"four"→"five sweeps"; added the "DESIGN.md honesty drift" architect
|
||||
bullet and fixed the sibling "four sweeps"→"five / Sweeps 1-4"
|
||||
wording. Sweep 5 confirmed firing on the uncorrected tree
|
||||
(EXIT=1). Concern-1 lockstep shipped whole, no split.
|
||||
- iter docs-honesty-lint.1.3: inserted the discriminator
|
||||
meta-subsection. Tree had drifted (a `- **Tests**:` bullet now
|
||||
follows the Docs bullet, no blank line; closing prose is "When the
|
||||
language grows…"); anchored on the verbatim closing-prose line per
|
||||
the plan's own Step-1 "quote it, do not assume" caveat.
|
||||
- iter docs-honesty-lint.1.4: applied the 13 byte-exact corrections
|
||||
(each verbatim "current text" re-confirmed by grep first; lines had
|
||||
drifted +~22 from Task 3). Step-14 catch-all surfaced one genuine
|
||||
extra FIX site (see Concerns); classified + handled per procedure.
|
||||
- iter docs-honesty-lint.1.5: stripped the PROSE_ROUNDTRIP tool-use/
|
||||
MCP Wunschdenken paragraph (present-tense replacement); appended
|
||||
the relocated forward-intent idea to roadmap P3 with spec
|
||||
provenance. Full pin GREEN (4/4).
|
||||
- iter docs-honesty-lint.1.6: full verification — pin GREEN isolated;
|
||||
workspace zero failures (609 passed, delta = +4 pin tests only);
|
||||
sentinel trio (design_schema_drift/spec_drift/schema_coverage)
|
||||
green; Sweep 5 reduced to the single self-referential L62 KEEP;
|
||||
build clean; `ONLY THE PIN` scope confirmation.
|
||||
|
||||
## Concerns
|
||||
|
||||
- T3: plan Task-1 pin string `whether the document asserts something
|
||||
exists, works, or changed that does not` omitted the `**…**`
|
||||
Markdown bold that plan Task-3 body wrapped around `asserts …
|
||||
not`. Plan self-review item 3 cross-check missed it. Resolved by
|
||||
dropping the incidental bold from the inserted body (the pin is the
|
||||
contract, written first; the emphasis is non-load-bearing). Prose
|
||||
meaning + present-tense framing unchanged. Plan-internal
|
||||
inconsistency, not a tree-drift; flagged for planner calibration.
|
||||
- T4: Step-14 catch-all surfaced one genuine extra Sweep-5 FIX site
|
||||
not in Steps 1-13 — DESIGN.md Form-B class/instance prose-projection
|
||||
bullet ("was deferred from milestone 22 entirely; … A future iter
|
||||
ships the full prose projection if/when …"). The Boss's "zero extra
|
||||
hits" pre-verification was against the spec's illustrative regex;
|
||||
the plan's broader Sweep-5 regex correctly catches this soft-wrapped
|
||||
site. Handled exactly per Step-14: rewritten present-tense (kept the
|
||||
load-bearing facts — one-way renderer, no parser by design,
|
||||
placeholder render in `crates/ailang-prose/src/lib.rs`) + matching
|
||||
absent-string asserts + present-anchor added to the pin. This is the
|
||||
procedural catch-all working as designed.
|
||||
|
||||
## Catch-all classification (Task 4 Step 14)
|
||||
|
||||
- KEEP: DESIGN.md L62 `- **Forward intent** ("planned / will back /
|
||||
on the path to / if-when X arrives")` — the discriminator
|
||||
subsection's own enumerated catalogue of forbidden phrasings;
|
||||
asserts nothing false, present-tense rule definition. A
|
||||
self-referential Sweep-5 false-positive (the regex matches the
|
||||
literal "on the path to" inside the rule's own example list).
|
||||
- FIX: DESIGN.md L2093 Form-B prose-projection bullet — see Concerns;
|
||||
before→after recorded there; pin pair added.
|
||||
|
||||
## Known debt
|
||||
|
||||
- (none) — the iter is self-contained; the pin + Sweep 5 are the
|
||||
forward guard against regrowth.
|
||||
|
||||
## Post-iter sweep output (Task 6 Step 4)
|
||||
|
||||
```
|
||||
=== Sweep: 1 (history anchors) ===
|
||||
50: `docs/journal-archive.md` (archived monolith for pre-2026-05-11 history),
|
||||
2060: 2026-05-13) — combines two `Str` values into a single owned `Str`.
|
||||
|
||||
=== Sweep: 5 (honesty: wunschdenken + non-citation post-mortem) ===
|
||||
62:- **Forward intent** ("planned / will back / on the path to /
|
||||
|
||||
EXIT=1
|
||||
```
|
||||
|
||||
Sweep-1 residue = the two documented deliberate KEEPs (L50 doc-roles
|
||||
pointer date, L2060 true `(iter str-concat, 2026-05-13)` provenance).
|
||||
Sweep-5 residue = the single L62 self-referential discriminator-
|
||||
catalogue KEEP. EXIT=1 is expected + architect-adjudicated per plan
|
||||
Task 6 Step 4 (deliberate-KEEP date-anchors remain by design).
|
||||
|
||||
## Blocked detail
|
||||
|
||||
(none — DONE)
|
||||
|
||||
## Files touched
|
||||
|
||||
- `crates/ailang-core/tests/docs_honesty_pin.rs` (new — the pin, 4
|
||||
tests; extended in T4 Step 14 per the mandated catch-all procedure)
|
||||
- `bench/architect_sweeps.sh` (Sweep 5 + header/tail lockstep)
|
||||
- `skills/audit/agents/ailang-architect.md` ("four"→"five" + new
|
||||
"DESIGN.md honesty drift" bullet)
|
||||
- `docs/DESIGN.md` (discriminator subsection + 13 enumerated
|
||||
corrections + 1 catch-all correction)
|
||||
- `docs/PROSE_ROUNDTRIP.md` (tool-use/MCP Wunschdenken stripped)
|
||||
- `docs/roadmap.md` (relocated forward-intent idea, P3)
|
||||
|
||||
## Stats
|
||||
|
||||
bench/orchestrator-stats/2026-05-18-iter-docs-honesty-lint.1.json
|
||||
Reference in New Issue
Block a user