feat(skills): measure how far the bug-pattern digest has fallen behind - #355
Merged
Conversation
docs-wiki/bug-patterns/ digests the findings into failure classes, and is the layer a diagnosis is supposed to start at. It has three pages, all synthesised on 2026-05-24. Nothing has re-synced since, because the digest is on demand and no step demands it: the After-Every-Fix checklist feeds the input and nothing consumes it. Now measured rather than asserted: digest: 607 of 631 findings added since the last bug-pattern sync (2026-05-24, 3 pages) 96%. The three pages were written from the ~24 findings that existed in May. Three parts. Findings gain a `date`, backfilled by git blame over the table they came from (630 of 631 matched; the last is the one appended after the extraction). It is LAST TOUCHED, not first written — a row later corrected carries the correction's date — and the README says so. scripts/digest-status.sh reports the gap: pages, last sync, findings, how many arrived since, and a per-area breakdown with whether any page even mentions that area. The mention check is a substring heuristic on purpose; a covers: list in every page's frontmatter would be one more thing to keep true, and it would rot silently. It is skipped for a bare first segment like "model", which matches almost any prose. check-findings prints the one-line form on every run. That placement is the actual mechanism: it is the command the checklist already runs, so the number lands in front of whoever just appended a finding. A report nobody invokes is how this went three months without a sync. Advisory throughout — always exits 0. A stale digest must not block an unrelated fix, and neither number is a target to drive to zero; they exist so the decision to sync is made deliberately rather than by default. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
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.
Step 3a of the fix-issue restructure — the trigger. (#345 repointed diagnosis at the digest; #354 made the findings consumable; this makes the gap visible so the digest stops decaying.)
The number
96%. The three
docs-wiki/bug-patterns/pages were written from the ~24 findings that existed in May. Nothing has re-synced since, because the digest is on demand and no step demands it: the After-Every-Fix checklist feeds the input and nothing consumes it.Three parts
Findings gain a
date, backfilled bygit blameover the table they came from — 630 of 631 matched, the last being the one appended after the extraction. It is last touched, not first written: a row later corrected carries the correction's date, and the README says so rather than letting the field imply more than it knows.scripts/digest-status.shreports the gap — pages, last sync, findings, how many arrived since, and a per-area breakdown:The "in a page" check is a substring heuristic on purpose. The alternative is a
covers:list in every page's frontmatter, which is one more thing to keep true and would rot silently the first time someone forgot it. It's skipped for a bare first segment likemodel, which matches almost any prose and would answer a confident yes.check-findingsprints the one-line form on every run. That placement is the actual mechanism, not a convenience: it's the command the checklist already runs, so the number lands in front of whoever just appended a finding. A report nobody invokes is precisely how this went three months without a sync.Advisory, deliberately
Everything here exits 0. A stale digest must not block an unrelated fix, and neither number is a target to drive to zero — they exist so the decision to sync is made deliberately rather than by default.
make digest-statusfor the breakdown; the checklist line inCLAUDE.mdandfix-issue.mdsays to sync when a class of failure keeps recurring, not when a counter crosses a threshold./mxcli-dev:wiki-syncnow points atdigest-statusas the scope question for thebug-patterns/category.Next
Step 3b: actually writing the pattern pages. 607 undigested findings, and the areas with the largest gaps (
mdl/executor238,cmd/mxcli95,mdl/backend82) have no page mentioning them at all.🤖 Generated with Claude Code