Installs into .claude/skills of the current project.
Are you the author of Skills Sh Redwoodjs Agent Ci Agent Ci?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/lord1egypt-skills-sh-redwoodjs-agent-ci-agent-ci)
---
name: agent-ci
description: Run GitHub Actions CI locally with Agent CI to validate changes before pushing. Use when testing, running checks, or validating code changes.
license: MIT
compatibility: Requires Node.js 18+ and Docker
metadata:
author: redwoodjs
version: "1.0.0"
---
# Agent CI
Run the full CI pipeline locally before pushing. CI was green before you started — any failure is caused by your changes.
## Run
```bash
npx @redwoodjs/agent-ci run --quiet --all --pause-on-failure
```
Pipes are safe — pause-on-failure works through `| tee log`, `> log.txt`, etc. When stdout isn't a TTY the launcher detaches the run and the foreground process exits **77** the moment a step pauses, freeing the pipe while the container stays paused for `retry`.
## Retry
When a step fails, the run pauses automatically. Fix the issue, then retry:
```bash
npx @redwoodjs/agent-ci retry --name <runner-name>
```
To re-run from an earlier step:
```bash
npx @redwoodjs/agent-ci retry --name <runner-name> --from-step <N>
```
Repeat until all jobs pass. Do not push to trigger remote CI when agent-ci can run it locally.
## Machine-readable output (`--json`)
For programmatic monitoring, add `--json` (or set `AGENT_CI_JSON=1`) to emit an NDJSON event stream on stdout — one JSON object per line. Events:
- `run.start` (with `schemaVersion: 1`, `runId`)
- `job.start`, `job.finish` (`status: passed|failed`)
- `step.start`, `step.finish` (`status: passed|failed|skipped`)
- `run.paused` (carries `runner` + `retry_cmd`)
- `run.finish` (`status: passed|failed`)
- `diagnostic`
`--json` is decoupled from `--quiet`, and the diff renderer is auto-suppressed under `--json` so ANSI sequences don't collide with the stream. Combined with the exit-77 pause signal above, this gives agents a robust contract: parse `run.paused` events, react, and call `retry` — no plaintext grep required.