docs: close the knowledge-graph follow-ups - #753
Merged
Conversation
Re-ran both live completeness claims: # Examples is 143 of 154 with zero genuine gaps (was 132 of 152), and the <dir>/tests.rs residue is 21 against 85 flat *_tests.rs (was 'about two dozen'). Both nodes now carry the command beside the number. In every count this arc corrected, the list was right and the total was stale — lists are written by looking, totals by remembering. The memory-store sweep found one convention with no node: a fluent builder must cover every variant of the enum it wraps (#549). Added as style/builder-enum-coverage.md with an index line. Decided against promoting clusters to subagents. The case was stronger enforcement, and nothing in this arc was caught by a rule being loaded at the right moment — every finding came from a test that could fail, each having been described accurately in prose for weeks first. The one-shot index line still advertised the roster #749 deleted.
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.
Summary
Closes the last four follow-ups in
plans/claude-md-knowledge-graph.md. Docs and one new rule node; no code.1. Both live counts re-run, and both had moved
impl Clientmethods with# Examples<dir>/tests.rsresidue*_tests.rsdocs/rules/testing/sibling-test-files.mdnow carries the twofindcommands beside the numbers.The durable finding is narrower than "counts rot". Across every count this arc corrected — 40 vs 24 text-framing tests, 42 vs 44
on_nonesites, 49 vs 54 one-shots, 132/152 vs 143/154 examples, four vs 26 unnarrowed sites — the list was right and the total was stale in all but one. Lists are written by looking; totals are written by remembering.2. One convention was living only in the memory store
A fluent builder's named methods must cover every variant of the enum they wrap — established by #549, with a bug class and a canary (
_ => unreachable!()at a caller), and no node. It has one now:docs/rules/style/builder-enum-coverage.md, plus its index line.Everything else in that store that reads like a convention was already covered by an existing node (branch-then-PR, toolchain pin, builder entry-point form, release-note attribution).
3. Memory-store reconciliation (outside this repo)
The drift was structural: 82 of 84 memories carried a
name:that was a title rather than the filename slug wikilinks resolve against — which is exactly why 12 of 27 distinct links dangled, each a kebab spelling of an existing snake_case file. Names normalized, 19 links repointed, 21 backticked cross-references converted; zero dangling now. Recorded in the plan since the follow-up lived there.4. Cluster subagents: decided, no
The precondition held (cluster boundaries survived all six passes), but the premise didn't. The case was stronger enforcement — and nothing in this arc was caught by a rule being loaded at the right moment. The routing gap (#730), the mispairing (#738/#749), the drifted
TickDecoderconsts (#739), the shadowsubmit_all(#750), the async retry inversion (#744) were each caught by a test that could fail, and each had been described accurately in prose for weeks beforehand. The graph carries why; the gates enforce. Revisit only if a cluster stops fitting in a read.Also
CLAUDE.md's one-shot index line still advertised the hand-listed roster #749 deleted; corrected. Status header recounted againstwc -w(1,625 words, 68% below the 5,012 the migration started from).Verification
just rules-check— 33 nodes, all links resolvecargo test --doc --all-features— 321 greencargo clippy --all-targets --all-features— clean