Description
On 2026-07-12 the daily stale sweep closed 20 issues as not_planned across three repos: decree (9), decree-ui (5), and demos (6).
The casualties include the entire "Planned" row of ROADMAP.md — #19 (SDK codegen), #77 (validation webhooks), #78 (externally-managed fields) — which the roadmap still links as upcoming work. Also swept: the Go-to-Market launch items (#36, #37, #39), the landing site (#189), and all six milestoned demos issues.
Two side effects make this worse than the raw count suggests:
- Milestones now falsely read 100% complete.
Ecosystem (0 open / 25 closed), Go-to-Market (0 open / 39 closed) and demos SDK Examples (0 open / 11 closed) all show as finished, but they completed because the bot closed the remainder — not because the work shipped. The public launch never happened.
- ROADMAP.md now links closed issues as Planned work, which reads as abandoned to anyone evaluating the project.
Root cause
.github/workflows/stale.yml exempts only keep, good first issue, and bug:
days-before-issue-stale: 60
days-before-issue-close: 14
exempt-issue-labels: 'keep,good first issue,bug'
Long-horizon roadmap work carries none of those labels, so anything parked for 74 days is closed automatically. This recurs every 74 days until the config changes.
Fix
Issues are the roadmap on this project, so the bot should surface staleness without acting on it:
days-before-issue-stale: 60
days-before-issue-close: -1 # mark stale, never auto-close
days-before-pr-stale: 30
days-before-pr-close: 7 # PRs still auto-close
exempt-all-issue-milestones: true
Pull requests keep their existing auto-close behavior — a stale PR is genuinely abandoned work, unlike a parked issue.
The same workflow file exists in all five repos (decree, decree-python, decree-typescript, decree-ui, demos) and needs the same change in each.
Acceptance criteria
Description
On 2026-07-12 the daily stale sweep closed 20 issues as
not_plannedacross three repos:decree(9),decree-ui(5), anddemos(6).The casualties include the entire "Planned" row of ROADMAP.md — #19 (SDK codegen), #77 (validation webhooks), #78 (externally-managed fields) — which the roadmap still links as upcoming work. Also swept: the Go-to-Market launch items (#36, #37, #39), the landing site (#189), and all six milestoned
demosissues.Two side effects make this worse than the raw count suggests:
Ecosystem(0 open / 25 closed),Go-to-Market(0 open / 39 closed) anddemosSDK Examples(0 open / 11 closed) all show as finished, but they completed because the bot closed the remainder — not because the work shipped. The public launch never happened.Root cause
.github/workflows/stale.ymlexempts onlykeep,good first issue, andbug:Long-horizon roadmap work carries none of those labels, so anything parked for 74 days is closed automatically. This recurs every 74 days until the config changes.
Fix
Issues are the roadmap on this project, so the bot should surface staleness without acting on it:
Pull requests keep their existing auto-close behavior — a stale PR is genuinely abandoned work, unlike a parked issue.
The same workflow file exists in all five repos (
decree,decree-python,decree-typescript,decree-ui,demos) and needs the same change in each.Acceptance criteria
exempt-all-issue-milestones: trueanddays-before-issue-close: -1set in.github/workflows/stale.ymlacross all five reposkeep