Audit configured labels at /setup time and offer to create any missing ones#185
Merged
Merged
Conversation
Member
Author
Review SummaryVerdict: APPROVE Findings
|
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.
Add a configured-label audit step to
/setupPhase 4 so missing labels are caught at setup time rather than at the first downstream skill that needs them.What's new
skills/github-agile/scripts/label-audit.py— reads.codecannon.yaml, collects the labels configured skills will try to apply (TICKET_LABELSpool plus the threeQA_*_LABELvalues, skipping any that are unset), diffs againstgh label list, and prints missing names one-per-line on stdout. A short diagnostic line goes to stderr. The calling skill can branch on "is stdout empty?" without ingesting the full 100-label JSON dump fromgh.skills/github-agile/scripts/label-create.py— wrapsgh label createwith a baked-in defaults table for well-known names (bug,enhancement,documentation,chore,ready-for-qa,qa-passed,qa-failed) plus a neutral gray fallback for renamed/unknown names. Warn-and-continue on individual failures (typically "already exists"), exits 0 as long as the loop completed — same posture as submit-for-review should apply a configurable ready-for-qa label to the closed issue after merge #182.skills/github-agile/setup.mdPhase 4 — adds a "Configured-label audit" sub-section that calls the audit script, branches on empty output, and on missing names asks the operator once before invokinglabel-create.py. The existing greenfield baseline block was also refactored to calllabel-create.pywith the fixed list, eliminating the previous "use sensible colors and short descriptions" improvisation surface.Scope decision
Original ticket was a skill-text-only audit. Expanded scope in conversation to extract the mechanical bits into two scripts, matching the recent direction of extracting mechanical sequences (#163, #166, #168). The audit script in particular avoids piping 100 labels' worth of JSON through the LLM's context. Interactive bits (yes/no parsing, summary prose) stay in the skill template — that's the right division.
Verification
make checkpasses (placeholder + permission validation).label-audit.pyrun against this repo's config: 7 configured labels, 0 missing — silent-pass branch behaves correctly.label-create.py ready-for-qaagainst an existing label: warns to stderr, exits 0.python3is already inpermissions.yaml, so no permission entries needed for the new scripts.Closes #183