AgentSkillsCN

ci-fixer

调试并修复CI/CD流水线故障。分析工作流日志、定位问题并实施修复。适用于CI失败、构建错误、CI中测试失败或流水线中断时。

SKILL.md
--- frontmatter
name: ci-fixer
description: 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.
allowed-tools: Read, 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

WorkflowTriggerPurpose
ci.ymlPR, pushTypecheck, lint, build, test
deploy.ymlpush to mainMigrations, Vercel deploy
evals.ymlPR, pushLLM evaluations
ios-testflight.ymlmanualiOS deployment

Common Failures

1. TypeScript Errors

Symptom: tsc --noEmit fails

Diagnosis:

bash
pnpm typecheck

Fixes:

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

2. ESLint Errors

Symptom: eslint . fails

Diagnosis:

bash
pnpm lint

Auto-fix:

bash
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:

bash
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:

bash
pnpm -C packages/db migrate:apply

6. Dependency Issues

Symptom: pnpm install fails

Fixes:

bash
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

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

Step 3: Reproduce Locally

Run the exact commands from the workflow:

bash
# 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:

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

Environment Differences

LocalCI
Docker PostgreSQLGitHub Actions service
Docker RedisGitHub Actions service
Manual server startwait-on + background
Rate limiting enabledDISABLE_RATE_LIMIT=true
Real tokensALLOW_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