Skip to content

Fix status:* label hygiene in the ZenDev runbooks - #22

Merged
drevendev merged 1 commit into
masterfrom
claude/issue-20-status-label-hygiene
Sep 3, 2026
Merged

drevendev merged 1 commit into
masterfrom
claude/issue-20-status-label-hygiene

Conversation

@drevendev

Copy link
Copy Markdown
Owner

Closes #20

Achieved outcome

Status-label hygiene now holds across the AUTHOR/ACCEPTOR loop: setting a
status:* label always replaces whichever one was already there, and closing an
Issue removes its status:* label. The seven closed Issues that had already
accumulated a stale label (#19, #17, #14, #10, #8, #6, #4) are cleaned up directly.

Tested revision

d86b979bfd27cffd7b1648aae69f78f35918cc8e

Changed artifacts

Acceptance criteria

Checks

Check Outcome Evidence
npm ci passed 39 packages installed, 0 vulnerabilities
npm run typecheck passed tsc --noEmit clean
npm test passed vitest: 1 file, 2 tests passed
npm run build passed vite build succeeded
dotnet restore passed both projects restored
dotnet build --configuration Release passed 0 warnings, 0 errors
dotnet test --configuration Release passed 44/44 passed
python -m unittest discover -s scripts/tests passed 20/20 passed
python scripts/policy_guard.py --base origin/master passed "passed over 2 changed file(s)" — docs/zendev/** only, no product paths

All checks run locally against the tested revision above; no check is not_run or
unavailable.

Not checked

Nothing deliberately skipped. This is a docs-only change to two runbook files; there
is no product behavior to regress, so no new automated test was added — the change
is process guidance, verified by re-reading the edited sections and by the label
state shown above.

Assumptions and unknowns

Highest-risk area for review

The three edited points in AUTHOR_RUNBOOK.md (claim, hand-off, blocked) are the
only enforcement mechanism for "at most one status:* label" going forward — it's a
runbook instruction, not a workflow-enforced guard, matching the Issue's explicit
non-goal ("No automation of label hygiene in a workflow"). If a future AUTHOR run
skips the replace step, the label can drift again; that's an accepted, named
trade-off, not an oversight.

Remaining gate

None. No decision, authority, or follow-up is required to accept this change.

Closes #20

The label catalog allows at most one status:* per Issue, and a closed
Issue carries none. The author runbook set status:in-progress,
status:needs-review, and status:blocked without ever removing a prior
status:* label, and the acceptor runbook never removed the label when
closing an Issue. Seven closed Issues (#19, #17, #14, #10, #8, #6, #4)
had accumulated stale status labels as a result; their labels are
removed as part of this change.
@drevendev
drevendev merged commit 10af216 into master Sep 3, 2026
3 checks passed
@drevendev
drevendev deleted the claude/issue-20-status-label-hygiene branch September 3, 2026 20:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Closed Issues keep an active status label

1 participant