Daniel StoyanovAtlasLangGraph · Python

Sheet A-04 · Management & orchestration

Atlas

A supervisor graph that plans, delegates and re-plans

A delivery-management agent that turns a goal into a plan, routes each work item to a specialist worker, and loops back when a worker reports a blocker. Built as an explicit LangGraph state machine, so the control flow is a diagram you can read, not prompt text.

Take a look inside

Opens the drafting table. The first sheet starts plotting as soon as you arrive.

Fig. 1 - the supervisor graphstatic · at rest
STATE: TypedDict · Annotated[list, operator.add] fan-inokblockerre-planSTARTENDPLANNERdecompose_goalESTIMATORestimate_itemASSIGNERassign_ownerREPLANNERsplit · deferthe cycle: one conditional edgeMAX_REVISIONS = 3 · no endless loopCHECKPOINTER: InMemorySaverokblockerre-planSTARTENDPLANNERdecompose_goalESTIMATORestimate_itemASSIGNERassign_ownerREPLANNERsplit · deferone conditional edgeMAX_REVISIONS = 3InMemorySaver

NoteBlue is the cycle. A blocker sends control through the replanner and back to the planner, which drafts the next revision.

What makes it special

General notes · 4
  1. Note 1

    Re-planning is an edge, not a retry

    When an item can’t be estimated, the router takes the blocker edge: the replanner rewrites the plan and hands control back to the planner for a new revision. The loop is one add_conditional_edges call, capped at three revisions so a permanent blocker can’t spin forever.

  2. Note 2

    The plan changes shape

    A blocked item is split into the half that can start now and the half gated on the missing prerequisite. The unblock task becomes a real work item, every dependant is re-wired, and the lowest-leverage item is put up for deferral to pay for it.

  3. Note 3

    Numbers it won’t fake

    An item blocked on a missing prerequisite comes back unestimable, with its blocker and its spread (2d to 9d) instead of a padded average. Gated work is marked provisional and kept out of the committed count.

  4. Note 4

    Scope cuts wait for a human

    Deferring work out of a release is a caution-tier action. The replanner raises an approval before it cuts anything, and a denial keeps the item in the plan.

Inside the demo

3 sheets
  1. SH-01

    Plan a release

    Decompose, estimate, assign. Five items, one critical path, no padding.

  2. SH-02

    The re-planning cycle

    A blocker makes an item unestimable. Control returns to the planner and the plan changes shape.

  3. SH-03

    An underspecified goal

    Four declared assumptions, zero questions, and one estimate it refuses to fake.

Under the hood

Title block · sheet A-04
Stack
LangGraph · Python
Pattern
Stateful supervisor graph with conditional cycles
Source
agents/atlas-orchestrator/atlas/graph.py
Why this architecture
When the control flow matters more than the prose (fan-out, joins, retries, re-planning cycles), a graph makes it explicit and testable, and checkpointers make a long run resumable. Overkill for a linear chat; the right call the moment you need a cycle.
Tools · risk tier
  • decompose_goalBreak a goal into dependency-ordered work items with owners.safe
  • estimate_itemEstimate a work item and surface any blocker that makes it unestimable.safe
  • assign_ownerAssign a work item to a team member with a rationale.safe

See the graph run

On the drafting table each sheet runs node by node: the schematic lights up as control moves, and plans, schedules and revision diffs are drawn as they are produced.

Take a look inside