Conversation
The catalog is append-only: knowledge enters on a merge event and nothing ever makes it leave. 104 rule pages, 488 rule IDs, zero retractions. When an upstream PR removes a behaviour, the batch distills a rule for the new behaviour while the old one stays at equal authority on the same page, its page `updated:` date refreshed by the very append that contradicted it. Measured against upstream 44d3ae10..3d952d13 (116 commits, 828 files, five days), the obvious detector does not work: flagging a rule when cited code changes hits 92% of rules by file and 82% by symbol. Flagging when a cited symbol or file has been REMOVED hits 1.4% (7 rules), and all seven are genuinely stale. The RFC proposes per-rule provenance (compact inline marker plus a sidecar, because a full inline trailer would push four pages past the 32 KiB cap), reconciliation at write time, removal as the drift trigger, an ADR-style lifecycle whose archive step is also the first mechanism that ever returns bytes to a full page, and the reviewer as the sensor for semantic staleness that no diff analysis can see. Status is proposed; no code ships with this commit. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XzDXtEBXmmogoZmGPEhapd
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
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.
Problem
Knowledge enters the catalog on a merge event and nothing ever makes it leave. Six weeks of daily intake: 104 rule pages, 488 rule IDs, zero retractions.
Three properties make this structural, not accidental:
The result is worse than missing knowledge. When an upstream PR removes a behaviour, the batch distills a rule for the new behaviour while the old rule asserting the removed one stays on the same page at equal authority — its page
updated:date refreshed by the very append that contradicted it. The reviewer gets both in one quick map with nothing marking which is current.Already observable in the tree:
DIFF-1g,DIFF-1h,MCPMO-4d,MMH3-1k,MMH3-1n. sdk(knowledge): reject rule IDs that already head a section on any catalog page #142 rejects new duplicates; it cannot see the ones that predate it.MMH3-4econtradictedMMH3-4aand was folded in by hand during the 09-10 curation pass.WanTransformer3DModel,PromptUpdateMixin,_normalize_cache_config,npu_rotary_mul,model_dtype— in a five-day window alone.updated: 2026-09-05while carrying rules distilled in July.The measurement that shapes the design
Upstream
44d3ae10..3d952d13— 116 commits, 828 files, five days:A freshness scanner — the design this repo already runs for its own SPEC pages — flags four rules in five every week here and drowns the real events. The distinction that carries signal is existence, not change.
Proposal
scheduler, which must be split anyway at 272 bytes free. Anchors come fromchanged_paths, which the distiller already receives and discards.new/supersedes/contradicts. Zero extra model calls; the evidence is already loaded.Agent gets full lifecycle authority, bounded by five constraints (non-destructive retire, machine-checked retirement, named replacement for supersede, separate action budget, separate commit) so the PR stays a real gate.
Scope
Design only — no code ships with this PR.
doc/RFC-knowledge-outdating.mdplus its row in thedoc/README.mdfeatures table.All five CI linters pass locally:
check_doc_links,check_doc_citations,check_knowledge_tree,check_wiki_lint,check_spec_freshness --strict.🤖 Generated with Claude Code
https://claude.ai/code/session_01XzDXtEBXmmogoZmGPEhapd