feat(spec): the convergence diagnostic measures review growth - #962
Merged
Conversation
Idea 40's two undiagnosed observations, landed as one number: the observed review loop grew its spec 6,835 → 14,685 words across six cycles while declining finding counts were read as convergence — they tracked declining new text. Review now records the construction baseline when it opens (review_baseline_words, batched into the cycle-1 write), and the spec-review convergence diagnostic shows document growth beside the finding trend, flagging when review has added more than a quarter of the construction baseline — the loop is authoring, not correcting, and construction may have under-delivered. Restart deletes the baseline with the tracking subtree; the simulation pins the batched write and numeric round-trip. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The batched cycle-1 write broke nine invariant tokens across five prose
cases (the matcher is substring — review_cycle=1 never contains
review_cycle 1); all re-pinned, with review_baseline_words= pinned and
the construction baseline named in the four asserts' expected worlds.
The documented command drops its tr (the stdin form pads on neither
shell, and tr was undeclared); the restart deletes read 'where present'
so an absent field's error is expected; the growth line renders
{live_words} (a computed name) with a signed net value, and the
threshold flag's text goes neutral per ruling — growth tracing to
sources is the loop working; the flag asks whether it does, and the
construction-under-delivered framing is gone.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
leeovery
force-pushed
the
spec-review-growth-accounting
branch
from
August 20, 2026 10:41
63793ab to
fa4d7c4
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
Idea 40 recorded two diagnostics the stack never landed: the observed review loop grew its spec 6,835 → 14,685 words across six cycles while its declining finding counts were read as convergence — they tracked declining new text — and construction plausibly under-delivered. Both are the same number seen from two sides.
What
review_baseline_words— recorded when review opens (batched into the cycle-1review_cyclewrite): the document's word count at the end of construction. Field surface accepts it as a free topic field (probed live);specification-format.md's metadata table documents it; restart deletes it alongside the tracking subtree.Document growth: {baseline} → {current} words (+N across review)line and a flag when review has added more than a quarter of the construction baseline: the loop is authoring, not correcting — weigh whether construction under-delivered; falling finding counts here track falling new text, not convergence. Absent baseline (pre-existing reviews) skips both.Gates: simulation, conventions lint, prose corpus, typecheck all green. Snapshot goldens unchanged by this branch (no engine edits); note the stored
.recipe-hashfiles corpus-wide predate the stack's engine change, so fullnpm testruns rebuild all worlds (~4 min) until they're refreshed — flagged in the review report.Stacks on #961. Part 8 — completes the idea-40 stack.
🤖 Generated with Claude Code