| name | fix-ci-failures |
| description | Diagnose and fix CI/CD failures by analyzing logs, reproducing locally, and applying fixes. Use when CI checks fail on pull requests. |
| mcp_fallback | none |
| category | ci |
Fix CI Failures Skill
Diagnose and fix CI failures systematically.
When to Use
- CI checks fail on PR
- Workflow runs fail
- Tests pass locally but fail in CI
- Need to debug CI issues
Quick Reference
gh pr checks <pr-number>
gh run view <run-id> --log-failed
./scripts/reproduce_ci.sh <run-id>
Workflow
- Check status - View failed PR checks
- Get logs - Download or view failure details
- Reproduce - Run same commands locally
- Fix issue - Apply necessary changes
- Verify - Test passes locally
- Push - Commit and push fix
- Monitor - Check CI passes
Common Failures
| Failure | Command | Fix |
|---|
| Trailing whitespace | just pre-commit-all | Stage and re-commit |
| Test failure | pixi run mojo test tests/ | Fix code, re-run tests |
| Markdown lint | npx markdownlint-cli2 --fix "**/*.md" | Commit fixes |
| Build error | Check imports/deps | Update and rebuild |
Diagnosis Workflow
gh pr checks 123
gh run view <run-id> --log-failed
gh run download <run-id>
./scripts/reproduce_ci.sh <run-id>
./scripts/run_ci_locally.sh
git add .
git commit -m "fix: address CI failure"
git push
gh pr checks 123 --watch
Error Handling
| Error | Cause | Fix |
|---|
| "Cannot find module" | Missing import or broken path | Fix import, check file structure |
| "Syntax error" | Invalid code | Correct syntax, test compile |
| "Test failed" | Logic error | Debug test, fix implementation |
| "Hook failed" | Formatting/whitespace | Run formatters, re-commit |
Scripts Available
scripts/get_ci_logs.sh - Download CI logs
scripts/reproduce_ci_failure.sh - Reproduce locally
scripts/run_ci_locally.sh - Run CI checks locally
scripts/fix_common_ci_issues.sh - Auto-fix common issues
Prevention
- Run pre-commit before pushing
- Run tests locally
- Check formatting before commit
- Review CI logs regularly
References
- Related skill:
quality-run-linters for linting
- Related skill:
run-precommit for pre-commit hooks
- Workflow configuration:
.github/workflows/