Every agent, no matter how it's dressed up, runs some version of this:
``` state = plan(goal) while not done(state) and within_budget(state): action = decide(state) result = call_tool(action) state = observe(state, result) stop(reason = goal_met | budget_hit | timeout | error_floor) ```
That's it. When you read about frameworks, orchestrators, or planner-worker splits, you're reading about scaffolding built on top of this shape.
The practical implication: if your framework hides these five moves behind abstraction, your review surface hides with them. Know which line of your codebase maps to each step.