Skip to content

Conversation

@justin808
Copy link
Member

@justin808 justin808 commented Nov 20, 2025

Summary

Adds /run-skipped-tests as a shorter, more intuitive alias for the /run-skipped-ci GitHub PR comment command.

Problem

When users tried /run-skipped-tests in PR comments, nothing happened - no workflow triggered and no help message appeared. This was confusing because:

  1. The command seemed like it should work (it's more intuitive than /run-skipped-ci)
  2. The help detection workflow should have caught it and displayed available commands
  3. Users were left wondering if the command was broken or if they did something wrong

Root Cause

The /run-skipped-tests command wasn't recognized as either valid or invalid, so it fell into a gap where no workflow would trigger.

Changes

  1. Updated run-skipped-ci.yml: Added /run-skipped-tests as an alias that triggers the same workflow
  2. Updated detect-invalid-ci-commands.yml:
    • Added /run-skipped-tests to the valid commands list
    • Added it to the exclusion filter to prevent false "invalid command" detection
    • Updated help message to document the alias

Testing

Verified the logic works correctly:

  • /run-skipped-tests now triggers the run-skipped-ci workflow ✅
  • /run-skipped-tests does NOT trigger the help message (it's valid) ✅
  • /run-skipped-ci still works as before ✅
  • Invalid commands like /run-foo still trigger the help message ✅

Impact

  • Users can now use the more intuitive /run-skipped-tests command
  • The existing /run-skipped-ci command continues to work
  • Help messages now document both options

🤖 Generated with Claude Code

Summary by CodeRabbit

  • New Features

    • Added /run-skipped-tests command alias as an alternative way to trigger the skipped CI workflow.
  • Documentation

    • Updated help text and examples to document both /run-skipped-ci and /run-skipped-tests command options.

✏️ Tip: You can customize this high-level summary in your review settings.

This change adds /run-skipped-tests as a shorter, more intuitive alias
for the /run-skipped-ci GitHub PR comment command.

Changes:
- Updated run-skipped-ci.yml to accept both /run-skipped-ci and /run-skipped-tests
- Updated detect-invalid-ci-commands.yml to recognize /run-skipped-tests as valid
- Updated help message to document the alias

This fixes the issue where /run-skipped-tests would not trigger any
response, when users expected it to either work or show help.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Nov 20, 2025

Warning

Rate limit exceeded

@justin808 has exceeded the limit for the number of commits or files that can be reviewed per hour. Please wait 7 minutes and 35 seconds before requesting another review.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

📥 Commits

Reviewing files that changed from the base of the PR and between 3b0078c and fc86eab.

📒 Files selected for processing (3)
  • .github/read-me.md (5 hunks)
  • .github/workflows/run-skipped-ci.yml (2 hunks)
  • CONTRIBUTING.md (1 hunks)

Walkthrough

This pull request introduces a new command alias /run-skipped-tests for the existing /run-skipped-ci CI workflow trigger. The alias is added to both the CI command validation workflow to recognize it as a valid command and the run-skipped-ci workflow to respond to the new trigger alongside the original command.

Changes

Cohort / File(s) Summary
CI Command Validation
\.github/workflows/detect-invalid-ci-commands\.yml
Added /run-skipped-tests as an allowed command alias; updated validation exclusion checks and the valid commands list to recognize both /run-skipped-ci and /run-skipped-tests; updated user-facing documentation and help text to reflect the new alias with examples demonstrating both command forms
CI Workflow Trigger
\.github/workflows/run-skipped-ci\.yml
Expanded PR-comment condition to respond to both /run-skipped-ci and /run-skipped-tests (including newline-prefixed variants) as workflow triggers

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

  • Both files receive homogeneous, consistent updates that follow an identical pattern: adding the new alias to existing command lists and conditions
  • Changes are straightforward additions without complex logic modifications or structural refactoring
  • Verification primarily requires confirming the alias strings are correctly placed in validation/trigger logic and documentation is consistent

Possibly related PRs

Suggested labels

review-needed

Poem

🐰 A shortcut appears, /run-skipped-tests hops in,
Two paths to the same swift workflow win,
Command aliases dance, both names ring true,
Validation and triggers now answer on cue!

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and accurately summarizes the main change: adding a new alias command for CI workflows.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@claude
Copy link

claude bot commented Nov 20, 2025

Code Review - PR #2068: Add /run-skipped-tests alias

✅ Overall Assessment

This is a well-implemented, low-risk improvement that adds a more intuitive command alias. The changes are focused, consistent, and properly integrated across both workflows.


🎯 Strengths

  1. Excellent Problem Identification: The PR clearly identifies a UX gap where users tried a logical command name that didn't work
  2. Complete Implementation: Both workflow files updated consistently with proper trigger conditions
  3. Good Documentation: Help message updated to show both options with clear examples
  4. Backward Compatibility: Existing /run-skipped-ci command continues to work
  5. Consistent Pattern Matching: Uses both startsWith and contains('\n...') to handle commands at start or mid-comment

📋 Code Quality

Workflow Trigger Logic (.github/workflows/run-skipped-ci.yml:18-22)

  • ✅ Correctly handles both command variations
  • ✅ Consistent with existing pattern for /run-skipped-ci
  • ✅ Properly checks for command at start or after newline

Help Detection Exclusions (.github/workflows/detect-invalid-ci-commands.yml:20-22)

  • ✅ Added to exclusion list to prevent false "invalid command" detection
  • ✅ Maintains alphabetical consistency with other exclusions

Command Validation (.github/workflows/detect-invalid-ci-commands.yml:46)

  • ✅ Added to valid commands array for proper validation
  • ✅ Will correctly identify misspellings of the new alias

Documentation (.github/workflows/detect-invalid-ci-commands.yml:82-98)

  • ✅ Clear explanation that shows both command options
  • ✅ Good use of comments in example block
  • ✅ Maintains formatting consistency

⚠️ Suggestions & Considerations

1. Documentation Gap - Missing Updates

The following documentation files reference /run-skipped-ci but don't mention the new alias:

  • CONTRIBUTING.md (lines 429, 434, 451, 456)
  • .github/read-me.md (lines 7, 12, 36, 46, 50, 85)
  • .github/workflows/stop-run-skipped-ci.yml (line 83)

Recommendation: Update these files to mention /run-skipped-tests as an alias, following the pattern used in the help message.

Example for CONTRIBUTING.md line 429:

#### `/run-skipped-ci` (or `/run-skipped-tests`) - Enable Full CI Mode

Example for stop-run-skipped-ci.yml line 83:

'To re-enable full CI mode, use the `/run-skipped-ci` (or `/run-skipped-tests`) command.'

2. Consistency: Consider Alias for Stop Command

If /run-skipped-tests is more intuitive than /run-skipped-ci, users might also expect:

  • /stop-skipped-tests as an alias for /stop-run-skipped-ci

Not blocking: This could be a follow-up PR if user feedback suggests it would be helpful.

3. Testing Considerations

While the logic is straightforward, consider manual testing:

  • ✅ Verify /run-skipped-tests triggers the workflow
  • ✅ Verify invalid commands like /run-skipped-test (singular) show help
  • ✅ Verify commands work mid-comment after newline

🔒 Security Review

  • ✅ No security concerns
  • ✅ Uses existing permission checks (write access required)
  • ✅ No new attack vectors introduced
  • ✅ No exposure of sensitive data

🧪 Test Coverage

  • Automated Tests: None needed (GitHub Actions workflow syntax)
  • Manual Testing: Should verify both commands trigger correctly
  • CI Impact: Zero - pure alias, no behavioral changes

🚀 Performance

  • ✅ No performance impact
  • ✅ Same conditional evaluation as before
  • ✅ No additional API calls or resource usage

📝 Recommended Actions Before Merge

  1. Update documentation in CONTRIBUTING.md and .github/read-me.md to mention the alias
  2. Update stop-run-skipped-ci.yml message (line 83) to mention both command options
  3. Manual test: Post /run-skipped-tests comment on this PR to verify it works
  4. Manual test: Post /run-skipped-test (singular, invalid) to verify help appears

✨ Verdict

Approve with minor documentation updates recommended.

This is a clean, well-thought-out UX improvement. The code changes are solid and consistent. The only gap is incomplete documentation updates across related files.

Great work identifying a UX pain point and providing a simple, intuitive solution! 🎉


Review performed by Claude Code following React on Rails code review guidelines

The workflow map had incorrect filenames that don't exist:
- 'main.yml' -> should be 'integration-tests.yml'
- 'pro-package-tests.yml' -> should be 'pro-test-package-and-gem.yml'

This was causing workflow_dispatch to fail with "Workflow does not have
'workflow_dispatch' trigger" errors because it couldn't find the files.

Also added 'Rspec test for gem' (gem-tests.yml) to the map for completeness.

All workflows in the map have been verified to have workflow_dispatch triggers.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
@claude
Copy link

claude bot commented Nov 20, 2025

Code Review Feedback

✅ Overall Assessment

This is a well-implemented improvement that adds a more intuitive command alias. The changes are clean, consistent, and properly integrated across both workflow files.


👍 What's Done Well

  1. Comprehensive Implementation: Both workflow files are properly updated with consistent patterns

    • run-skipped-ci.yml: Added trigger conditions for the new alias
    • detect-invalid-ci-commands.yml: Added to valid commands list AND exclusion filter
  2. User Experience: The new /run-skipped-tests alias is more intuitive than /run-skipped-ci

    • Better discoverability for users unfamiliar with the CI-specific terminology
    • Help documentation clearly shows both options with examples
  3. No Breaking Changes: The existing /run-skipped-ci command continues to work

  4. Consistent Pattern: Both startsWith and contains checks included for newline handling (lines 18-21 in run-skipped-ci.yml)


📋 Documentation Updates Needed

The PR changes the workflow files but does not update the documentation files that reference these commands:

  1. CONTRIBUTING.md (line 429): Still only mentions /run-skipped-ci

    • Should update to: /run-skipped-ci (or /run-skipped-tests)
    • Example section should show both options
  2. .github/read-me.md (lines 7, 36, 46, 50, 85): Multiple references to /run-skipped-ci

    • Section heading should mention both commands
    • Examples should show the alias as an alternative

Recommendation: Update both documentation files to mention the new alias, similar to how the help message in detect-invalid-ci-commands.yml was updated.


🔍 Minor Observations

  1. Workflow Map Update (lines 119-125): I noticed the workflow map was updated with new workflow names:

    • Changed: 'Main test': 'main.yml''Integration Tests': 'integration-tests.yml'
    • Changed: 'Rspec test for gem': 'gem-tests.yml' (new entry)
    • Changed: 'React on Rails Pro - Package Tests' workflow file name

    Question: Are these workflow name changes part of this PR's scope, or were they from a previous change that needed to be synced? This seems unrelated to adding the command alias.

  2. Consistency with /stop-run-skipped-ci: Consider whether a shorter alias like /stop-tests would be useful for consistency. However, this is purely optional since the stop command is used less frequently.


✅ Security & Best Practices

  • ✅ No security concerns
  • ✅ Proper permission checks already in place (inherited from existing workflow)
  • ✅ No performance implications
  • ✅ Follows existing patterns for command detection
  • ✅ Maintains backward compatibility

🧪 Testing Verification

The PR description mentions manual testing was done:

  • /run-skipped-tests triggers the workflow
  • /run-skipped-tests doesn't trigger help message
  • ✅ Existing /run-skipped-ci still works
  • ✅ Invalid commands still trigger help

Recommendation: These tests look comprehensive. Consider documenting this test procedure in .github/read-me.md under "Testing Comment-Triggered Workflows" section.


📝 Action Items Before Merge

Required:

  1. Update CONTRIBUTING.md to document the new /run-skipped-tests alias
  2. Update .github/read-me.md to document the new alias
  3. Clarify if the workflow map changes (lines 119-125) are intentional or should be in a separate PR

Optional:
4. Consider adding the test procedure to .github/read-me.md
5. Consider adding /stop-tests alias for consistency (separate PR recommended)


🎯 Summary

This is a solid UX improvement with clean implementation. The main issue is missing documentation updates to match the workflow changes. Once the documentation is updated, this will be ready to merge.

Estimated effort to address: ~5 minutes to update the two markdown files.


🤖 Review generated by Claude Code

Updated all references to /run-skipped-ci in documentation to mention
the new /run-skipped-tests alias:

- CONTRIBUTING.md: Updated command header and example
- .github/read-me.md: Updated 6 references throughout the file
  - Command header
  - When to use section
  - Security section
  - Concurrency section
  - Utility workflows list
  - Conditional execution section

This ensures users can discover and use either command interchangeably.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
@claude
Copy link

claude bot commented Nov 20, 2025

Code Review - PR #2068

Summary

This PR adds /run-skipped-tests as an alias for the /run-skipped-ci command, making it more intuitive for users. The implementation is solid with comprehensive updates across workflow files and documentation.


Strengths

1. Excellent Problem Identification

  • Clear identification of the UX issue: users expected /run-skipped-tests to work
  • Good analysis of why it fell into a gap (not valid, not invalid → no response)

2. Comprehensive Implementation

  • ✅ Both workflow files updated correctly (run-skipped-ci.yml, detect-invalid-ci-commands.yml)
  • ✅ All documentation updated (.github/read-me.md, CONTRIBUTING.md)
  • ✅ Consistent messaging across all touchpoints

3. Important Bug Fix in Commit 2

The workflow filename corrections are critical:

-  'Main test': 'main.yml',
+  'Integration Tests': 'integration-tests.yml',
+  'Rspec test for gem': 'gem-tests.yml',
-  'React on Rails Pro - Package Tests': 'pro-package-tests.yml',
+  'React on Rails Pro - Package Tests': 'pro-test-package-and-gem.yml',

This fixes silent failures when triggering workflows via workflow_dispatch. Good catch! ✨

4. Proper Exclusion Logic

The if condition correctly excludes the new alias:

\!contains(github.event.comment.body, '/run-skipped-tests')

This prevents false positives in the invalid command detector.


🔍 Observations & Suggestions

1. Workflow Verification

I verified all workflow files in the map have workflow_dispatch triggers:

  • ✅ integration-tests.yml
  • ✅ gem-tests.yml
  • ✅ examples.yml
  • ✅ pro-integration-tests.yml
  • ✅ pro-test-package-and-gem.yml
  • ✅ pro-lint.yml

2. Pattern Consistency

The trigger conditions use both startsWith and contains patterns correctly:

startsWith(github.event.comment.body, '/run-skipped-tests') ||
contains(github.event.comment.body, '\n/run-skipped-tests')

This handles both commands at the start of comments and after newlines. Good! 👍

3. Minor: Command Ordering

In the help text and valid commands list, the alias is consistently shown second. This is a good UX pattern - it clearly indicates which is the primary command and which is the alias.

4. Testing Coverage

The PR description mentions manual testing verification, which is appropriate for workflow changes. Consider adding this to future PRs:

  • A screenshot of the command working
  • Link to a test PR where the command was triggered

🔒 Security & Access Control

  • ✅ No security concerns - alias inherits the same permission checks as original command
  • ✅ Authorization happens in run-skipped-ci.yml before any actions are taken
  • ✅ Both commands require write access to the repository

🎯 Performance Considerations

  • ✅ No performance impact - this is purely a routing/aliasing change
  • ✅ Concurrency protection remains in place (cancel-in-progress: true)
  • ✅ The exclusion filter adds minimal regex matching overhead

🧪 Test Coverage

This change is to GitHub Actions workflow YAML files, which don't have traditional unit tests. However:

  • ✅ The PR description indicates manual testing was performed
  • ✅ All logical branches are covered (both commands trigger same workflow)
  • ✅ Invalid command detection properly excludes the new alias

Recommendation: After merge, verify in a test PR that:

  1. /run-skipped-tests triggers workflows ✅
  2. /run-skipped-tests does NOT trigger help message ✅
  3. Invalid variants like /run-foo still trigger help ✅

📚 Documentation Quality

  • ✅ CONTRIBUTING.md updated with examples
  • ✅ .github/read-me.md updated comprehensively (8 changes across the file)
  • ✅ Help text in invalid command detector updated
  • ✅ Consistent use of "or" phrasing: /run-skipped-ci (or /run-skipped-tests)

🐛 Potential Issues

None found. The implementation is clean and follows GitHub Actions best practices.


📋 Checklist Against CLAUDE.md Guidelines

  • Formatting: YAML files (Prettier handles these)
  • Documentation: Updated for user-visible changes
  • Commits: Clear commit messages with Co-Authored-By
  • No linting required: YAML workflow files
  • File paths verified: All workflow filenames in the map exist and are correct

🎉 Overall Assessment

Recommendation: ✅ APPROVE

This is a high-quality PR that:

  1. Solves a real UX problem
  2. Includes comprehensive documentation updates
  3. Fixes a critical bug in workflow filename mappings (commit 2)
  4. Maintains backward compatibility
  5. Follows the project's conventions

Impact: Low-risk, high-value change. Users get a more intuitive command, and the workflow map bug fix prevents silent failures.

Special kudos for catching and fixing the workflow filename issues in commit 2 - that would have caused workflow_dispatch failures. Following the guidance from .claude/docs/managing-file-paths.md, you verified the paths and caught the discrepancy. 🎯


💡 Minor Enhancement Suggestion (optional, not blocking)

Consider adding a note to CLAUDE.md or the CI docs about how to test workflow triggers locally:

# Verify workflow file exists and has workflow_dispatch trigger
gh workflow view integration-tests.yml

This could help prevent the filename issues that were fixed in commit 2.


Great work! This PR is ready to merge. 🚀

@justin808 justin808 merged commit 4db050e into master Nov 20, 2025
28 of 29 checks passed
@justin808 justin808 deleted the justin808/fix-skipped-tests-alias branch November 20, 2025 03:46
justin808 added a commit that referenced this pull request Nov 20, 2025
## Summary

Adds `/run-skipped-tests` as a shorter, more intuitive alias for the
`/run-skipped-ci` GitHub PR comment command.

## Problem

When users tried `/run-skipped-tests` in PR comments, nothing happened -
no workflow triggered and no help message appeared. This was confusing
because:

1. The command seemed like it should work (it's more intuitive than
`/run-skipped-ci`)
2. The help detection workflow should have caught it and displayed
available commands
3. Users were left wondering if the command was broken or if they did
something wrong

## Root Cause

The `/run-skipped-tests` command wasn't recognized as either valid or
invalid, so it fell into a gap where no workflow would trigger.

## Changes

1. **Updated `run-skipped-ci.yml`**: Added `/run-skipped-tests` as an
alias that triggers the same workflow
2. **Updated `detect-invalid-ci-commands.yml`**: 
   - Added `/run-skipped-tests` to the valid commands list
- Added it to the exclusion filter to prevent false "invalid command"
detection
   - Updated help message to document the alias

## Testing

Verified the logic works correctly:
- `/run-skipped-tests` now triggers the run-skipped-ci workflow ✅
- `/run-skipped-tests` does NOT trigger the help message (it's valid) ✅
- `/run-skipped-ci` still works as before ✅
- Invalid commands like `/run-foo` still trigger the help message ✅

## Impact

- Users can now use the more intuitive `/run-skipped-tests` command
- The existing `/run-skipped-ci` command continues to work
- Help messages now document both options

🤖 Generated with [Claude Code](https://claude.com/claude-code)

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **New Features**
* Added `/run-skipped-tests` command alias as an alternative way to
trigger the skipped CI workflow.

* **Documentation**
* Updated help text and examples to document both `/run-skipped-ci` and
`/run-skipped-tests` command options.

<sub>✏️ Tip: You can customize this high-level summary in your review
settings.</sub>

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: Claude <noreply@anthropic.com>
justin808 added a commit that referenced this pull request Nov 20, 2025
…se-otp-timing

* origin/master: (27 commits)
  Fix doctor command false version mismatch for beta/prerelease versions (#2064)
  Fix beta/RC version handling in generator (#2066)
  Document Rails Engine development nuances and add tests for automatic rake task loading (#2067)
  Add /run-skipped-tests as alias for /run-skipped-ci (#XXXX) (#2068)
  Fix: Add Rails 5.2-6.0 compatibility for compact_blank (#2058)
  Break CI circular dependency with non-docs change (#2065)
  Fix CI safety check to evaluate latest workflow attempt (#2062)
  Fix yalc publish (#2054)
  Add Shakapacker 9.0+ private_output_path integration for server bundles (#2028)
  Consolidate all beta versions into v16.2.0.beta.10 (#2057)
  Improve reliability of CI debugging scripts (#2056)
  Clarify monorepo changelog structure in documentation (#2055)
  Bump version to 16.2.0.beta.10
  Bump version to 16.2.0.beta.9
  Fix duplicate rake task execution by removing explicit task loading (#2052)
  Simplify precompile hook and restore Pro dummy app to async loading (#2053)
  Add Shakapacker precompile hook with ReScript support to Pro dummy app (#1977)
  Guard master docs-only pushes and ensure full CI runs (#2042)
  Refactor: Extract JS dependency management into shared module (#2051)
  Add workflow to detect invalid CI command attempts (#2037)
  ...

# Conflicts:
#	rakelib/release.rake
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants