fixing-ci — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited fixing-ci (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
This skill drives an iterative CI fix session: investigate the failure (via the Buildkite investigation skill), apply a fix, verify it locally, push, watch the new build, and iterate until green or until you've hit the iteration cap and need to step back.
The scope is the fix loop only — investigation is delegated to buildkite:investigating-builds, which already covers bktide snapshot, log reading, and failure-pattern recognition.
buildkite:investigating-builds directlybuildkite:developing-pipelinesThe skill needs to know what to fix. Any one of these inputs is sufficient:
https://buildkite.com/org/pipeline/builds/123)If the caller provides one of the above, use it directly. Otherwise:
git branch --show-current), look for an open PR (gh pr view --json number,headRefName), find its latest failing build via the buildkite:investigating-builds skill's "Checking Current Branch/PR Status" workflow.Record the starting point:
gh pr view --json number)Announce:
"Starting CI fix session for branch <branch> (Build #<number>). I see <N> failed jobs. Let me investigate."Before diving into failures, check if the branch is up to date with main.
git fetch origin main
git rev-list --count HEAD..origin/mainIn autonomous mode (e.g. invoked from a workflow agent), default to merging main if behind. The slash-command wrapper asks the user.
Use the buildkite:investigating-builds skill to investigate the failing build. The skill's tool hierarchy applies: bktide snapshot first, then other bktide commands, then MCP tools as fallback.
After investigation, you should have:
Group failures by type:
| Category | Signs | Typical Fix |
|---|---|---|
| Stale branch | Tests pass on main | Merge main, resolve conflicts |
| Gemfile.lock issues | Checksum errors, missing gems | Regenerate from main (see references/common-fix-patterns.md) |
| Test failures | RSpec/Jest failures with stack traces | Fix the test or code |
| Type errors | Sorbet/TypeScript errors | Fix type annotations |
| Lint errors | Rubocop/ESLint failures | Auto-fix or manual fix |
| Flaky tests | Passes locally, fails in CI | Investigate timing/isolation; do NOT fix-and-push, surface as flake |
For each category, plan: what to fix, files involved, how to verify locally.
If the failure is flake or infra (CI runner/queue/dependencies), stop. Surface and exit. Don't push fixes for problems we don't understand.
Always verify locally before pushing. Saves CI cycles, catches misfires.
bin/rspec <spec_files>
bin/srb tc <modified_files> # if using Sorbet
lefthook run pre-commit # if using lefthook
pre-commit run --files <modified_files> # if using pre-commit frameworknpm test -- <test_files> # or: yarn test <test_files>
npx tsc --noEmit # if using TypeScript
npm run lintRun whatever the failing CI step ran. Check the failed job's command in the logs.
After local verification passes:
Fix <failure type> from build #<number>
<brief description of what was wrong and how it was fixed> git pushbuildkite:investigating-builds skill's "Post-Push Monitoring" workflow.Compare with the previous build:
Iteration cap: 3. After 3 iterations without going green, step back. Don't keep trying. Exit with a summary covering:
Three iterations is a heuristic, not a hard rule — if iterations 1 and 2 made clear progress on different failures and iteration 3 is on the last remaining issue, one more attempt is reasonable. If the same failure persists across all three, stop.
When CI passes (or session ends), summarize:
<branch>Detailed patterns for recurring issues (Gemfile.lock checksum, merge conflicts, year-boundary, test-helper changes) live in references/common-fix-patterns.md.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.