Replace browser tooltips with test-first subagents and a context-free reviewer

Rubén Rangel had Claude Code role agents remove all 186 native browser tooltips from a KPI and payroll platform in eight test-first steps. A reviewer with no build context then found two blockers he had missed.

Done withClaude Code· Oct 27, 2026

What they did

Rangel directs and verifies but does not write the code. For a change to a KPI and payroll platform that swapped native browser tooltips for the app's own component, he set up Claude Code with file-defined agents, one per role, each with restricted tools. A test agent writes one failing test per behaviour, with the expected value worked out by hand from the work card rather than copied from program output. A builder agent writes the least code that makes that test pass and may not edit tests. Rangel runs every test himself and removes the fix to confirm the test goes red again. The loop ran eight times. Last, a read-only reviewer agent in a clean session got only the original card and the final diff, and checked it against seven fixed questions: scope, off-limits areas, whether the test would fail without the fix, invented business rules, hidden failures, UI standards and screen states.

How it went

Native tooltips on the running platform went from 186 to 0, with 46 screenshots in light and dark. Counting by hand showed the card's figure of 15 tooltips was really 17. On the final step nine old tests broke, and the builder stopped and reported them instead of patching them. The reviewer made eight findings, two of them blockers: a folder of browser tests nobody had opened still used the removed attribute, and the plan contradicted the code on keyboard focus. It also caught a missing performance check; opening a week now takes 265 ms instead of 152 ms.

Worth knowing

The reviewer is useful because it knows nothing about how the change was built. Rangel had verified every step himself and still missed both blockers, since he only looked where his plan told him to. The roles are enforced by tool limits in the agent files, not only by instructions.

Try it

With Claude Code· 3 parts to fill in

We are making this change in [repo]: [work card text]. Work in small steps, one behaviour at a time. For each step: first write one failing test whose expected value you derive by hand from the card, never from running the code, and show me why it fails. Then write the smallest code change that makes it pass without touching any test; if you think a test is wrong, stop and tell me why. After each step, remove the fix and confirm the test fails again. When all steps are done, start a fresh read-only reviewer given only the card and the final diff, and have it report blockers and suggestions on scope, off-limits areas like [paths], invented rules, hidden failures and untested screen states. Stop and show me that report before any merge.

Square brackets are the parts to fill in. The prompt is ours; the story is theirs.

Where they said it

Related