The team and its charters¶
| Role | Does | Why it is a separate role |
|---|---|---|
| planner | your session: plans with the lead, launches seats, follows the board, asks you what is yours | one place where your attention is spent |
| lead | discovery, readiness, scope, tier, ranking, red-teaming the plan | deciding what to build is a different skill from building it |
| builder | one item, test first, in its own branch and worktree | small, isolated changes are easier to review and undo |
| sentinel-arch | architecture gate: conformance to the written design, coupling, contracts, quality attributes, budgets | coupling and contracts erode quietly |
| sentinel-quality | quality gate, on a different model than the builder when the model table puts the rest on one | tests that do not test, code that should not exist |
| sentinel-security | security gate | trust boundaries need a reviewer who looks only at them |
| sentinel-goal | goal gate (full tier) | building the wrong thing well is still wrong |
| shepherd | PRs from raise to merge: reviewers, threads, CI, conflicts, the evidence comment | PRs die of neglect, not of bad code |
| steward | the retro at each checkpoint | someone must learn from the day without being in it |
Charters are the one source¶
Each role's conduct is a charter in charters/: _common.md for everyone, _common-authoring.md
for roles that write for people, _gate.md for the sentinels, and one file per role. The agents
in agents/ are generated from them (wuwei agents build) with a reviewed tool grant per role
(agents/allowlist.json), and a test fails if they drift.
Why: a rule written in two places drifts. The charter is where a rule lives; the agent is how the harness receives it.
The charters hold only what every workspace needs. A lesson about one repository's code lives in
that repository (AGENTS.md or CLAUDE.md) and in the workspace's .wuwei/standards.md, never in
a charter. Tests hold the charters to the plain-tone rule (no sentence over 35 words) and each
generated agent under a word ceiling, so the set cannot grow by accretion.
Independence¶
The sentinels review the diff, the requirement and the running code, never the builder's summary. They run probes and mutants in a scratch copy of the tree at the head they review. Their verdicts count only when attested.
At least one gate per head runs on a different model than the builder, so the reviews do not share every blind spot. Each seat's model and effort come from one table in the planner charter, drawn from Anthropic's guidance; the planner follows it and may depart with a reason.
Why: a reviewer who shares the author's assumptions finds the author's mistakes only by luck.
Rounds that converge¶
A surviving mutant blocks only when the gate can name a concrete bad input it lets through and the harm it does; an equivalent or unexploitable mutant is a low note with the missing test. From the third round on, a gate blocks only on what the last fix changed, and test-only findings on code already judged correct go to one combined final round. Two fix rounds without a pass on the code itself park the item for a rethink.
Why: a gate that finds a new unpinned quantifier on the same unchanged regex each round costs a dozen seats and buys nothing; a defect is a bad input, not a missing test.
Seats cannot ask you¶
Seats have no question tool. Only the planner reaches you, and only with an owner-class question.
Why: one voice, batched, with a recommendation, instead of every agent interrupting you.
Standards travel with the brief¶
Seats do not see the session's context, so the planner passes each seat the lines of
.wuwei/standards.md for its role: the defects this workspace has seen escape, the rules the retro
promoted.