Origin
External design review of the full-screen TUI (2026-08-16). The reviewer's
conclusion after seeing the whole interface: the colors are not "too many" —
they are a color vocabulary, and it works. Verdict on the current palette:
keep it (maintainer agrees — operate purple, Full Access orange, etc. stay).
What the review asks for
-
Formalize the color grammar and refuse to violate it as the UI expands.
The language the interface already speaks:
| Color |
Meaning |
| GREEN |
outcome / success / model output |
| ORANGE |
cognition / consequential action / elevated capability |
| CYAN |
currently active / orchestration |
| PURPLE |
user-selected mode / policy |
| BLUE |
identity / navigation |
| GRAY |
passive metadata / historical state |
| RED |
actual failure / destructive warning ONLY |
Reserve true red so it stays powerful when it appears (tool denied,
destructive confirmation, crashed agent, context failure). Concretely: a
docs/design/ note naming the grammar + a single palette/style module the
widgets share, so new UI can't introduce an eighth semantic or spend red on
something non-failing.
-
Repository state is the missing piece of the runtime header. The top bar
reads provider · model · mode · effort · permissions · fs scope · ctx · version — for a coding agent, repo · branch* (branch + dirtiness) tells
you where the agent is operating and is arguably more valuable than the
provider company. Suggested placement: left of the model segment or as the
first telemetry segment. (Worktree name matters here too — see the fleet
lanes.)
-
Optional polish, low priority: group effort with mode (operate:max)
for scannability. Not retracted by the reviewer but minor; the full-screen
read made the current operate · max acceptable.
Acceptance
Not in scope: changing existing color assignments (explicitly keep), adding
new orange semantics (explicitly refuse).
Origin
External design review of the full-screen TUI (2026-08-16). The reviewer's
conclusion after seeing the whole interface: the colors are not "too many" —
they are a color vocabulary, and it works. Verdict on the current palette:
keep it (maintainer agrees — operate purple, Full Access orange, etc. stay).
What the review asks for
Formalize the color grammar and refuse to violate it as the UI expands.
The language the interface already speaks:
Reserve true red so it stays powerful when it appears (tool denied,
destructive confirmation, crashed agent, context failure). Concretely: a
docs/design/note naming the grammar + a single palette/style module thewidgets share, so new UI can't introduce an eighth semantic or spend red on
something non-failing.
Repository state is the missing piece of the runtime header. The top bar
reads
provider · model · mode · effort · permissions · fs scope · ctx · version— for a coding agent,repo · branch*(branch + dirtiness) tellsyou where the agent is operating and is arguably more valuable than the
provider company. Suggested placement: left of the model segment or as the
first telemetry segment. (Worktree name matters here too — see the fleet
lanes.)
Optional polish, low priority: group effort with mode (
operate:max)for scannability. Not retracted by the reviewer but minor; the full-screen
read made the current
operate · maxacceptable.Acceptance
docs/design/and enforced by a sharedpalette module (no widget invents its own semantic color).
updates on branch switch and worktree operations.
Not in scope: changing existing color assignments (explicitly keep), adding
new orange semantics (explicitly refuse).