Fix failing CI checks

Hand Gilfoyle a failed CI run and get the failing step traced to its first real error, a scoped fix and the rerun result for your reviewers.

With Gilfoyle, Software Engineer

Book a demo
Get started for free with up to $130 in free credits
ci-failures

Example brief · Hypothetical workflow

Your brief

The unit and type-check jobs failed on the billing-export PR. Find out why, fix what belongs to this change and tell me if main is failing too.

GilfoyleAPP

I’ll read the failed job logs, reproduce the failing step and separate this PR’s failures from existing ones.

See example output ↓

How Gilfoyle handles it.

Starts: When a required check fails on a pull request or branch in a repository you have connected.

1. Read the failure, not just the status

Gilfoyle opens the failed job’s logs, the diff and the repository’s CI configuration. Each failing step is traced to its first real error, so a cascade of later failures is not mistaken for several separate problems.

2. Reproduce and fix the cause

Using connected Claude Code or Codex with GitHub, Gilfoyle runs the failing command in a matching environment where available, makes the smallest change that addresses the cause and reruns the affected checks. A failure that also happens on the base branch is reported, not patched into an unrelated PR.

3. Hand over the fix for review

The fix arrives as a draft PR against the failing branch; it is pushed to the branch directly only if you explicitly allow that. The handoff lists the commands, the rerun result and any check that still needs a secret, a service or a person Gilfoyle cannot reach.

A green check with the reason attached.

Use this when a specific check fails. A test that passes and fails on the same code is a different problem, and fixing flaky tests has its own workflow.

Hypothetical finished result

Example output

Failed-check fix note

Hypothetical: the unit-test and type-check jobs fail on a PR that renames a billing export field.

Cause
The first error is in export.test.ts: a fixture still uses the old field name invoice_total. The type-check failure that follows comes from the same fixture, not a second regression.
Fix
A draft PR against the branch renames the field in the fixture and updates the matching snapshot, after confirming the new name matches the PR description. No assertion was removed or loosened.
Rerun
The export tests and the type check pass locally, and both CI jobs pass on rerun. The same jobs pass on main, so both failures belong to this PR. The integration job needs a staging secret this environment does not have, so the note lists it as not run.

The apps this job needs.

Connect the accounts and actions for your workflow. Start in Artie or add your Artisan to Slack; access stays within your account permissions.

Explore apps
GitHub
Connect the repository with read access to Actions logs, plus the branch or draft-PR write access you want Gilfoyle to use.
Claude Code or Codex
Connect an available coding tool and supply the runtime, dependencies and any test services the failing job needs.

Questions about this workflow

Will Gilfoyle skip or disable a test to get a green check?

No. Skipping, deleting or loosening a check is raised as a decision for your reviewer, not used as the fix.

What if the job needs a secret or service we haven’t provided?

The note names the missing secret or service and the step it blocks. Gilfoyle does not report a pass for a check it could not run.

Can Gilfoyle push straight to the PR branch?

Only when you explicitly allow branch writes for that repository. By default the fix arrives as a draft PR against the branch for review.

Enter your referral code

Your friend’s code adds $20 in credits when you sign up.

Book a demo

Choose a date and time, then enter your email to schedule a call.

Loading available times