ci-fixer

jamesjlundin's avatarfrom jamesjlundin

Debug and fix CI/CD pipeline failures. Analyze workflow logs, identify issues, and apply fixes. Use when CI is failing, build errors occur, tests fail in CI, or pipeline is broken.

⭐8stars🔀0forks📁View on GitHub🕐Updated Jan 3, 2026

When & Why to Use This Skill

The CI Fixer skill is designed to automate the troubleshooting and repair of broken CI/CD pipelines. It streamlines the debugging process by analyzing workflow logs, reproducing build errors locally, and applying fixes for common issues like TypeScript mismatches, linting failures, and environment-specific test regressions, significantly reducing downtime in the development lifecycle.

Use Cases

  • Fixing 'Build Broke' errors by identifying and resolving TypeScript type mismatches or ESLint violations that block the deployment pipeline.
  • Debugging integration test failures that occur in CI but pass locally by auditing environment variables and service configurations like PostgreSQL or Redis.
  • Resolving failed database migrations during the deployment phase by checking schema consistency and connection strings.
  • Recovering from dependency installation failures by identifying corrupted lockfiles or missing packages within the CI environment.
nameci-fixer
descriptionDebug and fix CI/CD pipeline failures. Analyze workflow logs, identify issues, and apply fixes. Use when CI is failing, build errors occur, tests fail in CI, or pipeline is broken.
allowed-toolsRead, Grep, Glob, Bash

CI Fixer

Diagnoses and fixes CI/CD pipeline failures.

When to Use

  • "CI is failing"
  • "Build broke"
  • "Tests fail in CI but pass locally"
  • "Pipeline error"
  • "Deploy failed"

CI Workflows

Workflow Trigger Purpose
ci.yml PR, push Typecheck, lint, build, test
deploy.yml push to main Migrations, Vercel deploy
evals.yml PR, push LLM evaluations
ios-testflight.yml manual iOS deployment

Common Failures

1. TypeScript Errors

Symptom: tsc --noEmit fails

Diagnosis:

pnpm typecheck

Fixes:

  • Add missing type annotations
  • Fix type mismatches
  • Update type imports

2. ESLint Errors

Symptom: eslint . fails

Diagnosis:

pnpm lint

Auto-fix:

pnpm eslint . --fix
pnpm format

3. Build Failures

Symptom: pnpm -C apps/web build fails

Common causes:

  • Missing environment variables
  • Import errors
  • TypeScript errors not caught by tsc

Diagnosis:

pnpm -C apps/web build

4. Integration Test Failures

Symptom: pnpm test:integration fails

Common causes:

  • Database not running
  • Server not started
  • Rate limiting (disable in CI)
  • Missing test user

CI-specific:

  • Uses GitHub Actions PostgreSQL service
  • DISABLE_RATE_LIMIT=true
  • ALLOW_DEV_TOKENS=true

5. Migration Failures

Symptom: migrate:apply fails in deploy

Common causes:

  • Schema mismatch
  • Missing migration file
  • Database connection error

Diagnosis:

pnpm -C packages/db migrate:apply

6. Dependency Issues

Symptom: pnpm install fails

Fixes:

rm -rf node_modules pnpm-lock.yaml
pnpm install

Procedure

Step 1: Identify Failing Workflow

Check which workflow failed and what step.

Step 2: Read Workflow File

Read: .github/workflows/{workflow}.yml

Step 3: Reproduce Locally

Run the exact commands from the workflow:

# For ci.yml
pnpm install
pnpm tsc --noEmit
pnpm eslint .
pnpm -C apps/web build
pnpm -C packages/db migrate:apply
pnpm test:integration

Step 4: Check Environment

CI uses specific environment variables:

  • DATABASE_URL - PostgreSQL connection
  • DISABLE_RATE_LIMIT=true
  • ALLOW_DEV_TOKENS=true

Step 5: Apply Fix

Based on diagnosis, apply appropriate fix.

Step 6: Verify

Run full CI check locally:

pnpm typecheck && pnpm lint && pnpm -C apps/web build

Environment Differences

Local CI
Docker PostgreSQL GitHub Actions service
Docker Redis GitHub Actions service
Manual server start wait-on + background
Rate limiting enabled DISABLE_RATE_LIMIT=true
Real tokens ALLOW_DEV_TOKENS=true

Guardrails

  • DO NOT modify workflow files without understanding impact
  • DO NOT bypass failing checks without fixing root cause
  • Always reproduce failure locally before fixing
  • If fix is unclear, describe findings and ask for guidance