Aryabhata
The Planner — breaks the job down.
Takes one goal and turns it into a dependency-ordered graph of smaller tasks — what has to happen before what, what can run at the same time, and what counts as each piece being done.
What it can reach
- Decomposes a goal into tasks
- Builds the dependency graph
- Detects and breaks cycles
- Runs independent branches in parallel
- Isolates concurrent work, merges serially
- Blocks dependents of a failed task
It splits the reconciliation into: read the statement; extract the invoice rows; agree the matching rule with you; match; flag the exceptions. The fourth cannot start until the first three are done, the first two have nothing to do with each other and run together, and the third is marked as needing you.
How it works
It runs when the orchestrator decides a job is big enough to need a plan, and it does exactly one reasoning pass: decompose the goal into at most twelve sub-tasks, each with an owner, its dependencies, and the criteria that make it done. Everything after that single pass is deterministic code — the plan is parsed, invalid entries are dropped, dependency cycles are broken, and what is left is compiled into real task objects. Its instructions are explicit that it never does the work itself.
The graph is then run rather than read out. A task starts only once every task it depends on has completed; independent branches run at the same time, and when two of them would edit the same project at once each gets its own isolated working copy, merged back one at a time. If a task fails, everything downstream of it is marked blocked rather than attempted — so the rest of the plan still finishes, and you are told exactly what did not.
What runs it
Runs on whichever model the turn was routed to, and decomposition is the work that pushes a turn up a tier. A multi-step goal on Auto routes to Rishi, so Rishi is usually the model behind this stage; ordinary complex work reaches it on Yuva.
The desktop app can run your own API keys or a local model instead. The same tiering then applies to whatever you pointed it at.
Then it hands over
Before any delegated step runs, this decides what that step is allowed to know — the project’s own instructions, the relevant slice of the session, the facts remembered from before — and packs them in. Then it is the one path every result comes back through.
Why the name
476 – c. 550 CE
Aryabhata wrote the Aryabhatiya in 499 CE, at the age of 23 by his own account. It gives a sine table, a value for π accurate to four decimal places — and, notably, described as approximate — methods for quadratic and indeterminate equations, and a decimal place-value system used as a working tool.
The part that mattered most was the refusal to take an explanation on authority. He accounted for eclipses by the geometry of shadows rather than by the received mythological cause, and described the apparent motion of the stars as a consequence of the earth’s own rotation. India’s first satellite was named after him in 1975.
Break the problem into parts small enough to be worked out — then be exact about how the parts depend on each other, and honest about what is only approximate.
- Decompose until each piece is small enough to be finished and checked.
- State the dependencies explicitly; order follows from them, not from taste.
- Say what each piece has to satisfy before anyone starts on it.
engine/src/aryabhata — task decomposition, dependency graph
This agent is not Aryabhata and holds none of his authority. It is a decomposition module named after him, it produces plans that are sometimes wrong, and it shows you the plan rather than asserting it.
