When an engineering team adopts coding agents, the work splits across two places that do not talk to each other. The plan lives in an issue tracker written for weekly standups; the actual execution lives in ephemeral terminal scrollback on three different laptops.
Within two days, nobody knows which acceptance criteria were actually verified, which files an agent read before making a change, or why a task stalled on turn nineteen.
One tree for humans and agents
In Fractal OS, the project plan and the execution log live in the same DOM (project.xml)11. Because project.xml is a strict tree, agents can query it with XPath (//task[@status=‘in-progress’]) instead of burning thousands of tokens reading prose status updates.. Every <task> node owns its work-breakdown number, its upstream dependencies, its verification <outcome> criteria, and the exact <session> runs that modified the repository:
<task id="codemovie-service" wbs="1.4" status="completed" assigned-agent="omarish-agy">
<title>Extract svgterm into packages/svgterm and apps/codemovie</title>
<outcome id="oc-k8s-ready" status="met">
<criterion status="met">Stateless HTTP rendering at /demos/ and /demos/<slug>.svg</criterion>
<criterion status="met">Zero-drift golden transcript verification in CI</criterion>
</outcome>
<session id="run-codemovie-7b2f" model="gemini-3.1-pro"
turns="14" read-calls="19" edit-calls="11" status="completed" />
</task>
Querying execution history instead of guessing
Because sub-agents log their steps directly into the task node as they work, a lead engineer never has to ask an agent to summarize what it did. You can inspect the tree directly—or query across runs to see which tasks required human intervention, which files triggered the most re-reads, and where critical-path dependencies are blocked.
When the plan is a data structure that both humans and models can mutate atomically, coordination stops being a meeting and becomes an invariant you can check in milliseconds.