v1.37.0 ·
A workflow that had never run
Turn on roadmap.sync and every roadmap item lands on GitHub as a labelled issue. Then it stops. A GitHub Project board on top of that shows every issue in one column with nothing to move it. Two repositories hit this: this one on 2026-09-08, with 55 issues in one column, and fieldmodel-apps on 2026-09-28.
The stop is deliberate. Writing a Project's Status field needs a token with project: write, and a workflow's own GITHUB_TOKEN cannot do that at any permission level. The answer already existed here, as a small workflow at .github/workflows/project-status.yml that reads the aidlc:<status> label and sets the column. But nobody who installs the package could find it.
It had never run
The backlog item called that workflow working. I checked on 2026-09-28 and it had never written to a board. Every run on record was skipped or cancelled, because AIDLC_PROJECT_NUMBER was never set. This repository's own board still showed 16 in Inbox and 17 On Hold, three weeks after those statuses were emptied into backlog.
Two defects were visible without running it. It needs gh 2.97.0 or later (2026-07-31), the first release where gh project item-edit takes --url and --field, and an older runner image fails with an unknown-flag error. And it hard-coded the discovery label aidlc, while roadmap.sync.label lets a project rename it. On such a project every run would skip, green, having written nothing.
What changed
aidlc roadmap board-workflow prints the workflow. You save it in your repository's workflows folder, store a token that can write to projects, set the project number, and each card follows its issue's status label. The discovery label is now read from a variable, and the workflow checks the runner's gh version first and names it if it is too old.
The status labels are now a stated promise: renaming or removing one is a breaking change. A test fails if the workflow's column map misses a status, and another fails if this repository's copy drifts from the shipped one.
Before shipping, I ran its steps against a real board. It moved issue #56 from Inbox to In Progress. That was the first time this workflow wrote to a board. Neither defect would have shown up here, since this repo uses the default label and a recent gh.
Why it only prints
I considered copying the workflow into every project on update. Most projects never want a board, and a file the tool copies is a file it must keep in step and clean up. I also considered installing it, which saves the smallest part of the job, because creating the token is the real setup cost. It would also make this project responsible for CI running in other people's repositories with their tokens.
Moving the board from the sync command would be better product. It also puts a token that can write to projects into the sync path for every user, for a need one person has asked for twice. That waits until someone else asks.