CI Whisperer

v0.2.0

Analyze GitHub Actions failures and propose fixes. Use when a user shares a failing GitHub Actions run URL/id, says 'CI is failing', asks 'why did this workf...

0· 647· 2 versions· 0 current· 0 all-time· Updated 19h ago· MIT-0
byMartinKirov@martok9803

Install

openclaw skills install martok9803-ci-whisperer

CI Whisperer

Fetch GitHub Actions run details, pinpoint the failure, and propose a minimal fix.

This skill is meant to feel like a senior engineer doing a fast “CI autopsy”.

Modes

Read-only mode (default)

  • Collect evidence, explain root cause, propose fixes.
  • No pushes, no PRs, no branch creation.

PR fix mode (opt-in)

PR fix mode is allowed only when both are true:

  1. The user explicitly asks to open a PR.
  2. A local toggle is enabled (the “on/off button”):
    • env var: CI_WHISPERER_WRITE=1

If the toggle is not enabled, refuse politely and explain how to enable it.

Workflow

1) Identify target run

Accept any of:

  • workflow run URL
  • run id
  • PR number (then locate latest run)

Always determine:

  • owner/repo
  • run id

If the user didn’t specify the repo, ask for it (or infer from context).

2) Gather evidence (tool-backed)

Prefer deterministic tooling. Use /usr/bin/gh when the system has multiple gh binaries.

Suggested commands:

  • gh run view <run-id> --repo owner/repo --json status,conclusion,createdAt,updatedAt,event,headBranch,headSha,url,name
  • gh run view <run-id> --repo owner/repo --log-failed
  • gh run view <run-id> --repo owner/repo --log (only if needed; can be noisy)

If gh is not authenticated, stop and ask the user to run:

  • /usr/bin/gh auth login

3) Produce a "CI Autopsy" report

Return:

  • failing job(s) and step(s)
  • the exact error excerpt (short; redact secrets)
  • likely root cause(s) ranked
  • minimal fix options
  • confidence level

4) (Optional) Open a PR (only with explicit approval + write toggle)

If the user asks to fix it and CI_WHISPERER_WRITE=1:

  • create a branch
  • apply minimal changes
  • run local lint/tests if available
  • open PR with a clear description and link to the failing run

If the user asks but write mode is OFF:

  • provide the patch/diff instructions, but do not push.

Safety

  • Never print tokens.
  • Don’t open PRs or push changes unless explicitly requested.
  • If logs contain secrets, redact before quoting.

Bundled scripts

Use scripts for repeatable fetching and parsing:

  • scripts/ci_autopsy.py (fetch run metadata + failed logs)

Version tags

latestvk97dr2apg4yn1esacm4d240aqx8194ad