docs: the handoff reports what the trees actually contain - #111
Merged
Conversation
Stale by 23 merged pull requests. Its headline — that correctness work had not been started — stopped being true at #91, #93, #94 and #96, and four of the ten framework symbols it reported as never emitted were being emitted when it said so. The census had been taken by grepping this repo, and an emitter builds most of what it emits: render_constraints.go spells a bound with Sprintf, so the string never appears here and always appears in the output. Re-measured against the three generated trees at 30b23ac. Sensitive, the constraint validators, DeprecationMessage and the documented default are real; WriteOnly, SetAttribute, SemanticEquals and every config validator are still zero. No audit has ever run against any pilot — all three revised specs carry zero x-tfpfgen extensions — so every observation-driven shape remains unexercised. Refusal counts are removed; docs/emittance_tracker.md owns those. The presence census stays, stamped with the commit and the date it was taken, and it moved the right way for the first time: 49x optional-to-computed_optional, now 15.8x. Adds the lesson the stale census demonstrates: measure at the layer the claim is about. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
ShocOne
force-pushed
the
docs/refresh-handoff
branch
from
August 25, 2026 10:55
98e747d to
fb37c39
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.
handoff.mdstopped at PR #86;mainis at #109. Re-measured against the three generated trees at30b23acand rewritten to what they contain.Stacked on nothing — independent of #110, though both came out of the same audit.
The headline was false
It started at #91, #93, #94 and #96. Constraint keywords parse, bounds and patterns become validators,
format: password/writeOnlybecomeSensitive,deprecatedbecomes aDeprecationMessage, and a documented default fills the response.The census was taken at the wrong layer
The old file listed ten framework symbols "verified against current
main" as zero. Measured in the generated trees, four were not:SensitiveDeprecationMessageint64validator.BetweenRegexMatchesUTF8LengthBetweenLengthAtLeast/LengthAtMostDefaultThe census had been taken by grepping this repo for the symbol.
internal/emit/render_constraints.gospells a pair of bounds asfmt.Sprintf("%sBetween(%v, %v)", …), so the string never appears here and always appears in the output. That lesson is now written into the file, and intoCLAUDE.mdin #110.Still genuinely zero, and each is a
mapping.mdrow:WriteOnly,SetAttribute,SetNestedAttribute,SemanticEquals,RequiresReplaceIfConfigured, and any config validator at all.What has still never happened
No audit has run against any of the three pilots. All three revised specs contain zero
x-tfpfgen-*extensions, and no scratch tree has anaudit/orspec/corrections/directory. Every observation-driven shape is unexercised — including the conditional validators, which is why row 5 reads "emitter exists, no tree contains one".Counts
Refusal counts are gone;
docs/emittance_tracker.mdowns those, and the old file's 1600 disagreed with the tracker's 1507.The presence census stays, because it is not a tracker row — the tracker holds tree files, entities by kind, and refusals by stage. It is stamped with the commit and date, and it moved the right way for the first time:
Absolute figures are not comparable across rows — union variants brought each branch's own fields into the tree. The ratio is the number that means something.
Other corrections
mapping.md"is not in the repo" — it is, and has been since docs: commit the behaviour-to-schema mapping #87.docs/contract.md:168now resolves to line 175; the citation is replaced with the quote.prune.go"is at 799 lines, the next change fails the gate" — decomposed in refactor: decompose prune.go by protocol #97, now 351.mapping.mdrows 1 and 8 are still open, andcompile.go:116still refuses for want of row 8.Verification
Trees confirmed current before measuring —
tfpfgen provider verifyon ThousandEyes reports 1912 files, no drift, matching the tracker's row. Refusal totals independently recomputed fromunsupported.json: 1507, split exactly as the tracker records.One question for you
Should the presence census and the emitted-symbol census move into
docs/emittance_tracker.md? The tracker currently defines itself as tree files, entities by kind, and refusals by stage, so I left them here rather than widen it without asking. They have the same staleness problem the tracker exists to solve.🤖 Generated with Claude Code