github-actions-plugin/skills/ci-autofix-reusable/SKILL.md
Generate a reusable GitHub Actions workflow for automated CI fixing with Claude Code. Use when creating a workflow_call entry multiple repos can invoke.
npx skillsauth add laurigates/claude-plugins ci-autofix-reusableInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Generate a reusable GitHub Actions workflow for automated CI failure analysis and remediation.
| Use this skill when... | Use something else when... |
|------------------------|---------------------------|
| Setting up a reusable auto-fix workflow for multiple repos | Setting up auto-fix for a single repo (/workflow:auto-fix) |
| Creating a caller workflow that invokes the reusable template | Fixing a single PR's checks (/git:fix-pr) |
| Customizing auto-fix inputs for different project types | Inspecting workflow runs manually (/workflow:inspect) |
find .github/workflows -maxdepth 1 -name 'reusable-ci-autofix.yml' -type ffind .github/workflows -maxdepth 1 -name 'auto-fix.yml' -type ffind .github/workflows -maxdepth 1 -name '*.yml' -type fgh secret listParse from $ARGUMENTS:
--setup: Create or update the reusable workflow in .github/workflows/reusable-ci-autofix.yml--caller: Create the caller workflow in .github/workflows/auto-fix.yml--workflows <names>: Comma-separated workflow names to monitor (for caller; default: auto-detect CI workflows)--dry-run: Show what would be created without writing filesExecute this workflow generation process:
.github/workflows/reusable-ci-autofix.yml already exists.github/workflows/auto-fix.yml already existsname: fieldsCLAUDE_CODE_OAUTH_TOKEN or ANTHROPIC_API_KEY secret is configuredIf --workflows provided, use those. Otherwise, auto-detect:
Good candidates:
Skip:
If --setup or reusable workflow is missing, create .github/workflows/reusable-ci-autofix.yml using the template from REFERENCE.md § Reusable Workflow.
Key customization points:
auto_fixable_criteria and not_auto_fixable_criteria defaults to match the project's tech stackverification_commands default to match the project's linter/formatter commandsmax_turns if needed (default: 50)If --caller or caller workflow is missing, create .github/workflows/auto-fix.yml using the template from REFERENCE.md § Caller Workflow.
Key customization points:
workflows: list — these are display names and must match each target workflow's name: exactlyauto_fixable_criteria override if the project has specific fixable patternsverification_commands for the project's toolsDisplay name convention: The caller workflow's name: follows <Domain>: <Action> (Auto-fix: CI failures is canonical for workflow_run-triggered remediation; the reusable definition itself uses Reusable: CI auto-fix). Quote values containing colons. See .claude/rules/workflow-naming.md.
CLAUDE_CODE_OAUTH_TOKEN or ANTHROPIC_API_KEY)Caller Workflow Reusable Workflow
(.github/workflows/auto-fix.yml) (.github/workflows/reusable-ci-autofix.yml)
workflow_run (failure)
workflow_dispatch (pr_number)
|
v
fan-out (if "all")
|
v
jobs.auto-fix ──calls──────────> on: workflow_call
|
v
Resolve PR branch
|
v
Checkout + Gather context
|
v
Dedup check (max 2 open auto-fix PRs)
|
v
Claude Code Action
|
+---+---+
| |
v v
Fixable Complex
| |
v v
Fix PR Open issue
| Guard | Purpose |
|-------|---------|
| !startsWith(commit, 'fix(auto):') | Prevent recursive auto-fix loops |
| head_branch != 'main' (caller) | Never auto-fix protected branches |
| Max 2 open auto-fix PRs | Prevent PR flooding |
| Concurrency group per branch | One auto-fix at a time per branch |
| max-turns limit | Cap Claude's iteration count |
| timeout-minutes: 30 | Prevent runaway jobs |
| Requirement | How to set up |
|-------------|---------------|
| CLAUDE_CODE_OAUTH_TOKEN or ANTHROPIC_API_KEY | Repository or org secret |
| contents: write | Included in workflow permissions |
| pull-requests: write | Included in workflow permissions |
| issues: write | For creating issues on complex failures |
| Context | Command |
|---------|---------|
| Check workflow exists | test -f .github/workflows/reusable-ci-autofix.yml |
| List CI workflows | grep -h '^name:' .github/workflows/*.yml |
| Check secrets | gh secret list |
| Recent failures | gh run list --status failure --json name,headBranch -L 10 |
| Validate YAML | python3 -c "import yaml; yaml.safe_load(open('.github/workflows/reusable-ci-autofix.yml'))" |
tools
Scaffold a new ComfyUI custom-node repo (pyproject, CI, release-please, vitest+pytest, JS extension skeleton) in the picker/gesture vein. Use when bootstrapping or init-ing a comfyui node pack.
tools
Orchestrate a ComfyUI node pack from idea to registry: scaffold, create + seed the repo, open the gitops adoption PR. Use when releasing or spinning up a new comfyui node pack.
testing
macOS EndpointSecurity/EDR high CPU & battery drain. Use when Kandji ESF / XProtect pegs a core; trace the exec storm via powermetrics + eslogger.
development
odiff pixel-by-pixel image diffing. Use when comparing screenshots, detecting visual regressions, diffing before/after PNGs, asserting golden images.