You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
refactor\(code-metrics\): consolidate the six audit-* skills \(plan sized waves first\) - part 1 of 2 #12726
Part 1 of 2 of #12491, split at intake (owner Q93). The done-when below is copied from #12491 as written.
Done when
A comment here gives a sized wave plan: the chosen target with its basis, and each wave's measured git diff --no-renames byte size, each under 262144 bytes. Further waves are filed from it.
Proposed work class: work-class: read-only
Basis: automated intake triage; the lanes App applied this class.
Size: Small
Complexity: Medium
Uncertainty: Knowable
Flags: none
Blocked by: none
Understood: this is part 1 of 2 of the code-metrics audit-* consolidation. The deliverable is a comment on this issue with a sized wave plan. The plan needs the chosen consolidation target and its basis. It needs each wave's measured git diff --no-renames byte size, each under 262144 bytes. The waves themselves get filed afterward from that plan.
The done-when is exact, so I have no open questions. The related issue is the part 2 sibling, #12727-range title "part 2 of 2", which is a split sibling and not a duplicate. The un-split original in the open list may also overlap. A maintainer can confirm which is canonical.
This records a re-fire of an earlier refusal, not a new refusal. The lanes kill switch stopped run 41584881879, the work-resolve-issue run that agent-ready started, before it did any work; that run ended at 2026-11-03T05:45:27Z. work-unblock has now removed and added agent-ready back to start a fresh run. A kill-switch refusal is no fault in this issue or the lanes, so it never counts against later re-fires; after limits.limit-stops-per-issue of them since a person last added agent-ready or a run last reported, work-unblock waits longer before each one, up to 24 hours.
The work-resolve-issue lane stopped on this issue (report-delivered): the issue asks for a report and no change, and the run posted that report, so the issue closes.
It closes the issue as completed.
In the run's words:
report-delivered: the sized wave plan for the code-metrics audit-* consolidation is the whole result of this issue; it is in summary and needs no commit.
The run's report:
## Sized wave plan: consolidate the six code-metrics:audit-* skills (#12491, part 1 of 2)
### Target: one code-metrics:audit router (option 1)
The target is plugins/code-metrics/skills/audit/: a router SKILL.md, then actions/<metric>.md for complexity, coverage, duplication, size, suppressions and type-debt, with scripts/ and evals/ beside them. The old names are removed in the final wave, with no aliases. The report skill values, the dispatch.sh ids and the detector rule ids keep their current values.
Basis:
D107 router standard (#7582): "SKILL.md a router under 5k tokens, actions/ per action, evals on all skills, split only by exception". The six bodies total 71,833 bytes, too large for one SKILL.md, so they go into actions/. Option 2 (two skills split by data source) is a split, and D107 allows a split only by exception. None of the six needs one: all six entry scripts already call the plugin's shared scripts/dispatch.sh and scripts/entry-common.sh.
Skill visibility, #11954: at a 200k window and 4 bytes per token, fleet listing demand is 155,570 characters against a 56,000-character budget, and 221 skills are starved. Option 3 keeps six listing entries, while option 1 keeps one. Trimming one plugin's descriptions removed only about 3% of demand, so removing whole entries is the larger lever.
Eval baselines: each skill has its own evals/evals.json. Five have 3 cases each, and audit-suppressions has 8, plus 4 plugin-level cases under plugins/code-metrics/evals/audit-suppressions-*. Each wave captures before.json on its pre-move tree and passes /evals:plugin-eval --baseline before.json --margin 5 before its leaves are removed. The cases' prompts name the old commands (for example /code-metrics:audit-size), so each after-run uses the router's form.
### Waves (each under the 262,144-byte cap)
Sizes are the git diff --no-renames bytes of each wave's mechanical move at HEAD eeac0c6b. Headroom is what remains under the cap for the router SKILL.md, the evals conversion, reference repoints and the changelog fragment.
Wave
Issue
Moves
Move diff bytes
Headroom
audit-* count after
1
#12619
create the router; size (33,555), complexity (49,215), type-debt (59,974)
142,744
119,400
3
2
#12620
coverage join.py (100,741) and test_join.py (133,865); leaf stays
234,606
27,538
3
3
#12621
rest of coverage
111,457
150,687
2
4
#12622
duplication
187,634
74,510
1
5
#12623
suppressions, the last leaf
179,514
82,630
0
The final count is 0. The whole move is 855,955 bytes, so it needs at least four waves. Five is the smallest workable plan: the join pair, duplication and suppressions each take more than half the cap, so no two of them can share a wave. The rest (waves 1 and 3, 254,201 bytes together) would leave only 7,943 bytes for the router and repoints. Moving all of coverage…
What the run says it did not do:
The per-wave byte figures come from exact git file sizes and line counts plus git's diff header layout, not from writing each wave's diff to disk and measuring it: this lane has no byte-count tool. Each wave's own done-when re-measures its PR diff.
The router SKILL.md, the evals conversion, reference repoints and changelog fragments are not written yet, so their bytes are not measured; the plan reserves headroom for them (smallest is wave 2 at 27,538 bytes).
No eval baselines were run (/evals:plugin-eval needs a host run); each wave captures before.json on its pre-move tree, per #12727 and the wave issues.
The commit b92833d, where #12619-#12623 were measured, is not in this shallow checkout, so I could not diff it against HEAD. The six directories' total still matches #12491's 409,976 bytes.
The issue's done-when text is copied from #12491, so its 'a comment here' meant #12491; the lane posts this plan on #12726. If the owner wants it on #12491 as well, it needs to be copied there.
review: skipped, because the run made no code change to review.
tidy: skipped, because the working tree has no change to tidy.
Activity
github-actions commentedon Nov 3, 2026
Proposed work class: work-class: read-only
Basis: automated intake triage; the lanes App applied this class.
Size: Small
Complexity: Medium
Uncertainty: Knowable
Flags: none
Blocked by: none
Understood: this is part 1 of 2 of the code-metrics audit-* consolidation. The deliverable is a comment on this issue with a sized wave plan. The plan needs the chosen consolidation target and its basis. It needs each wave's measured
git diff --no-renamesbyte size, each under 262144 bytes. The waves themselves get filed afterward from that plan.The done-when is exact, so I have no open questions. The related issue is the part 2 sibling, #12727-range title "part 2 of 2", which is a split sibling and not a duplicate. The un-split original in the open list may also overlap. A maintainer can confirm which is canonical.
Automated triage, applied by the lanes App.
melodic-automation-lanes commentedon Nov 3, 2026
This records a re-fire of an earlier refusal, not a new refusal. The lanes kill switch stopped run 41584881879, the work-resolve-issue run that
agent-readystarted, before it did any work; that run ended at 2026-11-03T05:45:27Z. work-unblock has now removed and addedagent-readyback to start a fresh run. A kill-switch refusal is no fault in this issue or the lanes, so it never counts against later re-fires; after limits.limit-stops-per-issue of them since a person last addedagent-readyor a run last reported, work-unblock waits longer before each one, up to 24 hours.github-actions commentedon Nov 3, 2026
github-actions commentedon Nov 3, 2026
melodic-automation-lanes commentedon Nov 3, 2026
The work-resolve-issue lane stopped on this issue (
report-delivered): the issue asks for a report and no change, and the run posted that report, so the issue closes.It closes the issue as completed.
In the run's words:
The run's report:
What the run says it did not do:
Run: https://github.com/melodic-software/claude-code-plugins/actions/runs/41586973483