feat(skill): add pre-flight and post-flight release procedures#1709
feat(skill): add pre-flight and post-flight release procedures#1709waynesun09 wants to merge 5 commits into
Conversation
The cutting-releases skill now covers the full release lifecycle: Pre-flight: diff reusable workflows, scaffold templates, and CLI changes against the v0 tag to detect breaking changes before release. Process: added v0 tag move (step 8) and workflow wait (step 9), renumbered remaining steps. Post-flight: verify downstream orgs resolve @v0 correctly, retrigger failed runs for confirmation, present summary table. All variable-dependent commands prompt the user via AskUserQuestion rather than assuming values are in the environment. Signed-off-by: Wayne Sun <gsun@redhat.com>
Site previewPreview: https://2c11db53-site.fullsend-ai.workers.dev Commit: |
Pre-flight steps use origin/main refs but ran before the pull step. Add explicit git fetch at the top of pre-flight to ensure fresh state. Remove Bash(make lint:*) from allowed-tools since it is not referenced in any skill step. Signed-off-by: Wayne Sun <gsun@redhat.com>
waynesun09
left a comment
There was a problem hiding this comment.
Review
Findings
Medium
- [correctness]
skills/cutting-releases/SKILL.md:28— Pre-flight steps A–C diff againstorigin/mainbut the pre-flight section runs before step 1 (git checkout main && git pull). Staleorigin/mainproduces wrong diffs.
Remediation: Addedgit fetch originat the top of the pre-flight section. Fixed in 65c9dfb.
Low
- [hygiene]
skills/cutting-releases/SKILL.md:7—Bash(make lint:*)was in allowed-tools but never referenced in any skill step. Unused tool permissions widen the surface for no benefit.
Remediation: Removed from allowed-tools. Fixed in 65c9dfb.
ReviewFindingsLow
Previous runReviewFindingsLow
Previous run (2)ReviewFindingsHigh
Info
Previous run (3)ReviewFindingsNo findings. The pre-flight and post-flight sections are well-structured and follow the existing skill patterns. Step renumbering is correct, the |
Pre-flight now audits workflow inputs/outputs/secrets/permissions, reads CLI function diffs for behavioral changes, and identifies post-flight check areas to focus verification. Post-flight now waits for CI workflows first, checks fullsend-ai repos by default (always accessible to repo admins), and only asks about additional downstream repos the user has access to. Removed duplicate wait/verify steps from the process section. Signed-off-by: Wayne Sun <gsun@redhat.com>
Extract pre-flight and post-flight procedures into separate files for progressive disclosure. SKILL.md routes to each phase file with Read instructions. - SKILL.md: 152 lines (overview + process steps 1-10 + notes) - pre-flight.md: 122 lines (audit steps A-F) - post-flight.md: 89 lines (verification steps A-E) Each file stays under 150 lines. No content loss — just reorganization. Signed-off-by: Wayne Sun <gsun@redhat.com>
… lines, add grep backstop - Add AskUserQuestion gate before force-pushing v0 tag (step 8) - Name AskUserQuestion explicitly in step 10 - Trim SKILL.md to 149 lines (was 156) by condensing verbose sections - Add grep backstop in pre-flight step A for mechanical verification of removed/renamed workflow identifiers Signed-off-by: Wayne Sun <gsun@redhat.com>
| The skill user is a fullsend repo admin, so fullsend-ai org repos | ||
| are always accessible. Check recent workflow runs in the org's repos | ||
| that consume `@v0` reusable workflows: | ||
|
|
There was a problem hiding this comment.
[low] redundant-check
Post-flight section C checks gh run list --repo fullsend-ai/fullsend, but section A already verifies the release workflow in the same repo. The fullsend-ai/fullsend line in section C is redundant and could be removed, keeping only downstream consumers like fullsend-ai/.fullsend.
Suggested fix: Remove the fullsend-ai/fullsend line from section C, since that repo's release workflow is already verified in section A.
| The skill user is a fullsend repo admin, so fullsend-ai org repos | ||
| are always accessible. Check recent workflow runs in the org's repos | ||
| that consume `@v0` reusable workflows: | ||
|
|
There was a problem hiding this comment.
[low] redundant-check
Post-flight section C checks gh run list --repo fullsend-ai/fullsend, but section A already verifies the release workflow in the same repo via gh run list --workflow=release.yml. The fullsend-ai/fullsend line in section C is redundant with section A and could be removed, keeping only actual downstream consumers like fullsend-ai/.fullsend.
Suggested fix: Remove the fullsend-ai/fullsend line from section C, since that repo's release workflow is already verified in section A.
ralphbean
left a comment
There was a problem hiding this comment.
LGTM. Two minor notes inline.
| ## A. Wait for CI workflows | ||
|
|
||
| Wait for the Release workflow (triggered by the `v*` tag) and the | ||
| Sandbox Images workflow (triggered by the `v0` tag move) to complete: |
There was a problem hiding this comment.
[moderate] I think sandbox-images.yml fires on v[0-9]+.[0-9]+* tags, so the bare v0 wouldn't match — it's the version tag push (step 7) that triggers it, not the v0 force-push. Same in SKILL.md step 8. Not blocking.
| ``` | ||
|
|
||
| ## A. Audit reusable workflow changes | ||
|
|
There was a problem hiding this comment.
[moderate] Downstream consumers also reference composite actions under .github/actions/ via @v0. Might be worth adding a git diff v0..origin/main -- .github/actions/ to this section. Not blocking.
|
I just tried to use this skill to cut a release and hit a problem worth fixing before we merge. Step 1 does That's what happened to me just now — I got a 200+ commit diff and spent a while auditing changes that were already in v0.12.0. I think step 1 should do Pre-flight's |
Summary
v0tag to detect breaking changes before taggingv0tag move step and workflow wait step to the release process (steps 8-9), renumbers remaining stepsAskUserQuestionrather than assuming values are availableTest plan
make lintpasses (verified locally)v0tag