Add sprint-check, issue-cleanup, and hotfix-release skills#8217
Add sprint-check, issue-cleanup, and hotfix-release skills#8217rajeshkamal5050 wants to merge 3 commits into
Conversation
Adds three engineering automation skills: - sprint-check: validates sprint readiness, checks labels/milestones/project fields, supports sprint close rollover - issue-cleanup: scans backlog for hygiene gaps, flags customer-reported issues without triage, stale milestones - hotfix-release: creates hotfix branch from release tag, cherry-picks PRs, bumps version files, generates changelog entry Partially addresses #8033 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
hotfix-release: - Add Triggering the Release section with ADO pipeline link and steps - Add Post-Release section (changelog merge-back, no version file merge) - Fix tags guidance: pipeline creates tags, not manual - Add Go as optional prerequisite (build verification) - Remove changelog from version-files.md (avoid Step 5/6 overlap) - Fix grep -oP to sed for macOS compatibility sprint-check: - Add Step 8: Sprint Close / Rollover with bulk move option - Fix --paginate to manual cursor pagination (tested, doesn't work) - Sync hygiene-rules.md with issue-cleanup (was drifting) issue-cleanup: - Fix hardcoded assignee example to @me - Fix --milestone "" to --search "no:milestone" Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
Pull request overview
Note
Copilot was unable to run its full agentic suite in this review.
Adds three new GitHub Copilot “workflow skills” to automate sprint readiness checks, backlog hygiene scanning, and hotfix branch/release preparation.
Changes:
- Added new skills:
sprint-check,issue-cleanup, andhotfix-releasewith step-by-step workflows and reference docs. - Documented shared issue hygiene rules and Project V2 GraphQL mutation patterns.
- Updated cspell overrides for newly introduced domain-specific terms in skill docs.
Show a summary per file
| File | Description |
|---|---|
| .vscode/cspell.misc.yaml | Adds cspell allowlist overrides for new skill documentation terms. |
| .github/skills/sprint-check/SKILL.md | Defines sprint readiness workflow, queries, reporting, and interactive fixes. |
| .github/skills/sprint-check/references/hygiene-rules.md | Documents validation rules used by sprint-check (and shared with issue-cleanup). |
| .github/skills/sprint-check/references/project-mutations.md | Provides GraphQL examples for Project V2 field reads/mutations used by sprint-check. |
| .github/skills/issue-cleanup/SKILL.md | Defines backlog hygiene scan workflow, reporting, and interactive fixes. |
| .github/skills/issue-cleanup/references/hygiene-rules.md | Duplicates the shared hygiene rules reference for issue-cleanup consumers. |
| .github/skills/hotfix-release/SKILL.md | Defines hotfix workflow from tag through cherry-picks, version bump, changelog update, and push. |
| .github/skills/hotfix-release/references/version-files.md | Documents which version files to update and how to validate consistency. |
Copilot's findings
- Files reviewed: 8/8 changed files
- Comments generated: 4
| description: >- | ||
| **WORKFLOW SKILL** — Validates sprint readiness for issues and PRs. | ||
| Checks labels, milestones, project fields (Sprint, Priority, Initiative), | ||
| EPIC parents, and assignments. Can fix fields interactively with user confirmation. |
There was a problem hiding this comment.
Fixed — changed to issues only.
| - Record `mergeCommit.oid` — this is what we cherry-pick | ||
| - If PR is not merged, warn and skip it | ||
|
|
||
| **Determine merge strategy per PR:** |
There was a problem hiding this comment.
Fixed — checks parent count via git show --pretty=%P now, not commit count.
|
|
||
| ```bash | ||
| git fetch --tags | ||
| git tag -l "azure-dev-cli_VERSION" |
There was a problem hiding this comment.
Fixed — standardized to BASE_VERSION placeholder.
| projectItems(first: 10) { | ||
| nodes { | ||
| project { number } | ||
| id | ||
| fieldValueByName(name: "Sprint") { | ||
| ... on ProjectV2ItemFieldIterationValue { title iterationId } | ||
| } | ||
| fieldValueByName(name: "Priority") { | ||
| ... on ProjectV2ItemFieldSingleSelectValue { name optionId } | ||
| } | ||
| fieldValueByName(name: "Initiative") { | ||
| ... on ProjectV2ItemFieldSingleSelectValue { name optionId } | ||
| } | ||
| } | ||
| } |
There was a problem hiding this comment.
Fixed — bumped to first: 100.
…ts, description Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
jongio
left a comment
There was a problem hiding this comment.
Three new engineering automation skills -- sprint-check, issue-cleanup, and hotfix-release. Structure follows the existing skill pattern well (frontmatter, references dir, cspell overrides).
Summary of findings (2 medium, 2 low):
- sprint-check body heading still says "issues and PRs" despite the frontmatter fix (incomplete fix from prior feedback)
- hygiene-rules.md duplicated verbatim across sprint-check and issue-cleanup references
- hotfix-release suggests force-push as error recovery on a potentially shared branch
- hotfix-release validates PRs are merged but not that they were merged into main
|
|
||
| # sprint-check | ||
|
|
||
| **WORKFLOW SKILL** — Validates sprint readiness for issues and PRs in the current sprint. |
There was a problem hiding this comment.
[medium] The YAML description was fixed to say issues only, but this heading still says issues and PRs in the current sprint. Looks like the earlier fix was incomplete -- this should match the frontmatter.
| @@ -0,0 +1,65 @@ | |||
| # Issue Hygiene Rules | |||
There was a problem hiding this comment.
[medium] This file is identical to sprint-check/references/hygiene-rules.md (66 lines, byte-for-byte). Two copies means two places to update when rules change. Consider putting a single copy in a shared location (e.g. .github/skills/_shared/hygiene-rules.md) and referencing it from both skills.
| - PR not merged → warn, skip, continue with others | ||
| - Cherry-pick conflict → interactive resolution (Step 4) | ||
| - Build failure after cherry-pick → warn, offer to continue or abort | ||
| - Push rejected → suggest `git push --force-with-lease` if branch already exists (with user confirmation) |
There was a problem hiding this comment.
[low] --force-with-lease is safer than --force, but for a hotfix branch that others might be working on, force-pushing could still overwrite their commits. Worth checking if the branch already has remote commits and suggesting git pull --rebase first?
| git tag -l "azure-dev-cli_*" --sort=-version:refname | head -10 | ||
| ``` | ||
|
|
||
| **Validate each PR is merged:** |
There was a problem hiding this comment.
[low] This validates each PR has state: MERGED, but doesn't check baseRefName to confirm it was merged into main. A PR merged into a feature branch could bring in unrelated changes if cherry-picked by merge commit SHA.
Partially addresses #8033
Replaces #8134, #8216 (closed — had overlapping commits from #8099)
What
Three new Copilot skills for engineering automation.
sprint-check
Validates sprint readiness — labels, milestones, project fields (Sprint, Priority, Initiative), assignees. Supports personal/team/single-issue scope. Sprint close rollover with bulk move when sprint is ending.
issue-cleanup
Scans backlog for hygiene gaps — missing labels, missing milestones, stale milestone assignments. Flags customer-reported issues sitting without triage.
hotfix-release
Creates a hotfix branch from a release tag, cherry-picks specified PRs, bumps version files (version.txt, azdext/version.go), updates CHANGELOG.md, pushes branch. Handles cherry-pick conflicts interactively. Includes ADO release pipeline guidance and post-release checklist.
Files
.github/skills/sprint-check/— SKILL.md + 2 reference docs (hygiene-rules, project-mutations).github/skills/issue-cleanup/— SKILL.md + 1 reference doc (hygiene-rules, synced with sprint-check).github/skills/hotfix-release/— SKILL.md + 1 reference doc (version-files).vscode/cspell.misc.yaml— spelling overrides for new files