Skip to content

docs: route builders by deliverable, never send Grok at a UI - #114

Merged
pseudoseed merged 1 commit into
mainfrom
docs/harness-routing
Aug 24, 2026
Merged

docs: route builders by deliverable, never send Grok at a UI#114
pseudoseed merged 1 commit into
mainfrom
docs/harness-routing

Conversation

@pseudoseed

Copy link
Copy Markdown
Owner

Problem. Nothing in the repo said which harness to use for which kind of work, so spec 83's UI unit went to Grok and came back unusable.

Root cause. Grok builds a wireframe of a design rather than the design. On #104 it produced a client that passed 127 client tests, 3,394 server tests and 15/15 Playwright, with correct tokens, correct containment and correct colour discipline — and dropped every label prefix (workspace/, architect/, builder/), the header bar, machine metadata, and rendered idle sparklines as invisible dots. Filed as #112.

The reviewer-side half matters as much: a green test suite cannot detect design infidelity. Spec 83's review verified tokens, structure and chrome absence, and never compared the render against the mockup image. Component tests that assert "the name renders" pass happily while the thing that made the name legible is gone.

Fix. A routing table in CLAUDE.md under Working with builders, stated where spawn decisions actually get made:

Work Harness
Backend, protocol, front-end logic, tests, refactors opencode (Grok)
Anything judged by how a screen looks Claude
Trivial visual edits — move an element, change a colour, one CSS line Either

Plus the instruction to open the mockup and the render side by side before approving any UI PR.

Not mirrored into codev-skeleton/. The skeleton's CLAUDE.md template has no builders section and no harness guidance, and pushing a claim about one model onto every adopter off a single data point isn't warranted. This is our-instance guidance backed by our-instance evidence.

Testing. CLAUDE.md and AGENTS.md verified byte-identical with cmp. Docs only.

🤖 Generated with Claude Code

Grok builds a wireframe of a design rather than the design. On spec 83 it
shipped a client that passed 127 client tests, 3394 server tests and 15/15
Playwright, with correct tokens, correct containment and correct colour
discipline, and was unusable: every label prefix gone (workspace/, architect/,
builder/), no header bar, no machine metadata, and idle sparklines rendered as
invisible dots. Filed as #112.

The routing rule is now stated where spawn decisions get made: backend,
protocol, front-end logic, tests and refactors go to opencode; anything judged
by how a screen looks goes to Claude; trivial visual edits can go either way.

Also states the reviewer-side half, which is the reason this shipped at all: a
green test suite cannot detect design infidelity. Spec 83's review verified
tokens, structure and chrome absence and never compared the render against the
mockup image. Component tests that assert 'the name renders' pass happily while
the thing that made the name legible is gone.

Not mirrored into codev-skeleton: the skeleton's CLAUDE.md template has no
builders section, and pushing a claim about one model onto every adopter off a
single data point is not warranted.

AGENTS.md kept byte-identical.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@pseudoseed
pseudoseed merged commit 69cd58d into main Aug 24, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant