Skip to content
Back to skills

Github Actions Troubleshooter

ASecurity

Diagnose and fix GitHub Actions workflow failures, CI/CD pipeline issues, YAML syntax errors, and workflow configuration problems. Use when debugging failed CI runs, fixing workflow errors, or optimizing GitHub Actions. Keywords: github actions, CI, workflow, pipeline, yml, yaml, actions failure, CI failure, workflow error

  • 666 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added February 8, 2026
toolspythongobashnodedebugginggitapici/cdsecurityperformance

Works with

  • api

Security analysis

A96/100
  • mediumInstalls packages at runtime which could introduce malicious dependencies

Pro shows the line behind each finding and how to fix it

Scanned February 12, 2026

npx -y skills add majiayu000/claude-skill-registry --skill github-actions-troubleshooter --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Github Actions Troubleshooter?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Github Actions Troubleshooter
[![Security: A β€” Skills Directory](https://www.skillsdirectory.com/api/skills/majiayu000-github-actions-troubleshooter/badge)](https://www.skillsdirectory.com/skills/majiayu000-github-actions-troubleshooter)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: github-actions-troubleshooter
description: Diagnose and fix GitHub Actions workflow failures, CI/CD pipeline issues, YAML syntax errors, and workflow configuration problems. Use when debugging failed CI runs, fixing workflow errors, or optimizing GitHub Actions. Keywords: github actions, CI, workflow, pipeline, yml, yaml, actions failure, CI failure, workflow error
---

# GitHub Actions Troubleshooter

Diagnoses and fixes GitHub Actions workflow failures and configuration issues.

## Instructions

When activated, follow this systematic troubleshooting approach:

### 1. Identify the Failure

**Get workflow status:**
```bash
gh run list --limit 5                    # Recent runs
gh run view <run-id>                     # Specific run details
gh run view <run-id> --log-failed        # Failed job logs only
```

**Analyze the failure:**
- Parse error messages from logs
- Identify which job/step failed
- Note the exit code and error type
- Check if it's intermittent or consistent

### 2. Common Failure Categories

#### **YAML Syntax Errors**
- Invalid indentation (must use spaces, not tabs)
- Missing required fields (`name`, `on`, `jobs`)
- Invalid step format
- Quote escaping issues

**Fix approach:**
- Read the workflow file with Read tool
- Validate YAML structure
- Check GitHub Actions syntax documentation
- Use Edit tool to fix syntax

#### **Dependency/Setup Issues**
- Node/Python/etc version mismatches
- Missing dependencies in package.json/requirements.txt
- Cache invalidation needed
- Setup action version incompatibility

**Fix approach:**
```yaml
# Pin versions explicitly
- uses: actions/setup-node@v4
  with:
    node-version: '20'
    cache: 'pnpm'
```

#### **Test/Build Failures**
- Tests failing in CI but passing locally
- Environment variable differences
- File path issues (case sensitivity on Linux)
- Missing environment secrets

**Fix approach:**
- Compare local vs CI environment
- Check for hardcoded paths
- Verify secrets are configured
- Add debugging output

#### **Permission Errors**
- `GITHUB_TOKEN` insufficient permissions
- File permission issues
- Branch protection violations

**Fix approach:**
```yaml
permissions:
  contents: write
  pull-requests: write
  checks: read
```

#### **Timeout/Performance Issues**
- Jobs exceeding 6-hour limit
- Slow dependency installation
- Missing caching
- Inefficient matrix strategies

**Fix approach:**
- Add caching for dependencies
- Parallelize independent jobs
- Optimize test suites
- Use workflow artifacts efficiently

### 3. Diagnostic Workflow

**Step 1: Read the workflow file**
```bash
# Find workflow files
fd -e yml -e yaml . .github/workflows
```

**Step 2: Get recent run logs**
```bash
# View latest failed run
gh run view --log-failed

# Or specific run by ID
gh run view 1234567890 --log
```

**Step 3: Identify root cause**
- Parse error messages
- Check for known patterns
- Review recent changes with git log
- Compare with working runs

**Step 4: Apply fix**
- Use Edit tool for workflow changes
- Test locally if possible
- Create PR for review
- Monitor next run

### 4. Common Fixes

#### **Format Check Failures (Prettier/ESLint)**
```yaml
# Before commit, run formatters
- name: Format code
  run: pnpm exec prettier --write .

# Or enforce in CI
- name: Check formatting
  run: pnpm exec prettier --check .
```

#### **Missing Environment Variables**
```yaml
env:
  NODE_ENV: production
  API_URL: ${{ secrets.API_URL }}

jobs:
  build:
    env:
      CUSTOM_VAR: value
```

#### **Caching Dependencies**
```yaml
- uses: actions/setup-node@v4
  with:
    node-version: '20'
    cache: 'pnpm'  # or 'npm', 'yarn'

# Or manual cache
- uses: actions/cache@v4
  with:
    path: ~/.cache
    key: ${{ runner.os }}-cache-${{ hashFiles('**/pnpm-lock.yaml') }}
```

#### **Matrix Strategy for Multiple Versions**
```yaml
strategy:
  matrix:
    node-version: [18, 20, 22]
    os: [ubuntu-latest, windows-latest]
jobs:
  test:
    runs-on: ${{ matrix.os }}
    steps:
      - uses: actions/setup-node@v4
        with:
          node-version: ${{ matrix.node-version }}
```

### 5. Project-Specific Context

**This project uses:**
- **Package Manager**: pnpm
- **Pre-commit checks**: `pnpm run pre-commit` (format + lint + typecheck)
- **Common CI tasks**: format check, typecheck, build, test

**Standard workflow pattern:**
```yaml
name: CI
on: [push, pull_request]
jobs:
  ci:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: pnpm/action-setup@v2
        with:
          version: 8
      - uses: actions/setup-node@v4
        with:
          node-version: '20'
          cache: 'pnpm'
      - run: pnpm install
      - run: pnpm run pre-commit
      - run: pnpm run test
      - run: pnpm run build
```

### 6. Output Format

Present findings as:

**πŸ” Diagnosis**
- Job: `format-check`
- Step: `Run prettier --check`
- Error: `Code style issues found in 11 files`
- Root Cause: Files not formatted with Prettier

**πŸ”§ Fix Applied**
```yaml
# File: .github/workflows/ci.yml:15
- name: Format check
  run: pnpm exec prettier --config .config/.prettierrc --check .
```

**βœ… Verification**
- Run locally: `pnpm exec prettier --write .`
- Commit formatted files
- Monitor next CI run

### 7. Prevention & Best Practices

**Pre-commit hooks:**
- Run formatters before commit
- Validate locally before pushing
- Use `pnpm run pre-commit`

**Workflow best practices:**
- Pin action versions (`actions/checkout@v4` not `@main`)
- Use caching for dependencies
- Set explicit timeouts
- Add descriptive step names
- Use `if: failure()` for debugging steps

**Security:**
- Minimize `GITHUB_TOKEN` permissions
- Don't log secrets
- Use `secrets` context, not env vars for sensitive data
- Review third-party actions before use

## Tools to Use

- **Read**: View workflow YAML files
- **Edit**: Fix workflow configuration
- **Bash(gh:*)**: Get run logs, workflow status
- **Bash(git:*)**: Check recent changes, blame
- **Grep**: Search for patterns in logs/workflows
- **WebFetch**: Check GitHub Actions documentation

## Example Activation

These user requests will trigger this skill:
- "Why is my GitHub Actions workflow failing?"
- "Fix the CI pipeline error"
- "The format check is failing in CI"
- "Help debug this workflow YAML"
- "My tests pass locally but fail in GitHub Actions"

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.