fix(development-codebase-tools): Opus 5 pass -- subagent_type, ceilings - #571
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
📚 Documentation Check ✅Verdict: Passed Plugin version was bumped (2.6.3 → 2.7.0) alongside the functional changes, matching the minor-bump policy for backward-compatible behavior changes. Root CLAUDE.md and the plugin's own CLAUDE.md were updated in the same PR to stay in sync, including correcting a stale subagent_type contract and the hooks/ file tree (verified hooks.json already exists on disk). README.md's summaries remain accurate at their level of detail. Plugin inventory parity between packages/plugins/ and marketplace.json holds. Documentation Check — PASSVersion bump (critical check): ✅ Satisfied
CLAUDE.md: ✅ Updated appropriately
README.md: ✅ No update needed
Plugin inventory parity: ✅ Clean
Changelog: None added — informational only per the validator config, not blocking. No missing or incorrect documentation updates found for this PR. ✨ No Documentation Updates NeededAll documentation appears to be up to date with the code changes. 🤖 Generated by Claude Documentation Validator | Mode: |
|
● Reviewed · 2026-08-05 23:50 UTC · 2 reviews · view run ↗
Applies the Opus 5 migration audit to the Suggestions
|
| 6. **Validate** — Run `git diff HEAD` to review the final changes. Confirm behavior is preserved. | ||
| 7. **Generate tests** (if not already covered) — Dispatch `test-writer-agent` to add regression tests for refactored code. | ||
| 4. **Apply patches** — Write the refactored code to disk. Apply incrementally — one logical change at a time. | ||
| 5. **Enforce style** — Run the project's own formatter and linter. Dispatch `style-enforcer-agent` only when the project has no configured formatter, or the refactor touched enough files that a convention drift is plausible. |
There was a problem hiding this comment.
allowed-tools (line 3) grants only Bash(git diff:*) and Bash(git show:*). Before this diff step 5 dispatched style-enforcer-agent and step 6 only ran git diff HEAD — both permitted. Now the primary validation path is unrunnable and the agent fallbacks are conditional, so a refactor lands on disk with no behavior-preservation check. Either add the needed Bash(...) entries, or state that the caller runs these — code-generator.md in this diff handles the same constraint that way.
| readability of the listing only — it is **not** a finding filter. For each category, run the | ||
| same pipeline again with `| wc -l` instead of `| head -N` and record the true total, so a | ||
| category with 400 `any` occurrences is never reported as 30. Carry both numbers into the | ||
| Step 5 summary table (`shown / total`), and if total > shown, say so explicitly rather than |
There was a problem hiding this comment.
🔵 info · correctness — The any listing command uses -l | head -30 (file paths) while the count command drops -l (occurrences), so shown / total mixes units in one cell — e.g. 30 files against 400 occurrences.
There was a problem hiding this comment.
Caution
91af2f2 to
07808d3
Compare
|
Rebased onto Finding 1 — the ROI ban was self-contradicting ( Finding 2 — Suggestion — Suggestion — CVSS business-impact multiplier — removed. CVSS 3.1 base scoring stays, and the vector string is now published alongside the score. The 1.0-2.0x multiplier is gone: it scaled a real published score by an unmeasured factor while the output still read as CVSS. Business impact is now reported as prose in the finding's Impact field, and genuine contextual severity changes go through CVSS's own temporal/environmental metrics with the full modified vector shown. Nothing downstream referenced an adjusted score.
No version bump — still 2.7.0, since these are fixes to that same unreleased change. |
|
@request-claude-review |
There was a problem hiding this comment.
Note
✅ Approved — see full review in the sticky comment ↑
|
↻ Reviewing now · view run ↗ This comment will update when the review completes. Findings will appear in the sticky summary above. |
Remove fabricated agent references (agent-capability-analyst, Agent Optimizer), replace invented confidence percentages with qualitative match bands, add hard delegation ceilings plus a when-NOT-to-delegate section to agent-orchestrator, drop the "security debt in hours" estimate, delete the 15-item deliverables checklist and the re-read-your-own-output self-review pass, and bound the output of every agent whose report feeds another agent's context. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…vented ROI math Replace analyze-tech-debt's ROI formula (both operands invented) with evidence-cited impact/effort bands, drop vulture's --min-confidence 80 floor, make strengthen-types' head -N truncation visible via companion wc -l totals, and move analyze-test-coverage's --min-coverage filter downstream of criticality scoring so a well-covered file with an untested auth branch still ranks. Also drop unused Task from strengthen-types' allowed-tools. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…findings in skills Make delegation conditional in explore-codebase, debug-issue and refactor-code (all three dispatched unconditionally, including for single-Grep and single-edit work), default analyze-code to the one-agent overview path instead of the three-agent deep path, and drop unused Task grants from audit-accessibility and refactor-code. Recall fixes: analyze-bundle no longer lists "only findings with a concrete fix", analyze-migrations states its pattern tables are a checklist rather than an allowlist, and the tree-shaking greps get companion counts. Also fixes broken references in explain-file-guide: three agent names were missing the -agent suffix and refactorer-agent was dispatched without being in allowed-tools. Removes the maintainability score and the estimated-coverage number, neither of which is measured. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…p to 2.7.0 CLAUDE.md documented cross-plugin delegation as Task(subagent_type:plugin-name:skill-name). subagent_type names an AGENT, never a skill, and the value must match an agent's frontmatter name: field rather than its filename. Corrects the line and adds the enumeration command. Also adds the missing hooks/hooks.json to the file tree, updates the analyze-tech-debt and agent-orchestrator entries to match their new behavior, and bumps 2.6.3 -> 2.7.0. The root CLAUDE.md table had drifted to 2.6.2 while plugin.json was already at 2.6.3; both now read 2.7.0. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…agram skills mermaid-diagram Rule 9 restated Rules 1-8 verbatim as a trailing self-check. The skill has allowed-tools: [] — no renderer — so it could not verify anything; it was a re-read of just-written output. Removed, and the "Fixing Broken Diagrams" step that referenced it now says plainly that the corrected diagram is unverified. diagram-excalidraw stated the same constraints in three layers: the upfront Critical Implementation Rules, a Validation Checklist in SKILL.md, and Pre/During/Post-Generation checklists in references/validation.md. Collapsed to the single upfront statement, folding in the two constraints only the checklists carried (unique IDs, label bindings). The one real check — does the written JSON parse — is kept, since that is grounding rather than self-review. references/validation.md keeps its algorithm and Common Bugs sections and is now framed as a debugging reference. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
analyze-tech-debt: Step 6 categorized items as "Quick Wins (high ROI, <4h effort)" one line after Step 5 banned ROI numbers and hour estimates, so following it literally re-emitted the fabricated metric this branch removed. The roadmap now groups by observable blast radius (Mechanical / Structural / Architectural: files touched, interface changed, tests present). refactor-code: Steps 5-6 instructed running the project's formatter, linter, and tests, but allowed-tools granted only git diff and git show, so a refactor could land with no behavior-preservation check at all. Widened allowed-tools to the common runner prefixes and made validation mandatory: tests covering the touched code, or - when none exist - a code-explainer-agent behavior-equivalence review. Neither available means the refactor is reported unverified. debug-issue: Step 5 said "apply the agent's recommended fix" on the self-fix path where no agent ran. strengthen-types: the explicit-any listing used grep -l (files) while the total used occurrences, so "shown / total" compared two units. Both halves are now occurrences; file counts are reported separately and labeled. security-analyzer: dropped the 1.0-2.0x business-impact multiplier. It scaled a real CVSS 3.1 score by an unmeasured factor while the output still read as CVSS. Base scoring stays; contextual severity now goes through CVSS's own temporal and environmental metrics with the vector shown. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
07808d3 to
3766b0b
Compare
Applies the Opus 5 config-migration audit to
development-codebase-tools— 10 agents, 13 skills, 2 reference guides, and the plugin's own docs. Every.mdunder the plugin was read in full. No other plugin touched.The highest-leverage fix:
CLAUDE.mddocumentedsubagent_typewrongThe plugin's
CLAUDE.mdsaid:subagent_typenames an AGENT, never a skill. Skills aren't dispatchable throughTaskat all — they're slash commands. This one line is why other files in the marketplace picked up the wrong cross-plugin syntax, so it matters beyond this plugin. Corrected toplugin-name:agent-name, with the added detail that the value must match an agent's frontmattername:(not its filename —agents/context-loader.mddeclaresname: context-loader-agent), plus the enumeration command so the next person checks instead of guessing.Changes by delta
Delta 1 — Opus 5 self-verifies, so ceremony is dead weight
mermaid-diagram: Rule 9 restated Rules 1-8 verbatim as a trailing self-check. Withallowed-tools: []there's no renderer, so it could not verify anything — it was a re-read of just-written output. Removed. The "Fixing Broken Diagrams" step that referenced it now states plainly that the corrected diagram is unverified.diagram-excalidraw: the same constraints appeared in three layers (upfront rules, a SKILL.md Validation Checklist, and Pre/During/Post-Generation checklists inreferences/validation.md). Collapsed to the single upfront statement, folding in the two constraints only the checklists carried. Kept the one real check — does the written JSON parse — since that is grounding, not self-review.code-generator-agent: dropped the "re-read every generated file and verify" pass; the standards now apply while writing. Noted that this agent has noBash, so it must name the checks the caller should run rather than implying it ran them.performance-analyzer-agent: deleted the 15-item deliverables checklist, which mandated a completeness sweep.Kept as grounding (constrains claims against reality, unlike re-reading your own work):
debug-assistant's "reproduce before fixing";pattern-learner/refactorer's "3+ examples before calling it a pattern";strengthen-types' post-mutationtsc --noEmit.Delta 2 — ceilings instead of floors, plus when-NOT-to-delegate
agent-orchestrator-agent: added hard ceilings stated as ceilings (4 per parallel group, 8 dispatches per run, 2 levels of recursion, 1 meta-agent) and a when-NOT-to-delegate section. Softened "Launch all agents simultaneously… Maximum efficiency, minimum time", "Maximize parallel execution opportunities", and "Recursive Decomposition… Handles arbitrary depth". The meta-agent fleet was gated only on "when possible"; it is now opt-in and capped at 1.explore-codebase: delegated unconditionally, though its own advertised example ("where is the API rate limiting implemented?") is a single Grep. Now conditional.debug-issueStep 4,refactor-code(3 unconditional dispatches for "clean up this function"): now conditional.analyze-code: defaulted ambiguous depth todeep, the three-agent path. Now defaults to the one-agentoverviewand escalates on evidence. This also resolves a disagreement —explain-file-guide.mdalready documenteddefault: overview.Taskgrants: bareTaskfromaudit-accessibilityandstrengthen-types(neither body mentions delegation), andagent-orchestrator-agentfromrefactor-code(never dispatched).Delta 3 — coverage first, filter downstream
analyze-dead-code:vulture --min-confidence 80filtered below the prompt layer entirely — unreachable by any wording. Removed. Step 4 already annotates false positives rather than dropping them, so the CLI floor was redundant suppression.analyze-test-coverage:--min-coverage 80ran before the criticality scoring that exists to catch the 85%-covered file whose uncovered lines are the auth branch. Default is now off and it applies after ranking.strengthen-types: 7 grep categories truncated withhead -N, only one counted. Added companionwc -ltotals and ashown / totalline in the report. Same fix foranalyze-bundle's tree-shaking greps (itsls -lhStruncations are size-sorted and left alone).analyze-bundle: "List only findings with a concrete fix" dropped the biggest number on the page — a 90 KB dependency with no replacement. Now reported under "Known cost, no fix identified".analyze-migrations: its three pattern tables read as an exhaustive allowlist; now stated as a checklist, with instructions to report dangerous patterns found outside it. Kept the 20-most-recent scope cap (a scope choice, not a finding filter).CRITICALemphasis fromstyle-enforcer.Invented numbers
analyze-tech-debt:ROI = (monthly_impact × 12) / effort— three layers of arithmetic over two fabricated seeds ("hours/month lost", "hours to fix"), mandated as required output. Replaced with impact/effort bands that must cite the signal justifying them (commit count, file size, nesting depth).agent-orchestrator: confidence percentages about its own judgment → qualitative Strong/Partial/Weak. "Overall Confidence: [0-100%]", "Coverage: [Percentage]", and "Execution Efficiency: [Parallel speedup]" → observed lists and counts.security-analyzer: "Estimated security debt in hours" removed.explain-file-guide:maintainability: number // Score 0-100removed;coverage: number // Estimated test coverage→hasTests: boolean, pointing atanalyze-test-coveragewhen a real number is wanted.analyze-code: "maintainability score" → the concrete complexity signals actually observed.Kept (inputs are measured, which is the whole test):
analyze-test-coverage's(100 - line_coverage) * 0.5 + …, fed by real coverage output;pattern-learner's "90% of files follow X", which is countable.Delta 4 — length only comes down when asked
Added explicit length lines, prioritized by whether the output feeds another agent's context:
context-loader-agentandexplore-codebase(its output is input to/plan) capped at 100 lines; thenagent-orchestrator,debug-assistant(was mandating a monitoring plan for a typo fix),performance-analyzer,security-analyzer(was producing a 6-month roadmap even on atargetedscope),style-enforcer(per-violation blocks over afull-codebasedefault),pattern-learner,analyze-tech-debt.Kept:
code-explainer's "a 30-line utility gets a short explanation".Broken references
agent-capability-analystwas referenced twice inagent-orchestrator.mdand does not exist in any agent's frontmattername:anywhere in the marketplace — it would fail at dispatch. Removed, along with the fabricatedAgent Optimizermeta-agent.Prompt EngineerandPattern Learnerare real and now carry their actual dispatch names.explain-file-guide.mddispatchedcode-explainer/security-analyzer/performance-analyzerwithout the-agentsuffix — three names that resolve to nothing. Fixed. It also listedrefactorer-agentin the architectural path whilerefactorer-agentis absent from itsallowed-tools, so that dispatch would have been blocked; removed with a note explaining why.Version bump
MINOR,
2.6.3→2.7.0.The two sources disagreed before this PR:
plugin.jsonwas already at2.6.3while the rootCLAUDE.mdtable still read2.6.2. Both now read2.7.0. Also added the missinghooks/hooks.jsonto the plugin CLAUDE.md file tree.Findings in the brief that do not exist here
Reported rather than fixed, since inventing a fix would be worse than saying so:
references/analysis-rubric.md("don't invent problems") — not in this plugin.findlocates exactly one copy, inskill-management:packages/plugins/skill-management/skills/skill-doctor/references/analysis-rubric.md. The phrase "invent problems" appears nowhere underdevelopment-codebase-tools.agents/agent-tester.md(coverage ratios with unknowable denominators) — lives indevelopment-productivity, not here.Test plan
1. Every agent dispatch name in the marketplace (27 agents; dispatch name is frontmatter
name:, never the filename):2. Every
subagent_typethis plugin dispatches resolves to a real agent:Only the two documentation placeholders in
CLAUDE.mdremain unmatched, which is correct — they are syntax templates. All 8 real dispatches (code-explainer-agent,context-loader-agent,debug-assistant-agent,performance-analyzer-agent,refactorer-agent,security-analyzer-agent,style-enforcer-agent,test-writer-agent) resolve.3. No fabricated references or stale facts remain:
The only
80%left isperformance-analyzer.md:184, the Pareto principle — not a stale pricing claim.4. Plugin validation:
5. Format and markdown lint:
Decisions left open
Two items are genuine judgment calls and were deliberately not resolved:
security-analyzer.md:110— the CVSS business-impact multiplier. "Apply business impact multipliers (revenue/reputation/regulatory/data sensitivity: 1.0-2.0x)." CVSS 3.1 itself is a real published rubric with defined inputs, and it stays. The multiplier is different: it takes a real CVSS base score and scales it by a factor nobody measured, producing a number that still looks like CVSS. Removing it loses genuine prioritization signal; keeping it launders a guess through a credible-looking score. Left as-is.debug-assistant.md:29— the 0–1 confidence score on root-cause hypotheses. Ranking competing hypotheses is real and useful, anddebug-issueStep 4 consumes the ranking to pick which fix to try. But a numeric 0–1 score implies a calibration that does not exist, and "0.85" is not more informative than "most likely". A qualitative ranking would preserve the ordering without the false precision. Left as-is;debug-issue's wording still refers to confidence scores, so the two move together.Also worth a decision, though outside the brief's explicit list:
model:frontmatter across this plugin mixes pinned ids (claude-opus-5,claude-sonnet-5) with self-updating aliases (opus,sonnet). Aliases are generally preferable since they track model releases. Not changed —model:andeffortLevelare yours to set.🤖 Generated with Claude Code
AI-Generated Description
Applies the Opus 5 config-migration audit to
development-codebase-tools— 10 agents, 13 skills, 2 reference guides, and the plugin's own docs. No other plugin touched.Headline:
CLAUDE.mddocumentedsubagent_typewrongThe plugin's
CLAUDE.mdsaid cross-plugin delegation usesTask(subagent_type:plugin-name:skill-name).subagent_typenames an AGENT, never a skill. Skills aren't dispatchable throughTaskat all — they're slash commands. That one line is why other files in the marketplace picked up the wrong syntax, so it matters beyond this plugin. Corrected toplugin-name:agent-name, with the detail that the value must match an agent's frontmattername:and not its filename (agents/context-loader.mddeclaresname: context-loader-agent), plus the enumeration command so the next person checks instead of guessing.Changes by delta
Delta 1 — Opus 5 self-verifies, so ceremony is dead weight
mermaid-diagram: Rule 9 restated Rules 1–8 verbatim as a trailing self-check. Withallowed-tools: []there is no renderer, so it verified nothing — it was a re-read of just-written output. Removed; the "Fixing Broken Diagrams" step now states plainly that the corrected diagram is unverified.diagram-excalidraw: the same constraints appeared in three layers (upfront rules, a SKILL.md Validation Checklist, and Pre/During/Post-Generation checklists inreferences/validation.md). Collapsed to the single upfront statement, folding in the two constraints only the checklists carried. Kept the one real check — does the written JSON parse.code-generator-agent: dropped the "re-read every generated file and verify" pass; the standards now apply while writing. Added that this agent has noBash, so it must name the checks the caller should run rather than implying it ran them.performance-analyzer-agent: deleted the 15-item deliverables checklist that mandated a completeness sweep.Kept as grounding (constrains claims against reality, unlike re-reading your own work):
debug-assistant's "reproduce before fixing";pattern-learner/refactorer's "3+ examples before calling it a pattern";strengthen-types' post-mutationtsc --noEmit.Delta 2 — ceilings instead of floors, plus when-NOT-to-delegate
agent-orchestrator-agent: ceilings stated as ceilings (4 per parallel group, 8 dispatches per run, 2 levels of recursion, 1 meta-agent) and a when-NOT-to-delegate section. Softened "Launch all agents simultaneously… Maximum efficiency, minimum time", "Maximize parallel execution opportunities", and "Recursive Decomposition… Handles arbitrary depth". The meta-agent fleet was gated only on "when possible"; now opt-in and capped at 1.explore-codebase: delegated unconditionally, though its own advertised example ("where is the API rate limiting implemented?") is a single Grep. Now conditional.debug-issueStep 4 andrefactor-code(3 unconditional dispatches for "clean up this function"): now conditional.debug-issueStep 5 no longer assumes the fix came from an agent.analyze-code: defaulted ambiguous depth todeep, the three-agent path. Now defaults to one-agentoverviewand escalates on evidence — which also resolves a disagreement, sinceexplain-file-guide.mdalready documenteddefault: overview.Taskgrants: bareTaskfromaudit-accessibilityandstrengthen-types(neither body mentions delegation), andagent-orchestrator-agentfromrefactor-code(never dispatched).Delta 3 — coverage first, filter downstream
analyze-dead-code:vulture --min-confidence 80filtered below the prompt layer entirely — unreachable by any wording. Removed. Step 4 already annotates false positives rather than dropping them, so the CLI floor was redundant suppression.analyze-test-coverage:--min-coverage 80ran before the criticality scoring that exists to catch the 85%-covered file whose uncovered lines are the auth branch. Default is now off, applied after ranking, with a count of what it removed.strengthen-types: 7 grep categories truncated withhead -N, only one counted. Added companionwc -ltotals plus ashown / totalline — and an explicit unit rule, since the original paired agrep -lfile listing with an occurrence count ("30 of 400" that was really 30 files of 400 occurrences).analyze-bundle: samehead -Nfix for the tree-shaking greps (thels -lhStruncations are size-sorted and left alone). "List only findings with a concrete fix" dropped the biggest number on the page — a 90 KB dependency with no replacement — so those now report under "Known cost, no fix identified". A clean result must also say which modules were inspected.analyze-migrations: its three pattern tables read as an exhaustive allowlist; now a checklist, with instructions to report dangerous patterns found outside it. Kept the 20-most-recent scope cap (a scope choice, not a finding filter).CRITICALemphasis fromstyle-enforcer.Invented numbers
analyze-tech-debt:ROI = (monthly_impact × 12) / effort— three layers of arithmetic over two fabricated seeds ("hours/month lost", "hours to fix"), mandated as required output. Replaced with impact/effort bands that must cite the signal justifying them (commit count, file size, nesting depth), and a roadmap grouped Mechanical / Structural / Architectural by observable blast radius instead of by guessed cost.agent-orchestrator: confidence percentages about its own judgment → qualitative Strong/Partial/Weak. "Overall Confidence: [0-100%]", "Coverage: [Percentage]", "Execution Efficiency: [Parallel speedup]" → observed lists and counts.security-analyzer: "Estimated security debt in hours" removed.explain-file-guide:maintainability: number // Score 0-100removed;coverage: number // Estimated test coverage→hasTests: boolean, pointing atanalyze-test-coveragewhen a real number is wanted.analyze-code: "maintainability score" → the concrete complexity signals actually observed.Kept (inputs are measured, which is the whole test):
analyze-test-coverage's(100 - line_coverage) * 0.5 + …, fed by real coverage output;pattern-learner's "90% of files follow X", which is countable.Delta 4 — length only comes down when asked
Explicit length lines, prioritized by whether the output feeds another agent's context:
context-loader-agentandexplore-codebase(its output is input to/plan) capped at 100 lines; thenagent-orchestrator,debug-assistant(was mandating a monitoring plan for a typo fix),performance-analyzer,security-analyzer(was producing a 6-month roadmap even on atargetedscope),style-enforcer(per-violation blocks over afull-codebasedefault),pattern-learner,analyze-tech-debt.Kept:
code-explainer's "a 30-line utility gets a short explanation".Broken references and unrunnable instructions
agent-capability-analystwas referenced twice inagent-orchestrator.mdand exists in no agent's frontmattername:anywhere in the marketplace — it would fail at dispatch. Removed, along with the fabricatedAgent Optimizermeta-agent.Prompt EngineerandPattern Learnerare real and now carry their actual dispatch names.explain-file-guide.mddispatchedcode-explainer/security-analyzer/performance-analyzerwithout the-agentsuffix — three names that resolve to nothing. Fixed. It also listedrefactorer-agentin the architectural path while that agent is absent from itsallowed-tools, so the dispatch would have been blocked; removed with a note saying why.refactor-codevalidation was unrunnable, and is now mandatory. Step 6 said "confirm behavior is preserved" whileallowed-toolsgranted no test runner, formatter, or linter — the only way to comply was to read your own diff. Added the runner prefixes those steps need (npm/yarn/pnpm/bun,nx,vitest,jest,tsc,eslint,prettier,pytest,go,cargo,mvn/gradle) and made the check binary: either the tests covering the touched code run and pass, or — when no test covers it —code-explainer-agentreviews the before/after pair for behavior equivalence. If neither can run, the refactor is reported unverified rather than complete.Version bump
MINOR,
2.6.3→2.7.0.The two sources disagreed before this PR:
plugin.jsonwas already at2.6.3while the rootCLAUDE.mdtable still read2.6.2. Both now read2.7.0. Also added the missinghooks/hooks.jsonto the plugin CLAUDE.md file tree.Findings in the brief that do not exist here
Reported rather than fixed, since inventing a fix would be worse than saying so:
references/analysis-rubric.md("don't invent problems") — not in this plugin.findlocates exactly one copy, inskill-management:packages/plugins/skill-management/skills/skill-doctor/references/analysis-rubric.md. The phrase "invent problems" appears nowhere underdevelopment-codebase-tools.agents/agent-tester.md(coverage ratios with unknowable denominators) — lives indevelopment-productivity, not here.Test plan
1. Every
subagent_typethis plugin dispatches resolves to a real agent. Dispatch name is frontmattername:, never the filename:Only the two documentation placeholders in
CLAUDE.mdremain unmatched, which is correct — they are syntax templates. All 8 real dispatches (code-explainer-agent,context-loader-agent,debug-assistant-agent,performance-analyzer-agent,refactorer-agent,security-analyzer-agent,style-enforcer-agent,test-writer-agent) resolve.2. No fabricated references or stale facts remain:
$ grep -rniE 'agent-capability-analyst|agent-optimizer|claude-agent-discovery|mcp__nx_mcp__|MultiEdit|budget_tokens|claude-haiku' \ packages/plugins/development-codebase-tools/ (no matches)The only
80%left isperformance-analyzer.md:184, the Pareto principle — not a stale pricing claim.3. Plugin validation:
4. Format and markdown lint:
bunx nx format:write --uncommitted, thenbunx markdownlint-cli2 --fixover the plugin — 200 files, 0 errors.Decisions left open
debug-assistant.md:33-34— the 0–1 confidence score on root-cause hypotheses. Ranking competing hypotheses is real and useful, anddebug-issueStep 4 consumes the ranking to pick which fix to try. But a numeric 0–1 score implies a calibration that does not exist, and "0.85" is not more informative than "most likely". A qualitative ranking would preserve the ordering without the false precision. Left as-is;debug-issue:101still refers to confidence scores, so the two move together.Also worth a decision, though outside the brief's list:
model:frontmatter across this plugin mixes pinned ids (claude-opus-5,claude-sonnet-5) with self-updating aliases (opus,sonnet). Aliases track model releases and are generally preferable. Not changed —model:andeffortLevelare yours to set.For the record, one item listed as open in the first draft of this PR was resolved during review:
security-analyzer.md's CVSS business-impact multiplier (1.0-2.0x) is gone. It scaled a real CVSS base score by a factor nobody measured and kept the CVSS label, so the output laundered a guess through a credible-looking number. Business impact is now prose in the finding's Impact field, and genuine severity context goes through CVSS 3.1's own temporal/environmental metrics with the full modified vector shown — reproducible, unlike a bare multiplier.🤖 Generated with Claude Code