{"name":"fix-failing-ci-checks","description":"Diagnoses red checks with the gh CLI - list what failed, pull the failed GitHub Actions job log, find the first real error, reproduce it locally, then propose a fix and apply it only after approval. Use when CI or pull request checks fail, a build job turns red, or code that works locally breaks in CI.","category":"debugging","tags":["ci","github-actions","debugging"],"models":["any"],"proven":false,"passing_families":0,"model_testing":"Not yet model-tested; testing Jan 2027","url":"https://theskillvault.ai/skills/fix-failing-ci-checks","api_url":"https://theskillvault.ai/api/skills/fix-failing-ci-checks","raw_url":"https://theskillvault.ai/api/skills/fix-failing-ci-checks/raw","body":"# Fix failing CI checks\n\nWhen a pull request turns red, read the log before guessing. Most failures are one line, buried under hundreds.\n\n## When to use\n- A pull request shows failing checks on GitHub.\n- A GitHub Actions job fails but the code works on your machine.\n- You want a short summary of why CI failed before fixing anything.\n\n## When not to use\n- You are setting up CI for the first time. Use configure-github-actions-ci.\n\n## Steps\n1. Check the CLI: `gh auth status`. If logged out, run `gh auth login` yourself.\n2. Find the PR: `gh pr view --json number,url` on the branch, or use the number you were given.\n3. List checks: `gh pr checks <pr>`. Note each failing check and its link.\n4. For each GitHub Actions failure, take the run id from the link and run `gh run view <run-id> --log-failed`.\n5. Scroll to the first error, not the last. Later errors are usually knock-on effects.\n6. Reproduce locally with the same command and versions the workflow uses (Node or Python version, lockfile, env vars).\n7. Write a short summary: check name, the error line, the likely cause.\n8. Propose a fix plan and wait for a yes before changing code.\n9. Apply the fix, run the same command locally, push, then re-run `gh pr checks <pr>`.\n\n## Common causes\n- Lockfile out of date, or `npm install` used where CI runs `npm ci`.\n- A different runtime version in CI than on your machine.\n- A missing secret or env var in the repository settings.\n- Tests that depend on time zone, order or network.\n- Lint or type errors your editor did not show.\n\n## Gotchas\n- Checks from other providers (Buildkite, CircleCI, Vercel) are not GitHub Actions logs. Report their link instead of guessing.\n- Never print secrets in a log to debug them. Check that the name exists, not its value.\n- Do not \"fix\" CI by deleting the failing test or disabling the job without asking.\n- A job still running has no full log yet. Wait, or fetch that job's log alone.\n\n## Portability\nWorks with any language or test runner. If you use GitLab or another CI, the same read-first, reproduce-locally loop applies with that tool's log command instead of gh.\n\n## Example prompt\n\"My PR's CI is red but tests pass locally. Find out why and suggest a fix before changing anything.\"\n\n## Done when\n- Every failing check has a one-line cause with the log line that proves it.\n- The fix was approved, reproduced locally and pushed.\n- `gh pr checks` shows all required checks passing.\n\n---\nModified from \"gh-fix-ci\" in openai/skills (Apache-2.0). Changes by TheSkillVault are listed in the metadata above. See LICENSE.txt.","files":["LICENSE.txt"],"license":"Apache-2.0","license_name":"Apache License 2.0","license_url":"https://www.apache.org/licenses/LICENSE-2.0","attribution":"Based on work by OpenAI (openai/skills, gh-fix-ci) (Copyright (c) OpenAI (openai/skills, gh-fix-ci); Apache License 2.0 text in LICENSE.txt, Apache License 2.0), https://github.com/openai/skills/tree/49f948faa9258a0c61caceaf225e179651397431/skills/.curated/gh-fix-ci; adapted by TheSkillVault, https://theskillvault.ai","install":{"claude_code":"curl -fsSL --create-dirs 'https://theskillvault.ai/api/skills/fix-failing-ci-checks/raw' -o ~/'.claude/skills/fix-failing-ci-checks/SKILL.md' && curl -fsSL --create-dirs 'https://theskillvault.ai/api/skills/fix-failing-ci-checks/files/LICENSE.txt' -o ~/'.claude/skills/fix-failing-ci-checks/LICENSE.txt'","cursor":"curl -fsSL --create-dirs 'https://theskillvault.ai/api/skills/fix-failing-ci-checks/raw' -o '.cursor/skills/fix-failing-ci-checks/SKILL.md' && curl -fsSL --create-dirs 'https://theskillvault.ai/api/skills/fix-failing-ci-checks/files/LICENSE.txt' -o '.cursor/skills/fix-failing-ci-checks/LICENSE.txt'","agents":"curl -fsSL --create-dirs 'https://theskillvault.ai/api/skills/fix-failing-ci-checks/raw' -o '.agents/skills/fix-failing-ci-checks/SKILL.md' && curl -fsSL --create-dirs 'https://theskillvault.ai/api/skills/fix-failing-ci-checks/files/LICENSE.txt' -o '.agents/skills/fix-failing-ci-checks/LICENSE.txt'","mcp_url":"https://theskillvault.ai/mcp","cursor_mcp_deeplink":"cursor://anysphere.cursor-deeplink/mcp/install?name=theskillvault&config=eyJ1cmwiOiJodHRwczovL3RoZXNraWxsdmF1bHQuYWkvbWNwIn0%3D","mcp_config":{"mcpServers":{"theskillvault":{"url":"https://theskillvault.ai/mcp"}}}},"bundles":[],"tested_on":[{"family":"chatgpt","name":"ChatGPT","outcome":null,"date":null,"source":null,"counts":false,"stale":false},{"family":"claude","name":"Claude","outcome":null,"date":null,"source":null,"counts":false,"stale":false},{"family":"gemini","name":"Gemini","outcome":null,"date":null,"source":null,"counts":false,"stale":false},{"family":"grok","name":"Grok","outcome":null,"date":null,"source":null,"counts":false,"stale":false},{"family":"llama","name":"Llama","outcome":null,"date":null,"source":null,"counts":false,"stale":false},{"family":"deepseek","name":"DeepSeek","outcome":null,"date":null,"source":null,"counts":false,"stale":false},{"family":"mistral","name":"Mistral","outcome":null,"date":null,"source":null,"counts":false,"stale":false},{"family":"qwen","name":"Qwen","outcome":null,"date":null,"source":null,"counts":false,"stale":false},{"family":"kimi","name":"Kimi K","outcome":null,"date":null,"source":null,"counts":false,"stale":false}],"proven_rule":{"threshold":5,"window_days":365,"computed_at":"2026-11-02T03:20:33.817Z"}}