v1.81.0 ·
Items a person must start
The problem
Autopilot works whatever aidlc roadmap next names. pickNextAt
(packages/cli/src/roadmap/next.ts) skips only bad ranks, promoted items and blocked items, so
nothing keeps autopilot off an item that needs a person. The only way today is to keep it out of
backlog/ or rank it below everything autopilot will reach, and both distort the backlog.
The project already declares run in roadmap.item_fields and the backlog items already carry
run: autopilot or run: attended. Nothing reads it.
How it could be solved
Three decisions, each about where the line between the loop and the person should sit.
The first was where the check lives. Autopilot could have filtered the backlog's answer itself, but then the question "what should be built next?" would be answered in two places that could drift apart. Instead the one command that ranks the backlog gained a switch that asks for autopilot's view. The same switch lets a person see exactly what autopilot would pick, and why it passed over the rest.
The second was what a missing or unreadable value means. A missing value means autopilot may build the item, so a project that never uses the field sees no change at all. A value nobody can read is the opposite case: the unattended reader treats it as "keep out", because a typo must never be read as permission. A person still sees that item in their own list, with a warning to fix it.
The third was how the field gets set. It is asked for in the same question that already asks for an item's rank when an idea is triaged, and written as plain text. No new command was added, because unlike a rank, a run mode has no rule across items that a command would need to protect.
How AIDLC solves it
Roadmap items say whether autopilot may build them alone, and autopilot obeys.
run: autopilot | attendedon a backlog item. Missing means autopilot may build it, so a repo that never sets the field sees no change. Any other value keeps autopilot off the item.aidlc roadmap next --autopilotleaves attended items out of the order and lists them as skipped (attended, orbad-runfor a malformed value) in--explainand--json. Plainaidlc roadmap next, the HTML board and the console still offer attended items to a person.- Autopilot picks with
--autopilotand saysleft for a person (run: attended): <items>. With only attended items ready,autopilot run --allfinds nothing ready and ends. - Triage proposes the run mode with the rank and asks for both in one question.
Minor, not patch: a new option on roadmap next, and autopilot now skips items it used to start.
On this repo's backlog today, autopilot's next pick moves from
20261008-blocking-actions-never-block.md (rank 3, attended) to
20261010-ci-infra-failure-reads-as-code-failure.md (rank 6, autopilot).
Changes
packages/cli/src/roadmap/next.ts—parseRun(),PickOptions, the run check,badRun.packages/cli/src/commands/roadmap.ts—next --autopilot; malformed-run warning.packages/cli/src/autopilot/driver.ts—startBuildspicks with--autopilot, names attended items.packages/content/skills/04-roadmap.md— "Run mode on the way in";84-autopilot.md— pick line.packages/content/docs/roadmap.md,packages/website/src/data/cli-reference.json..aidlc/knowledge/— decisionroadmap-next-autopilot-flag.- Tests: new
roadmap-next-run.test.ts,roadmap-run-mode-docs.test.ts; new cases inautopilot-driver.test.ts,autopilot-run.test.ts.