fix(commands): stop /gh-issue-troubleshoot picking suites by entry count - #37610
Open
fabrizzio-dotCMS wants to merge 1 commit into
Open
fabrizzio-dotCMS wants to merge 1 commit into
fabrizzio-dotCMS wants to merge 1 commit into
Conversation
Audit of .claude/commands/ (the other never-reviewed half of Scout's slice) against real source. Step 6c told the model to register a new integration test in the MainSuite with the fewest @SuiteClasses entries. That rule is not real. #37583 established the actual one: pick whichever MainSuite* has the shortest current CI runtime, since the suites run in parallel and CI balances on wall-clock time. Entry count is not a proxy for it — MainSuite2b holds 302 entries against MainSuite2a's 52. The step now defers to docs/testing/INTEGRATION_TESTS.md and reads the current suite set from .github/test-matrix.yml rather than a hardcoded list. Also fixes the suite-class extraction in the validation script. It matched @SuiteClasses and @Suite.SuiteClasses but not @SelectClasses, which Junit5Suite1 uses. That suite's 15 classes were being captured only by accident: a javadoc line mentioning {@code @SuiteClasses} opened the block early. Javadoc lines are now skipped and all three annotation forms matched. Totals are unchanged (609 registered, 0 of 28 in the window) — the accidental match happened to produce the right answer, but would have broken the moment that comment was reworded. The other six commands check out: the four dot-issue-manage wrappers point at a skill that exists (.claude/skills/dot-issue-manage), and triage-pr-review.md makes no verifiable source claims. Refs #37576, #37577 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
11 tasks
Contributor
|
Claude finished @fabrizzio-dotCMS's task in 1m 17s —— View job ReviewI read both changed files and cross-checked the claims against the actual suite sources. Verification against source:
New IssuesNo issues found. Notes (non-blocking, no action needed):
Documentation and tooling only — no production code, no security/transaction/replay surface. LGTM. · |
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.
What
Follow-up to #37590, auditing
.claude/commands/— the other half of Scout's slice that no milestone in M0–M3 has read.A slash command was inventing the suite-selection rule
/gh-issue-troubleshootwrites fixes for GitHub issues, and step 6c registers any new integration test it creates. It said:That rule is not real. #37583 established the actual one the day before: pick whichever
MainSuite*has the shortest current CI runtime, measured across at least three recent PR runs, because the suites run in parallel and CI balances them on wall-clock time.Entry count is not a proxy for runtime.
MainSuite2bcurrently holds 302 entries againstMainSuite2a's 52 — following the old text, every new JUnit 4 test would have been funnelled into whichever suite happened to be shortest on paper, regardless of what CI actually does.Step 6c now defers to
docs/testing/INTEGRATION_TESTS.md→ "Registering Tests in a MainSuite (CI gate)" and reads the current suite set from.github/test-matrix.yml, rather than restating a list that #37583 explicitly says isn't fixed. Same principle as the.cursor/rules/fix in #37590: state the consequence, defer the mechanics to the doc that owns them.The validation script missed a whole suite, and passed by luck
scripts/validate-integration-test-registration.sh(added in #37590) matched@SuiteClassesand@Suite.SuiteClasses, but not@SelectClasses— the JUnit 5 formJunit5Suite1uses.Its 15 classes were being counted anyway, by accident: a javadoc line in that file mentioning
{@code @SuiteClasses}opened the extraction block early and the real@SelectClassesarray fell inside it. The totals were right for the wrong reason, and would have broken silently the moment anyone reworded that comment.Javadoc lines are now skipped, all three annotation forms are matched, and the per-suite counts are what you'd expect by hand:
Totals against current
main: 608 registered, 672 concrete test classes, 87 never run in CI, 0 of the 28 added in the last 60 days unregistered — unchanged from #37590 apart from one class removed upstream since.The rest of the directory checks out
The four
dot-issue-managewrappers (create-issue,find-issues,query-issue,update-issue) point at a skill that exists at.claude/skills/dot-issue-manage.triage-pr-review.mdandcheck-release-rollback.mdmake no claims verifiable against source.Testing
Documentation and tooling only — no production code. The script was run against
mainat 17fb9cd; per-suite extraction counts were verified by hand against each suite file, and the@SelectClasses/ javadoc interaction reproduced before and after the fix.Refs #37576, #37577
🤖 Generated with Claude Code