v1.43.0 ·
The next item is not a guess
Nothing ordered the backlog. "What next?" was answered by a person reading ten items, or by an agent guessing. The order we had agreed for this project's ten items existed only in a chat message.
That matters because I want a driver that works the backlog unattended. It needs one command that answers "next" the same way every time. And that command must never promote anything itself.
What changed
aidlc roadmap next looks at the accepted backlog, leaves out anything still waiting on unfinished work, and names the item with the best rank. Items without a rank come after the ranked ones. An item with a rank that makes no sense is left out and named, so a person can fix it.
The order agreed on 2026-10-02 now sits on each backlog item as a rank. The answer is written down in the items, not in a chat log.
Why this way
Three decisions, each about keeping the pick boring.
The command has no way to write. Starting work from the backlog is the one step a person keeps, and the simplest way to protect that is to give the command nothing to start with. A test hashes the whole roadmap before and after every kind of run and fails if a single byte changes.
A broken item does not stop the command. One malformed rank or a dependency on unfinished work could have made it fail outright. Instead the item is left out and named, and the rest of the backlog is still ranked. One bad file cannot stall everything behind it.
The rank is an ordinary field the project declares. The framework does not own a "priority" concept that every project must adopt.
What it does not do
I dropped one test on purpose. The obvious test would pin the ranks on the live backlog files. It would fail every time an item ships, which makes it a trap for all later work, so it is not there. A malformed rank in a real item is caught at run time instead: the command leaves that item out and names it.
It also does not decide whether to start the item it names. That stays with a person. The command answers a question. It does not act on the answer.