Skip to content

Reference

Commands

Command What it does
wuwei init [dir] [--cloud] Create .wuwei/ and merge WUWEI's allow, deny and ask rules into .claude/settings.json; --cloud also copies the plugin into .claude/ for cloud sessions; --codex writes the role agents and door rules into .codex/
wuwei sent owner/repo#n <link> Record a review request posted outside the session
wuwei sync Pull, then push .wuwei/ on the wuwei/state branch
wuwei doctor Install, workspace, ledger, harness rules, and each door's strength per repository
wuwei plan [show] [<id>] The ranked plan; --json for machines; with an id, that item as JSON (promise and acceptance included)
wuwei plan add <id> "<title>" --goal G-n --repo owner/name --tier light\|standard\|full Add an item with --value --time --risk --size (WSJF) or --reach --impact --confidence --effort (RICE) and --why, --promise, one --accept per scenario; an id already in the plan is updated in place, and a changed promise or acceptance clears its approval
wuwei plan add --from <file> Add the lead's candidates (.wuwei/candidates.json): a list, or {"candidates": [...]}, each with an id and a title; any other shape is refused and nothing is added
wuwei plan restore <id> Reopen a parked or dropped item
wuwei plan park\|drop\|done <id> --reason "..." Change an item's status
wuwei plan run <id> --reason "<what ran, what it showed>" Record run evidence for an operations item; refused without --reason
wuwei plan pass --reason "..." Record a plan pass; reopens a closed day
wuwei plan view [--html] The plan as a view: writes .wuwei/plan.html, prints a summary and the question line (--html prints the page)
wuwei status [--json] The board: what each open item lacks
wuwei evidence owner/repo#n [--json] [--record DIR] One PR's gaps; exit 1 when there are gaps
wuwei report [--day YYYY-MM-DD] The day report
wuwei report --dora [--window 28] The DORA keys per repository
wuwei close Checkpoint: write the report for the day so far
wuwei andon owner/repo --reason "..." / --clear Pull or clear the cord on one repository
wuwei owe <thread link> "<what>" --who <name> [--within 4h \| --due <ISO>] Record a reply someone is waiting for
wuwei watch [--record "<summary>"] The last watch pass and replies owed; record a pass
wuwei status --all The board with process fit too (for the watch)
wuwei config [key value] Show, or set one of the six keys
wuwei verify Check the ledger's hash chain
wuwei agents [check\|build] Check or build the role agents from the charters
wuwei --version The plugin version
wuwei hook <event> Called by the harness only

Configuration

.wuwei/config.toml has six keys. Everything else is discovered or part of the process.

Key Default Meaning
repos the origin of the init directory the repositories in the workspace
owner_paths [] glob patterns you review yourself
prioritisation wsjf wsjf or rice
tracker github where issues live
telemetry true local tool-call traces
models {} your rows over the model table: "<role>[ <tier>]" = "<model> <effort>"; set with wuwei config models "builder light=opus medium"

Files

Path Holds
.wuwei/plan.json the running queue
.wuwei/goals.md the goals, the direction
.wuwei/plan.html the plan view you approve
.wuwei/standards.md rules the retro promoted, per role; a Review requests: <where> line names where reviews are asked
.wuwei/verdicts/<item>/ the sentinels' verdict files
.wuwei/ledger/<clone>.jsonl the hash-chained record, one file per clone
.wuwei/.gitignore keeps the state out of working branches; it travels on wuwei/state
.wuwei/traces.jsonl local telemetry
.wuwei/days/<date>/report.md each checkpoint's report
.wuwei/retro/<date>.md the steward's retro
.wuwei/canary the workspace canary token

PR body lines

Line When
<sub>[WUWEI <version>](https://taoq-ai.github.io/wuwei/) · Item `<id>` · <title> · Goal <G-n> · Tier <tier></sub> always, last line; the older WUWEI-Item: <id> still links
No test: <reason> a change no test can hold
Size: <reason> over about 400 changed lines
Rollback: <how to undo> full tier, or owner_paths touched
BREAKING CHANGE: <what> (and ! in the title) a major only: an incompatible change to the public API, as Breaking changes declares it; a stricter check of a rule the docs already state is a fix: (a patch) with release notes in the body
Announcement: <url> a breaking change: one http(s) URL alone on the line, without brackets, of a communication that already exists (a PR or issue comment, or a published release note or migration guide); a changelog entry written at release does not count

Verdict format

Verdict: PASS | FIX | ESCALATE
Gate: arch | quality | security | goal
Item: <plan item id>
PR: <owner/repo>#<number>   (or <owner/repo> alone before its draft PR exists)
Head: <the 40-character sha you reviewed>
Confidence: low | medium | high
Breaking: no | yes: <what breaks for which clients>   (arch only)

## Findings
- [critical|high|medium|low] <file>:<line> blocks: yes. Failure: <the concrete scenario>
- [low] <file>:<line> blocks: no. <a note>   (the <file>:<line> is optional on a note)
(or none)

A blocking finding names its <file>:<line>; a note without a place in the code leaves it out. The reviewer ends its report with Verdict file: <path>. A written verdict file is never edited: a corrected or second verdict for the same head goes to the next free <gate>-<sha7>-2.md.