Skip to content
Back to skills

Keel Ci Check

ASecurity

Check the latest CI run's status; on failure, locate the failing job/step, diagnose the root cause, and propose one fix — never auto-apply.

  • 6 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 28, 2026
ai-agentsgobashgitapi

Works with

  • cli
  • api
  • mcp

Security analysis

A100/100

Scanned October 7, 2026

npx -y skills add berkayturanci/keel --skill keel-ci-check --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Keel Ci Check?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Keel Ci Check
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/berkayturanci-keel-ci-check/badge)](https://www.skillsdirectory.com/skills/berkayturanci-keel-ci-check)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

SKILL.md
---
name: keel-ci-check
description: Check the latest CI run's status; on failure, locate the failing job/step, diagnose the root cause, and propose one fix — never auto-apply.
---

# keel-ci-check

Use this skill when the user asks to run the keel command `ci-check` (e.g. `keel ci-check ...`, `ci-check <args>`, or `/keel:ci-check`). It reads every project value from `.keel/project.yaml` via the `keel` CLI.

# /keel:ci-check

## Live progress — stamp this run (required)

So this run shows live on `keel-visual`'s board, record it with `keel activity` **as you
go**. This command's phases are: `poll` → `report`. Pick one stable `--run-id` for the whole run
(e.g. `ci-check-<issue-or-pr>`):

- **Right now, before the work below**, stamp the first phase:
  `keel activity .keel/project.yaml --root . --write --command ci-check --run-id "$RUN" --phase poll`
- Re-run with the next `--phase` (`report`, …) **as you advance** through the flow.
- At the end: `keel activity .keel/project.yaml --root . --run-id "$RUN" --done`

Treat this like any other contractual step — do not skip it. The one allowed exception is a
core too old to ship `keel activity` (keel < 1.6.0): then skip it silently and never block
the command.

## Command step evidence

Every numbered step in this command is contractual. Complete the step, record the
evidence it asks for, or explicitly mark it `N/A — <reason>` before moving on. If a step
has an external side effect such as a GitHub comment, issue, review, report, branch, or
PR, the side effect must be posted or written through the selected transport and cited in
the final summary. Never silently skip a step because the runtime, agent, or prompt feels
obvious.

Project-neutral CI status check. Reads `.keel/project.yaml` (`ci_workflows`, `base_branch`)
via the `keel` CLI — the workflow names and branch are never hardcoded here. It inspects the
latest CI run, and when that run failed it pulls the failing log, reads the offending source,
and proposes exactly **one** fix. It is read-only: it never edits code, pushes, re-kicks, or
merges.

All user-facing diagnoses MUST be written in English; free-form chat may be in any language.

## Step 0 — orient + runtime gate

```bash
keel validate .keel/project.yaml --root .
keel plan     .keel/project.yaml --root .     # read base_branch, ci_workflows
```

CI status lives behind the host's Actions/checks API, which is reached through `gh` (or its
MCP equivalent). Detect availability first:

- If a PR is in scope, prefer `keel ship .keel/project.yaml --root . --pr <N>` for the CI
  rollup + merge decision, falling back to `gh pr checks <N>` for per-workflow detail across
  the project's `ci_workflows`.
- If neither `gh` nor an MCP checks-read path is reachable in this runtime, **exit cleanly**
  with a single line saying CI data requires the host CLI and is unavailable in this sandbox
  (re-run from a local checkout with the CLI installed, or use the host's web UI). Do **not**
  error or partial-run — surfacing nothing here advances nothing.

## Step 1 — latest run(s)

List the most recent runs (a small limit, e.g. the last 3) across the project's
`ci_workflows`, capturing per run: id, status, conclusion, workflow name, head branch, and
created-at. The newest run is the one under analysis; the prior two give context for "did this
just start failing?".

## Step 2 — if the latest run failed

1. Pull the failing job's **log tail** (the last screenful of `--log-failed`, not the whole
   log) for the newest failing run.
2. Identify the **failing job and step name**.
3. **Read the source file** the failure points at (use the `file:line` the tool output carries
   where it has one).
4. **Classify** the failure: a real code/test failure vs. a flake (intermittent; cross-check
   with the prior runs from Step 1) vs. infra/quota (runner, network, rate-limit, credentials).
5. **Diagnose** the root cause in 2–4 sentences.
6. **Propose ONE specific fix** — describe it concretely (file/line-targeted). Do **not** apply
   it automatically.

## Step 3 — if all runs passed

Print a single green line: CI is green, with the latest run's workflow name, branch, and time.

## Step 4 — recommend the next action

Route by the Step 2 classification — never merge here:

- **Transient / flake** → re-kick (a fresh push or the host's re-run), and consider
  `/keel:flake-audit` if it recurs.
- **Real failure** → apply the proposed fix, then run `/keel:review-cycle` (self-review +
  independent reviewers) and re-check; the fix is not "done" until every reviewer is clear of
  blockers AND CI is green. Land it through `/keel:ship` (window + lock + review), never by a
  direct merge from here.
- **Infra / quota** → escalate; this is not a code fix.

## Stop conditions / invariants

- **Read-only** — propose a fix, never apply, push, re-kick, or merge.
- **Deterministic** for identical CI state.
- **Fail-soft** — a missing CLI degrades to the Step 0 clean-exit note, not a crash.

<!-- keel-generated: surface=skills command=ci-check keel_version=1.31.0 source_sha256=fb3c23e6e7427ca862f10aa6cdfa7bb625b0f4d2a94bac11d9653d2a8f163e50 generated_sha256=b2123020b76c041375617a25c249ea81cc423675bb426b4e7900a41c7ffdfcc0 -->

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.