Skip to content

Doc consistency sweep after bug-killing campaign (ROADMAP / HISTORY / SKILL.md)#581

Merged
aallan merged 5 commits into
mainfrom
claude/consistency-sweep-post-campaign
May 6, 2026
Merged

Doc consistency sweep after bug-killing campaign (ROADMAP / HISTORY / SKILL.md)#581
aallan merged 5 commits into
mainfrom
claude/consistency-sweep-post-campaign

Conversation

@aallan

@aallan aallan commented May 6, 2026

Copy link
Copy Markdown
Owner

Summary

Doc-layer consistency sweep after the bug-killing campaign closed in v0.0.134. Three focused commits:

  1. ROADMAP rework — replace What's next — short-term priorities (anchored entirely in the now-closed campaign, with a one-row priority table after it) with What's next — agent-integration push. Three priorities pulled from later-milestone phases that share the property of being independent of compiler internals: LSP server #222 LSP, vera context — token-budgeted project context export for LLM agents #523 vera context, Inference effect: configurable max_tokens / temperature #370 Inference.complete max_tokens / temperature.
  2. HISTORY compaction — eight entries in the Stage 11 release table (v0.0.119-v0.0.134) were 2-3× the density of Stage 5-9 entries, with implementation details and parenthetical asides that don't match the established style. Compacted to "feature/fix description + issue link, optional one-clause qualifier". Long form stays in CHANGELOG.
  3. SKILL.md cleanup — drop three "Known Bugs" rows for issues closed in the campaign (Pre-existing bugs in WASM call translators (surfaced by #474 review) #475, GC $alloc grows memory by only 1 page — large single allocations trap #487, Pair-type captures (String, Array<T>) silently drop the len field #535) and rewrite the closure-capture subsection that was telling agents to use a now-obsolete "lift to a helper" workaround for pair-type captures (Pair-type captures (String, Array<T>) silently drop the len field #535 closed in v0.0.130). Add the still-open url_parse / url_join drops leading colon — ":foo" round-trips as "foo" #568 (url_parse leading-colon drop) for parity with KNOWN_ISSUES.md.

Why this matters

The user-facing KNOWN_ISSUES.md has stayed clean throughout the campaign because it's part of every release-doc sync. The agent-facing layer (SKILL.md) accumulated stale "Known Bugs" rows silently because no validation gate watches it line-by-line. Agents writing Vera against this doc were generating convoluted code to work around bugs that no longer exist.

Net delta: −108 lines across the three commits. Net signal-to-noise improvement is much larger because the deleted lines were specifically the ones leading agents wrong.

Test plan

  • pytest tests/ -q — 3,702 passed, 14 skipped
  • python scripts/check_doc_counts.py — consistent
  • python scripts/check_limitations_sync.py — 27 KNOWN_ISSUES / 15 vera/README / 2 spec, consistent
  • python scripts/check_skill_examples.py — 55 Vera blocks parse, 62 allowlisted, 0 failures
  • python scripts/build_site.py && python scripts/check_site_assets.py — site assets up-to-date (docs/SKILL.md + docs/llms-full.txt regenerated as part of commit 3)
  • python scripts/fix_allowlists.py — all up to date (line-shift fix included in commit 3)
  • All pre-commit hooks pass on each of the three commits

Notes for reviewers

This is doc-only. No code changes, no behavior changes, no version bump. After merge, retag v0.0.134 to HEAD so the released artefact reflects the cleaned SKILL.md (the current v0.0.134 tag points at a commit where SKILL.md still listed three closed issues as Known Bugs and had a stale closure-capture workaround).

Companion PR: #580 (already open) is a tiny hotfix for a stale visible version on docs/index.html plus a hardening of check_version_sync.py. Independent of this sweep; can merge in either order.

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Documentation

    • Expanded HISTORY Stage 11 entries (v0.0.119–v0.0.134) with detailed feature notes
    • Replaced short-term priorities with an agent-integration focused ROADMAP and clarified implementation ordering
    • Updated SKILL guidance to broaden closure-capture semantics, add pair-type and nested-closure examples
    • Added Unreleased and 0.0.134 changelog notes summarising the documentation sweep
  • Tests

    • Expanded validation allowlist to cover many additional SKILL examples and edge cases

aallan and others added 3 commits May 6, 2026 11:09
…ntegration push

The bug-killing campaign that ran v0.0.120-v0.0.134 closed
twelve runtime/codegen bugs and is over.  The 'What's next —
short-term priorities' section was anchored entirely in that
campaign's framing — three paragraphs of justification
preceded a one-row priority table that was a leftover after
the last batch shipped.

Replace with 'What's next — agent-integration push'.  Three
priorities pulled from later-milestone phases that share the
characteristic of being independent of compiler internals
(unlike the bug-killing work, which was deep in the
runtime):

* #222 LSP server — single highest-leverage adoption enabler.
* #523 vera context — token-budgeted project export.
* #370 Inference max_tokens / temperature — smallest of the
  Inference-hardening items, blocks the most user requests.

Drop:
* The 'ordering principle / bug-killing campaign' paragraphs
  (the campaign is in HISTORY.md / CHANGELOG.md now).
* The agent self-observation quote about runtime bugs vs the
  type system (was specific to the campaign motivation).
* The reference to 'the campaign queue' in the Speculative
  section's framing.

#507 (Eq/Ord-dispatched array ops) was the single entry left
in the priority table at v0.0.134.  Drops out of the priority
queue because it was lower-urgency than the agent-integration
items; stays on the milestone list under Phase 4c (stdlib
phase 2) where it belongs.

Co-Authored-By: Claude <noreply@anthropic.invalid>
The pre-#573 cleanup pass already trimmed ROADMAP, but HISTORY's
Stage 11 release table accumulated parallel bloat as each
campaign release added implementation details, parenthetical
asides, metric examples, and cross-references that don't appear
in earlier-stage entries.  Established density for HISTORY is
'feature/fix description + issue link, optional one-clause
qualifier' — every entry pre-v0.0.119 fits that.

Compact eight entries to match:

* v0.0.119 (JSON typed accessors) — was 4 sentences listing
  all 11 functions; now 1 sentence with the why.
* v0.0.120 (Crash-debugging UX) — was 5 sentences; now title +
  issue links.
* v0.0.121 (Nested closures) — drop parenthetical CVE noise.
* v0.0.122 (GC bounds-checked) — drop Layer-1/Layer-2 detail
  (lives in CHANGELOG); keep the user-visible outcome.
* v0.0.123 (IO.print live flush) — keep the outcome, drop the
  trap-preservation detail.
* v0.0.131 (GC infrastructure batch) — drop heap-base shift
  metric and follow-up cross-reference.
* v0.0.132 (Opaque-handle GC-rooting) — drop the #346
  superseded-by-#573 parenthetical.
* v0.0.133 (Iterative array builders) — drop the per-callsite
  WAT detail.
* v0.0.134 (heap-wrap-as-ADT) — drop the Phase-2c mechanism
  description and the 10K-iter store-size metric.  Add #579 to
  the closes list (was missed in the previous compact pass).

CHANGELOG keeps the long form for each (the 'long lists belong
in CHANGELOG' rule from the earlier doc-cleanup feedback).

Co-Authored-By: Claude <noreply@anthropic.invalid>
The agent-facing doc was carrying three stale 'Known Bugs'
table rows for issues closed in the v0.0.129-v0.0.131 batch:

* #475 (WASM call translator bugs) — closed v0.0.129.
* #487 (Large single allocations) — closed v0.0.131.
* #535 (Pair-type closure capture) — closed v0.0.130.

Plus an entire pre-#535 closure-capture subsection (~50 lines)
warning agents that pair-type captures silently corrupt their
length field and instructing them to 'lift the closure body to
a top-level private fn' as a workaround.  All of that is
counterproductive now — agents writing Vera against this doc
were generating convoluted code to work around a bug that no
longer exists.

This is a structural risk that the limitations-sync script
doesn't catch (SKILL.md isn't in its purview).  The user-facing
KNOWN_ISSUES.md has been clean throughout because it's part of
every release-doc sync; the agent-facing layer accumulated
stale entries silently across the campaign.

Changes:

* Closures section: rewrite 'What you cannot capture' →
  'Capturing a pair-typed value', showing the natural
  capture pattern with an Array<Int> example.  Drop the
  workaround section entirely.  Update the nested-closures
  parenthetical to drop the pair-type caveat.
* Known Bugs table: remove the three closed-issue rows.  Add
  the still-open #568 (url_parse leading-colon drop) for
  parity with KNOWN_ISSUES.md.  Trim the post-table 'shapes
  to recognize' paragraph.
* Body: drop one stale 'No helper, no lifting workaround
  needed' comment in the nested-closures example (was
  meaningful pre-#535, now leftover phrasing).

scripts/check_skill_examples.py: line-shift fix for the
allowlisted FRAGMENT entries that moved when SKILL.md
contracted.  Includes a new comment documenting the v0.0.134
reframe of the pair-type capture example from BROKEN to
working.  Allowlist now reports 62/62 entries up to date,
55 Vera blocks parse cleanly, 0 failures.

docs/SKILL.md and docs/llms-full.txt regenerated from SKILL.md
via scripts/build_site.py (auto-derived; site-assets check
passes).

Co-Authored-By: Claude <noreply@anthropic.invalid>
@codecov

codecov Bot commented May 6, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 90.98%. Comparing base (571600c) to head (2591fb2).

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #581   +/-   ##
=======================================
  Coverage   90.98%   90.98%           
=======================================
  Files          59       59           
  Lines       22884    22884           
  Branches      259      259           
=======================================
  Hits        20821    20821           
  Misses       2056     2056           
  Partials        7        7           
Flag Coverage Δ
javascript 57.36% <ø> (ø)
python 94.82% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@coderabbitai

coderabbitai Bot commented May 6, 2026

Copy link
Copy Markdown

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: 9b7573e6-c2bc-41d2-a790-490b6c8b94c2

📥 Commits

Reviewing files that changed from the base of the PR and between 3193200 and 2591fb2.

📒 Files selected for processing (1)
  • CHANGELOG.md

📝 Walkthrough

Walkthrough

Documentation and validation updates across version history, roadmap, language semantics, and example allowlist. HISTORY.md receives Stage 11 version entries; ROADMAP.md restructures near-term priorities toward agent integration; SKILL.md expands closure capture semantics and nested-closure examples; scripts/check_skill_examples.py extends allowlist entries to validate new examples.

Changes

Closure Capture Semantics & Example Validation

Layer / File(s) Summary
Language Documentation
SKILL.md
Closure capture semantics broadened from primitives + specific ADTs to any outer binding; new subsection for capturing pair-typed values (String, Array[T]) with examples; nested-closures section and multi-level lifting examples added; Known Bugs updated (TCO disabled for allocating functions) and runtime-trap diagnostic notes added.
Example Validation
scripts/check_skill_examples.py
ALLOWLIST extended with many new FRAGMENT entries covering SKILL.md examples (post-#535 pair-type capture, combinators, built-ins, contracts, effects, handlers, common mistakes, imports, escapes); no parsing logic changes, only data additions.
Tests / Docs Wiring
SKILL.md, scripts/check_skill_examples.py
Examples in SKILL.md mapped to new allowlist entries to keep example validation aligned.

Documentation & Roadmap Updates

Layer / File(s) Summary
Version History
HISTORY.md
Stage 11 block replaced: adds sequential entries v0.0.119–v0.0.134 with expanded notes on JSON typed accessors, crash-debugging UX, nested closures, GC/IO improvements, runtime traps and WASM/tooling fixes; supersedes prior Stage 11 content for that range.
Roadmap Restructuring
ROADMAP.md
“What's next — short-term priorities” replaced by “What's next — agent-integration push”; introduces an explicit Implementation order (issues #222, #523, #370), clarifies ordering principle and queue-management guidance, reframing near-term priorities toward agent/tooling compatibility.
Changelog
CHANGELOG.md
Added Unreleased and 0.0.134 Documentation entries describing a “Post-campaign consistency sweep” referencing README/ROADMAP/HISTORY/SKILL changes and a net delta of −108 lines.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

  • aallan/vera#518: Overlapping edits to SKILL.md and scripts/check_skill_examples.py allowlist entries.
  • aallan/vera#545: Overlaps with HISTORY.md edits touching crash-debugging UX and Stage 11 narrative.
  • aallan/vera#521: Related changes to ROADMAP.md short-term priorities and implementation-order wording.

Suggested labels

docs, ci

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the PR's primary change: a documentation consistency sweep updating ROADMAP, HISTORY, and SKILL.md following a bug-killing campaign.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch claude/consistency-sweep-post-campaign

Comment @coderabbitai help to get the list of available commands and usage tips.

CI lint failed on PR #581 because SKILL.md was modified without
a matching CHANGELOG entry — the check_changelog_updated.py
gate considers SKILL.md substantive.  The doc cleanup IS
user-visible (agents reading SKILL.md will see the cleaned
content with no closed-bug workarounds), so a brief Unreleased
entry under ### Documentation is the right call here over the
Skip-Changelog escape hatch.

Single-paragraph entry covering all three commits in this PR
(ROADMAP rework, HISTORY compaction, SKILL.md cleanup).

Co-Authored-By: Claude <noreply@anthropic.invalid>

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@HISTORY.md`:
- Around line 256-271: The HISTORY.md release ledger was edited in this
no-version-bump housekeeping PR—undo any modifications to existing release rows
(e.g., the Stage 11 rows touched for v0.0.119..v0.0.134) and remove the appended
close-link on v0.0.134 so HISTORY.md remains unchanged; instead record the
housekeeping notes in CHANGELOG [Unreleased], the ROADMAP tracker, or a GitHub
issue per project policy. Ensure you revert edits that touch the existing
release entries and only add housekeeping metadata to the designated non-ledger
locations.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: 6cc8e16a-0f73-4b61-b415-d708df58383a

📥 Commits

Reviewing files that changed from the base of the PR and between 571600c and 68fc153.

⛔ Files ignored due to path filters (2)
  • docs/SKILL.md is excluded by !docs/**
  • docs/llms-full.txt is excluded by !docs/**
📒 Files selected for processing (4)
  • HISTORY.md
  • ROADMAP.md
  • SKILL.md
  • scripts/check_skill_examples.py

Comment thread HISTORY.md
This PR's contents land in v0.0.134 via tag-move-to-HEAD, not a
version-bump release.  The earlier commit added the entry under
[Unreleased] to satisfy CI's check_changelog_updated.py gate
(which assumes the standard version-bump workflow); now that the
gate has fired and we know the PR's substantiveness is recorded,
move the entry to its semantically-correct section.

Skip-changelog: tag-move-to-HEAD workflow — the entry is now
under [0.0.134], which is a released-section position the gate
doesn't recognise.  The previous commit (3193200) already
satisfied the gate, this one just relocates the bullet.

Co-Authored-By: Claude <noreply@anthropic.invalid>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant