What Are You Delegating?
Every abstraction is a trade: it removes work by making decisions for you. Those decisions are still being made — just not by you, and not visibly. For each abstraction: what it genuinely handles, what remains yours, and the escape hatch.
An ORMAn HTTP client or SDKA managed database or cloud platformAn identity providerAn LLM or coding agentA web frameworkA library functionA managed message queueA cacheA container runtime and orchestrator
What are you delegating to an llm or coding agent?
Agentic AIYou write
1"Add retries to the payment call and make it robust."The abstraction handles
- ✓Producing a plausible implementation in seconds
- ✓Recalling APIs, idioms and boilerplate you would otherwise look up
- ✓Explaining unfamiliar code, tools and error output
- ✓Drafting tests, docs, migrations and runbooks
- ✓Exploring alternatives faster than you could type them
Still your responsibility
- →Verification — whether the plausible solution is correct under concurrency, failure and load
- →The problem statement — the constraint it should optimise for, which it cannot guess
- →The failure mode it ignored — a retry without an idempotency key looks robust and double-charges
- →Security and blast radius — what the generated code can reach, with whose credentials
- →Debugging without it — when it is wrong, down, or confidently repeating the same fix
Know your escape hatch
When: The output is wrong in a way you cannot articulate, or the model keeps proposing the same non-fix.
Drop to: Your own engineering knowledge: the fundamentals that let you read the trace, the plan, the packet, the stack.
This is the whole point of the principle. The LLM amplifies what you bring; it cannot supply what you lack, and neither can you tell when it did not.
Go deeper on this one:One agent tool call, all the way down