ci(issues): enforce the delivery label rules with one issue-state workflow - #138
Merged
Merged
Conversation
V3RON
added this pull request to stack #139
September 9, 2026 23:31
V3RON
force-pushed
the
delivery/automation
branch
from
September 10, 2026 01:21
c2517c8 to
271e0a7
Compare
V3RON
force-pushed
the
delivery/automation
branch
2 times, most recently
from
September 10, 2026 01:25
3a615ea to
eda6f45
Compare
V3RON
marked this pull request as ready for review
September 10, 2026 01:36
…kflow Six jobs, all through actions/github-script so no third-party action is needed: adding a <kind>:<state> label drops the old one; task:draft becomes task:ready once approved, specified, and unblocked; a reporter's reply moves bug:needs-info back to bug:triage; the last sub-issue closing on a feature:planned issue posts a completion-conditions note; bug:needs-info silent for two weeks closes as not planned; a PR from a <kind>/<n> branch must close #<n> and nothing else. Documents the automation in docs/internal/agent-rules/delivery.md and docs/internal/DELIVERY.md.
V3RON
force-pushed
the
delivery/automation
branch
from
September 10, 2026 01:40
eda6f45 to
2de2dd4
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Third of three stacked PRs. One workflow,
issue-state.yml, is the single place that enforces the label rules mechanically. Six jobs, all throughactions/github-script(pinned to a SHA like the rest of CI), no third-party actions:exclusive-labelissues.labeledwith a<kind>:<state>labeltask-readyissues.edited(body) andissues.closedtask:draft→task:readywhen the approval box is ticked, the Technical spec section has content, and every#nunder Depends on is closed. On close, re-evaluates every open draft that depends on the closed issueneeds-info-replyissue_comment.createdby the issue author onbug:needs-infobug:triagefeature-verifyissues.closedfeature:plannedandsubIssuesSummary.completed == total, comments that completion conditions are duebranch-matches-issuepull_requestopened/edited/synchronize<kind>/<n>branch fails unless its body closes#<n>and no other issue; other branches are ignoredstale-needs-infobug:needs-infountouched for 14 days closes as not planned with a commentActions taken with the workflow token do not re-trigger the workflow, so each job removes the label it replaces itself rather than relying on
exclusive-label.The four judgment transitions stay manual on purpose:
bug:new→bug:triage,bug:triage→bug:ready,feature:spec→feature:ready, and ticking a task's approval box. Documented in a new Automation section ofdocs/internal/agent-rules/delivery.md.Verified
The body parser (
section,dependencies,specified,approved) was run againstdocs/internal/templates/task.mdblank and filled: blank → not approved, not specified, no deps; filled → approved, specified, deps parsed;#NNNplaceholder is not read as a dependency. The workflow YAML parses. The jobs themselves need a live issue to exercise, which happens after PR 1's labels exist.Stack