Shipfox

Investigate and repair default-branch CI failures

Find out why CI broke on your default branch and get a tested repair pull request.

CI fails on the default branch

How it works

  1. CI fails on the default branchtriggerA GitHub Actions run fails on main.
  2. The agent finds the causeagentIt reads the failed logs and the recent changes on the branch.
  3. The agent opens a repair pull requestwriteIt opens a pull request only when it can fix the cause and your checks pass. If the cause is outside your code, such as a registry outage, it does nothing.
  4. Optional: you are notified on SlackwriteThe workflow posts a message for each repair, or for each failure that needs a person.

What it writes

  • GitHub
    • Opens a repair pull request
  • Slack
    • Posts a report (optional)

Before you start

  • Connect GitHub.
  • Run CI on GitHub Actions on pushes or schedules to the default branch.
  • For the Slack report, connect Slack and invite the Shipfox app to the report channel.

Choices you make

When you set up this workflow, your coding agent asks you these questions. The workflow file on this page uses the default answers.

  • How should the repair pull request open?Default: Draft1 other choice
    • DraftDefaultSomeone marks the PR ready before review.
    • Ready for reviewOpens the PR for review right away, which can notify reviewers.
  • Which outcomes should the workflow post to Slack?Default: Repair pull requests1 other choice
    • Repair pull requestsDefaultPosts only when a repair PR opens.
    • Repair pull requests and diagnosesAlso posts the diagnosis when a person must act, such as an unexplained intermittent failure or a repair too large to deliver.

Models

  • investigatetested with gpt-6-sol · high thinkingReads failed CI logs and recent history, reproduces the failure, and repairs its cause. Needs a strong model with high thinking.

When you set up this workflow, your coding agent suggests models that your workspace can use. You choose the model for each step.

Related examples

Was this page helpful?
Edit this page on GitHub