chore: manage Dispatch labels from labels.yaml#210
Conversation
4b27e95 to
4308163
Compare
There was a problem hiding this comment.
AI Automated Review
Full PR review.
Analysis engine: MiniMax-M2.7@https://litellm.jory.dev/v1 (anthropic) — escalated (fast_low_confidence)
Review: PR PR 210 — chore: manage Dispatch labels from labels.yaml
Recommendation: Approve
This PR adds version-controlled label management for Dispatch worker queues by introducing a canonical label configuration file and a sync workflow. The changes are scoped to GitHub infrastructure (.github/ only) and do not touch any game code, GDScript, or runtime behavior.
Change-by-Change Findings
.github/labels.yaml (new file, 76 lines)
Defines the canonical Dispatch-managed label set:
- Status labels (
status/backlog,status/ready,status/in-progress,status/in-review,status/done) - Priority labels (
priority/p0throughpriority/p3) - Classification labels (
bug,enhancement,documentation,dependencies,audit,pr-review-fix,ai-review,umbrella) - Dispatch/workflow labels (
needs-info,needs-human,needs-escalation,blocked) - Stable agent labels (
agent/saffron-normal,agent/saffron-escalated)
The file includes a comment encouraging repo-specific labels to be appended below, preserving local customization.
.github/workflows/label-sync.yaml (new file, 39 lines)
Triggers on:
workflow_dispatchwith an optionaldry_runboolean inputpushtomainwhen.github/labels.yamlchanges
The workflow:
- Checks out only
.github/labels.yamlvia sparse-checkout (minimal footprint) - Runs
EndBug/label-sync@v2.3.3withdelete-other-labels: false - Permissions:
contents: read(top-level) +issues: write(job-level) — appropriate for label mutation - Uses pinned commit hash
52074158190acb45f3077f9099fea818aa43f97afor the action - Uses
actions/checkout@v6.0.3(pinned commitdf4cb1c)
Standards Compliance
The PR follows repository conventions for GitHub Actions:
- Pinned action references: Both
actions/checkoutandEndBug/label-syncuse full commit SHAs with version comments, matching the pattern seen in other workflows (e.g.,ai-pr-review.yaml,release.yml). - Minimal permissions: Top-level
contents: readis sufficient; job-levelissues: writeis the minimum required for label mutation. This follows least-privilege principles documented inai-review-rules.md. - No release tags created: As noted in AGENTS.md, releases are tag-driven and this is scoped infrastructure work — no release discussion or tag needed.
- Repository history confirms
actions/checkoutversioning: The repo has updatedactions/checkoutfrom v4 → v6 and between v6 patch versions (6b09134,486b39b), so this PR's use of v6.0.3 is consistent with established upgrade practices.
Linked Issue Fit
No linked issue was present in the PR body. The PR is self-describing: it establishes version-controlled label management for Dispatch worker queues, which is a workflow-infrastructure improvement. No acceptance criteria to verify against.
Evidence Provider Findings
No evidence providers were configured for this review.
Tool Harness Findings
No tool harness output was provided. The CI check results table shows all three checks passed:
- macOS validation: success
- Headless smoke test: success
- Script test suite: success
These are standard validation gates for this repository (as documented in CONTRIBUTING.md and AGENTS.md) and confirm no regressions.
Safety Verification
The PR body explicitly states and the diff confirms:
delete-other-labels: falseis set, so existing labels are preserved- The sparse-checkout fetches only
.github/labels.yaml, minimizing git operations - No game code, GDScript, or runtime behavior is touched
- Permissions are scoped to the minimum required for label management
Unknowns / Needs Verification
None. The diff is complete, the YAML is valid, the action references are pinned, and CI passed.
Conclusion
This is a well-scoped infrastructure PR that moves Dispatch-managed labels into version control. It follows repository conventions for action pinning, minimal permissions, and CI hygiene. The safety guarantees (no label pruning, sparse checkout) are correctly implemented. No game code or runtime behavior is affected. Approve for merge.
Why
Dispatch worker queues and PR workflows depend on stable labels such as
status/*,priority/*,agent/*, andai-review. This moves the canonical Dispatch-managed label set into.github/labels.yamlso label setup is version-controlled instead of manual GitHub UI state.What changed
.github/labels.yamlwith Dispatch status, priority, classification, workflow, stable agent,ai-review, and activeumbrellalabels.EndBug/label-sync@52074158190acb45f3077f9099fea818aa43f97a.workflow_dispatchand runs when.github/labels.yamlchanges onmain.Safety
delete-other-labels: false.agent/*labels remain untouched unless explicitly listed in the config.Validation
.github/labels.yamlas YAML..github/workflows/label-sync.yamlas YAML.status/*,priority/*, stableagent/*, andai-reviewlabels are present.actions/checkoutand pinnedEndBug/label-syncreferences.contents: read,issues: write.delete-other-labels: falseis present.Dispatch worker labels are now version-controlled.