[ 01 ] THE PROBLEM
Your coding agent used to ask questions. It doesn't anymore.
You paste “extract auth into its own service.” It reads 40 files, writes a 200-line plan, edits 14 files. Fully autonomous. It didn't know billing calls auth.verify() directly. It didn't know the session store shares auth's connection pool.
You say “add real-time notifications.” You already have Redis Streams running. Your agent picks WebSockets from scratch. One sentence on a canvas would have fixed it.
You say “refactor the cache layer.” Mobile app depends on those cache keys. 40k users. Your agent rewrites them. Clean code, broken sync.
Things you could've corrected in ten seconds — if it had asked.
agent-plan.md
## Extract Auth Service
1. Create auth/ directory
2. Move verify(), refresh(), revoke()
3. Update 14 import paths
4. Add auth service to DI container
5. Run tests ✓
⚠ Missed: billing.charge() calls auth.verify() directly
⚠ Missed: session store shares auth connection pool
⚠ Missed: mobile app caches auth tokens client-side
workbench session — token consumption
[ 02 ] HOW IT WORKS
Relay reads the code. Then tells you what it's assuming.
Relay explores your codebase before you explain anything. Comes back with what it found — then does something your coding agent never does:
States its assumptions out loud.
You confirm. Correct. Fill in what only you know. The picture updates. Component by component. Not one pass. Not 40 files and hope.
relay assumptions
You corrected 1 assumption. Relay updated the plan.
Early Access
Like what you see?
We're building this with engineers who deeply care about their craft.
Or say hi directly — nithinsj@basegraph.co·nithinsudarsan@basegraph.co