Skip to content

Build Orders ​

A Build Order turns a large feature into typed members, lanes, phases, dependencies, complexity, and optional icons.

Pack contents ​

File or fieldPurpose
.aiur/build_orders/<slug>.jsonWritable workspace mirror discovered by the daemon.
build-order.jsonMembers, lanes, phases, dependencies, complexity, and icons.
status.jsonCurrent execution state.
tickets/<ID>.mdDraft member contract before tracker promotion.

The canonical state-node copy lives at ~/.aiur/repo/<owner>/<repo>/builds/<slug>/.

Pack locationVisible to Aiur?
Active workspace mirrorYes.
Repository state nodeYes.
docs/ onlyNo.
Another inactive branch onlyNo.

The Build Order page ​

SurfaceShows
/build-ordersDiscovered catalog.
/build-orders/:root_numberOne root's phases, lanes, graph, members, usage, and analytics.
aiur build-orders [<root>]The same projection in a terminal.
--jsonMachine-readable Build Order rows.

The catalog's Tickets completed percentage counts accepted completions among tickets whose lifecycle is resolved. Partial coverage appears alongside the percentage.

In a selected Build Order, Estimated work progress combines reported work estimates using member complexity weights. It can advance before any ticket is complete. Last-known estimates show their age; unavailable measurements remain unknown.

Open a member's context to use Read chat when that member has a readable conversation in the current run. This opens the same conversation drawer as Units and does not resume the worker.

A draft says chat has not started. A member without readable current-run history shows chat as unavailable. Completed workers normally have no current-run chat handle after leaving the running roster, so their context shows chat as unavailable.

On the catalog, ticket, epic and wave counts remain numeric when resolution succeeds, including a real 0. A count that could not be resolved never renders as 0 or as a bare dash—it names its cause instead:

CellMeaningWhat to do
Budget exhaustedThe planning query budget or a local GraphQL hold blocked the read. Shows the reset time when the hold reports one.Wait for the reset, or raise tracker.github.planning_page_budget / planning_call_budget.
Rate limitedThe tracker rate limited the read. Shows the reset time when reported.Wait for the reset; reduce concurrent agents if it repeats.
Timed outThe request exceeded its deadline.Usually transient; it retries on the next labelled read.
UnreachableThe connection was refused or dropped.Check network reachability to the tracker—not latency.
Not authorizedThe credential was missing or rejected.Check the configured GitHub token.
Unreadable responseThe response did not match the expected shape.Likely an Aiur or tracker schema change; report it.
Partial readThe read succeeded but hit Aiur's own planning page limit before every member. This is an Aiur bound, not a tracker fault.Raise planning_page_budget.
UnresolvedThe failure could not be classified.No cause is claimed on purpose—a wrong reason is worse than none.

These states are intentionally not estimates. aiur build-orders --json reports the same cause as count_resolution_failure, with count_resolution_reset_at when a reset horizon is known.

A local planning pack remains readable when a run starts globally paused before its first membership snapshot. The selected page and aiur build-orders identify unavailable current-run membership or ticket status separately from plan readability; any unobserved ticket state or completion remains unresolved.

Draft members carry local ticket document paths and no invented GitHub issue URL; draft blockers cannot claim a live blocking state.

Desktop Build Order graph with synthetic example member tickets

The repository state node ​

Aiur separates the repository's tracked code from daemon-owned state under ~/.aiur/repo/<owner>/<repo>/.

PathHolds
latest/Aiur-managed warm clone of the configured base branch.
builds/State-node Build Order packs, daemon status projections, and cross-boot build summaries.
analytics/Telemetry summaries, including runs/<boot-id>/run-summary.json.
meta/Executor findings at findings.ndjson and narrative retrospectives at retros/<boot-id>.md.

These paths are machine-local. Do not commit them, and do not expect copying a repository to copy its run state.

aiur init and the first run create this state as needed. Aiur does not create executor/handoff.md: the durable narrative is meta/retros/<boot-id>.md, and the shareable artifact is the generated docs/executor/open-findings.md digest.

Executor handoff and findings ​

Durable recordLocation or command
Accepted boundary, run identity, decisions, evidenceExecutor handoff.
Hourly retrospectivemeta/retros/ under the repository state node.
Deferred findingaiur findings --record into meta/findings.ndjson.
Current bottleneckNamed in the hourly filing with evidence-supported follow-up.

Git history and an old Dashboard capture are not substitutes for current Build Order state.

Command macro, delegate micro, maximize APM.