The workflow kit
Intent in.
A reviewed change out.
Chough (pronounced chuff) is a portable agent skill with a small Rust helper. You keep working with the agent you already use. Chough gives it a shared stage workflow and a checkpoint in plain project files, so you, or another agent, can pick the work up where it stopped.
$ cargo install chough --locked
$ chough init --objective "Free shipping from fifty dollars" \
--intent-scope CHECKOUT --module shipping --host claude
$ chough next --environment local
Four tools, one record each.
Our main stack is hi, spec-sync, fledge, and Chough. Each tool keeps its own records. Chough never copies another tool's state into a second ledger, and it never records a human decision that a human did not make.
hi
Keeps the human's wording and the permanent criterion ids.
spec-sync
Owns the contracts and the change lifecycle: approval, verification, review and archive.
fledge
Runs the tasks and lanes, including the verify gate.
Chough
Records what stage the work is in, what was decided, what was actually checked (with the revision and environment), which bugs are open, and the next valid action.
The loop
Stage gates read native spec-sync state, never a saved label. The human gates stay human: intent, scope, and the review of what was built.
| Stage | What happens | Who decides |
|---|---|---|
| intent | Capture wants in hi, derive an FRD, synthesize role reviews | The human approves the intent as a whole |
| design | Only for visual changes: one local HTML and CSS prototype and its companion | The human approves the render and notes together |
| plan | The agent prepares the native change and records applicable authority | Existing human authorization or one scope decision |
| build | Implement the approved tasks through fledge | The agent, within scope |
| test | Focused cases for the affected criteria | Evidence, not opinion |
| accept | Present evidence; native review, then same-PR archive | The human reviews the implementation |
| release | Optional, only on request or a standing setting | The human |
Start here
Chough needs Rust 1.88 or later. Install the released version from
crates.io. The skill bundle is inside the binary, and
chough init copies it
into your project. init
never overwrites existing files.
$ chough --help
Then, in a Git project with hi criteria and spec-sync module contracts, ask for the focused next action and tell your agent what you want in plain language.
--intent-scope CHECKOUT --module shipping --host claude
$ chough next --environment local
The rest of the stack installs from crates.io in one command. It needs Rust 1.89 or later, because spec-sync 6.2.0 declares it.
The binaries are hi,
fledge and
specsync. For a new
project without them, the
walkthrough ↗
starts from nothing.
Platforms
Chough supports macOS and Linux. Windows is supported only through WSL 2 with Ubuntu: install Rust, Chough, hi, spec-sync and fledge inside Ubuntu, and work on its Linux file system. Native Windows is not supported, matching spec-sync, which publishes no Windows binary from 6.0. Hosted CI runs on Ubuntu and macOS; no job runs inside WSL.
- Language
- Rust, minimum Rust 1.88
- Distribution
- crates.io (chough), or from source
- Hosts
- --host openai, claude, codex, cursor, gemini or grok
- Works with
- hi · spec-sync · fledge
- Platforms
- macOS and Linux; Windows through WSL 2
- License
- MIT
What it will not do yet
- Native Windows is not supported. Use WSL 2 with Ubuntu.
- Calls to Git (fingerprints and revisions) are not yet bounded in time or output.
- Cursor, Gemini and Grok have not had real discovery or cold-start exercises. Kimi has one observed run. Google Antigravity has only an unverified report.
- Approvals and reviews are recorded claims bound to their content, not authenticated identity. A structural pass or an exit code is not behavioral proof or human acceptance.
- Nothing is hosted or deployed. Chough runs in the agent you already use, with no provider API or runtime of its own.
The full list is in integrations and limits ↗.