@rafinery/cli
v0.19.1
Published
rafa — the AI engineer CLI. Vendors the rafa blueprint into your repo (shadcn-style) and runs the deterministic contract gates.
Downloads
3,206
Maintainers
Readme
@rafinery/cli — rafa
The rafinery AI-engineer CLI. Like shadcn, it vendors the rafa blueprint into your
repo — agents, the /rafa command, the rafa skills, and the file contract — and you
own your copies. The deterministic gate tools live INSIDE this package (never vendored),
so a repo is gate-current the moment the CLI is. It is not a runtime dependency; you
never import it.
npx @rafinery/cli init # provision this repo (vendor the blueprint)
npx @rafinery/cli init <url> # …and wire the platform from a setup URL
# after install the command is just `rafa`:
rafa update # re-sync the blueprint (opt-in; you own your copies)
rafa compile # validate the brain against the contract → manifest.json
rafa verify-citations # deterministic citation checker (B1/B2/policy)
rafa push # compile + push .rafa/ to your brain remote (from main)
rafa pull [--full] # make a fresh clone brain-ready (lazy; --full mirrors)The LLM work runs inside Claude Code, not the CLI: /rafa scan, /rafa improve, /rafa plan.
Model (blueprint split, 0.4.0)
- Blueprint = committed files you own (
.claude/agents/*,.claude/commands/rafa.md,.claude/skills/rafa-*). Tune them; they version with your code, MR-reviewed. - Contract (
.claude/rafa/contract.md) moves in lockstep with the CLI that implements it — treat as generated. A stamped copy rides every brain push. - Gate tools are not files in your repo — they are this package (
rafa compile,rafa verify-citations,rafa push,rafa pull). .rafa/is lazy, gitignored knowledge+state — plans + hydrated working files. It bootstraps from the committedrafa.json: clone →npx rafa pulljust works.- Updates ship by bumping this CLI;
rafa updatepulls the new blueprint into your repo.
See the monorepo: https://github.com/rafinery-ai/rafinery
