CI/CD workflow failure diagnosis and automated repair skills
Diagnoses CI/CD workflow failures and implements automated fixes for common errors.
npx claudepluginhub flexnetos/ripple-envThis skill inherits all available tools. When active, it can use any tool Claude has access to.
This skill provides expertise in diagnosing CI/CD workflow failures and implementing automated fixes. It combines log analysis, pattern recognition, and targeted repairs to quickly resolve pipeline issues.
The workflow-fixer skill activates when:
failed, broken, ci, workflow, pipeline, fix# Via GitHub CLI
gh run list --status failure --limit 5
gh run view <run-id> --log-failed
# Via MCP Tools (preferred when available)
# Use github-mcp-server-actions_list with method: "list_workflow_runs"
# Use github-mcp-server-get_job_logs with run_id and failed_only: true
| Pattern | Category | Common Fix |
|---|---|---|
npm ERR! ERESOLVE | Dependency | Update lockfile, use --legacy-peer-deps |
pip: No matching distribution | Dependency | Pin version, check Python version |
nix: error: path .* does not exist | Build | Check flake inputs, rebuild |
colcon build returned nonzero | Build | Fix ROS2 package CMakeLists/setup.py |
FAILED.*test_ | Test | Fix test logic or mark as flaky |
Error: Process completed with exit code 137 | Resource | OOM - optimize or increase memory |
Error: The operation was canceled | Resource | Timeout - increase timeout-minutes |
Error: Resource not accessible | Permission | Check GITHUB_TOKEN permissions |
# Extract error lines
grep -E "error|ERROR|Error|failed|FAILED|Failed" logs.txt | head -20
# Find stack traces
grep -A 10 "Traceback\|at .*\.ts:\|at .*\.js:" logs.txt
# Nix-specific errors
grep -E "error: |builder for .* failed" logs.txt
# NPM
rm -rf node_modules package-lock.json
npm install
# Pip/Python
pip install --upgrade pip
pip install -r requirements.txt --upgrade
# Nix
nix flake update
nix flake check --no-build
# Pixi
rm -f pixi.lock
pixi install
# Clean rebuild
rm -rf build install log
colcon build --symlink-install
# Nix rebuild
nix develop --command echo "rebuilt"
# Check for missing dependencies
nix flake show
# Run specific test with verbose output
pytest -xvs path/to/test.py::test_name
# Run with coverage to find issues
coverage run -m pytest path/to/test.py
coverage report -m
# Mark flaky test (last resort)
@pytest.mark.flaky(reruns=3)
def test_sometimes_fails():
...
# Add missing environment variable
env:
MY_VAR: ${{ secrets.MY_SECRET }}
# Fix permission issues
permissions:
contents: read
packages: write
# Add required setup step
- uses: actions/setup-python@v5
with:
python-version: '3.11'
Identify the failed run
gh run list --status failure --limit 1
Get failed job details
gh run view <run-id> --json jobs --jq '.jobs[] | select(.conclusion=="failure")'
Extract relevant logs
gh run view <run-id> --log-failed 2>&1 | tail -100
Identify error pattern
Error:, error:, FAILED, ExceptionTrace to source
Implement minimal fix
Verify fix
steps:
- uses: actions/checkout@v4
- uses: DeterminateSystems/nix-installer-action@v21
- uses: DeterminateSystems/magic-nix-cache-action@v13
- run: nix develop .#default --command pixi install
- run: nix develop .#default --command pixi run <command>
| Issue | Fix |
|---|---|
pixi.lock mismatch | Remove pixi.lock, run pixi install |
| Flake evaluation error | Check flake.nix, run nix flake check |
| ROS2 build failure | Check package.xml, CMakeLists.txt |
| macOS CUDA error | Ensure CUDA shell only on Linux |
| Disk space | Add cleanup step before build |
When GitHub MCP tools are available, use them for structured data:
# List failed workflow runs
actions_list(
method="list_workflow_runs",
owner="FlexNetOS",
repo="ripple-env",
workflow_runs_filter={"status": "failure"}
)
# Get failed job logs
get_job_logs(
owner="FlexNetOS",
repo="ripple-env",
run_id=12345,
failed_only=True,
return_content=True
)
Activates when the user asks about AI prompts, needs prompt templates, wants to search for prompts, or mentions prompts.chat. Use for discovering, retrieving, and improving prompts.
Search, retrieve, and install Agent Skills from the prompts.chat registry using MCP tools. Use when the user asks to find skills, browse skill catalogs, install a skill for Claude, or extend Claude's capabilities with reusable AI agent components.
This skill should be used when the user asks to "create an agent", "add an agent", "write a subagent", "agent frontmatter", "when to use description", "agent examples", "agent tools", "agent colors", "autonomous agent", or needs guidance on agent structure, system prompts, triggering conditions, or agent development best practices for Claude Code plugins.