Skip to content

feat(cutting-releases): add release highlights step#3382

Merged
ralphbean merged 1 commit into
mainfrom
skill/release-highlights
Jul 8, 2026
Merged

feat(cutting-releases): add release highlights step#3382
ralphbean merged 1 commit into
mainfrom
skill/release-highlights

Conversation

@ralphbean

Copy link
Copy Markdown
Member

Summary

  • Adds a new step 9 to the cutting-releases skill that writes user-facing release highlights
  • Launches a sub-agent to research the full body, diff, and comments of every merged PR — not just titles
  • Drafts prose paragraphs (not bullet lists) focused on end-user impact, with bold feature names and code fences
  • Presents the draft for review/editing via AskUserQuestion before prepending to the release body
  • Existing auto-generated changelog is preserved below a --- separator

Test plan

  • Cut the next release using the skill and verify step 9 fires after post-flight
  • Confirm the sub-agent reads PR diffs, not just titles
  • Confirm the highlights text is prepended correctly via gh release edit

🤖 Generated with Claude Code

After post-flight verification, the skill now researches merged PRs
via a sub-agent and drafts user-facing prose highlights that get
prepended to the GitHub release body above the auto-generated changelog.

Assisted-by: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Ralph Bean <rbean@redhat.com>
@ralphbean ralphbean requested a review from a team as a code owner July 7, 2026 16:24
@fullsend-ai-review

fullsend-ai-review Bot commented Jul 7, 2026

Copy link
Copy Markdown

🤖 Finished Review · ❌ Failure · Started 4:25 PM UTC · Completed 4:30 PM UTC
Commit: e826741 · View workflow run →

@qodo-code-review

Copy link
Copy Markdown

PR Summary by Qodo

Add a release-highlights step to cutting-releases skill

📝 Documentation 🕐 10-20 Minutes

Grey Divider

AI Description

• Add a new release step to draft user-facing highlights after post-flight verification.
• Require sub-agent review of merged PR bodies, diffs, and comments to capture real user impact.
• Prepend approved highlights to the GitHub release body while preserving the auto-changelog.
Diagram

graph TD
  A(["Post-flight complete"]) --> B["Gather release body (gh release view)"] --> C["Research merged PRs (Agent reads body/diff/comments)"] --> D["Draft prose highlights"] --> E["User review (AskUserQuestion)"] --> F["Prepend & update notes (gh release edit + ---)"]
Loading
High-Level Assessment

The following are alternative approaches to this PR:

1. Label-driven highlights (curated at PR time)
  • ➕ Less work at release time; highlights accrue continuously
  • ➕ Encourages authors to describe user impact explicitly
  • ➖ Depends on consistent labeling/discipline across contributors
  • ➖ Can miss subtle user-facing changes unless labels are well maintained
2. Release-drafter style templating (categorized changelog)
  • ➕ Standardized output format; predictable sections
  • ➕ Automatable with minimal manual intervention
  • ➖ Often still title-based; may not capture real impact without extra metadata
  • ➖ Harder to produce prose-quality narrative highlights
3. Semi-automated summary from PR bodies only (skip diffs/comments)
  • ➕ Faster to run than diff/comment review
  • ➕ PR body usually contains user-facing context when present
  • ➖ Misses behavior changes not documented in the body
  • ➖ Higher risk of inaccurate highlights for complex PRs

Recommendation: The PR’s approach (explicitly requiring diff/body/comment review via a sub-agent, then human approval) is the best fit for prose-quality, user-impact highlights. Consider adding/encouraging PR labels later to reduce research time, but keep the current process as the correctness backstop when titles/bodies are incomplete.

Files changed (1) +45 / -1

Documentation (1) +45 / -1
SKILL.mdAdd step 9 guidance for drafting and prepending release highlights +45/-1

Add step 9 guidance for drafting and prepending release highlights

• Replaces the old step 9 heading with a new procedure for writing user-facing release highlights after post-flight verification. Specifies using a sub-agent to review merged PR bodies/diffs/comments, collecting human edits via AskUserQuestion, and prepending the approved text above the existing release body separated by '---' using 'gh release edit'.

skills/cutting-releases/SKILL.md

@github-actions

github-actions Bot commented Jul 7, 2026

Copy link
Copy Markdown

Site preview

Preview: https://fc6c653a-site.fullsend-ai.workers.dev

Commit: e826741d8003a404ef851c6a9c89c23eaa62059f

@qodo-code-review

Copy link
Copy Markdown

Code Review by Qodo

🐞 Bugs (1) 📘 Rule violations (0) 📜 Skill insights (0)

Context used
✅ Compliance rules (platform): 54 rules

Grey Divider


Remediation recommended

1. Indented heredoc terminator 🐞 Bug ≡ Correctness
Description
The Step 9 example for gh release edit indents the heredoc terminator (EOF) inside a
list-indented fenced block, so a literal copy/paste will not terminate the heredoc and will wait for
more input. This can block the new “prepend highlights” step at the final release-update command.
Code

skills/cutting-releases/SKILL.md[R150-158]

+   ```
+   gh release edit <tag> --notes "$(cat <<'EOF'
+   <highlights>
+
+   ---
+
+   <existing body>
+   EOF
+   )"
Relevance

⭐⭐⭐ High

Team repeatedly fixes runnable skill snippets/docs correctness (accepted in PRs #746, #1020, #1645).

PR-#746
PR-#1020
PR-#1645

ⓘ Recommendations generated based on similar findings in past PRs

Evidence
The new Step 9 snippet shows EOF with leading spaces due to being inside a nested list code fence,
which breaks literal heredoc termination. Other skills in the repo demonstrate heredocs with
flush-left terminators to avoid this failure mode.

skills/cutting-releases/SKILL.md[146-159]
skills/filing-issues/SKILL.md[111-118]
PR-#746

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

### Issue description
The Step 9 snippet uses a heredoc within a list-indented fenced code block. In the markdown source, every line (including the `EOF` terminator) is indented, which makes the heredoc terminator not match when the command is run as written, causing the shell to keep waiting for input.

### Issue Context
This is user-facing operational guidance intended to be run during the release process; the example should be safe to copy/paste and execute.

### Fix Focus Areas
- skills/cutting-releases/SKILL.md[150-159]

### Suggested fix approaches
Choose one:
1. Move the fenced code block out of the nested list so `EOF` can be flush-left.
2. Avoid heredocs here and use a temp file + `gh release edit ... --notes-file <path>` (or an equivalent approach already used in this repo).
3. If you must keep it nested, rewrite the snippet so the terminator is guaranteed to be at column 0 in the rendered/output command (not indented in the literal text).

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


Grey Divider

Qodo Logo

Comment on lines +150 to +158
```
gh release edit <tag> --notes "$(cat <<'EOF'
<highlights>
---
<existing body>
EOF
)"

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remediation recommended

1. Indented heredoc terminator 🐞 Bug ≡ Correctness

The Step 9 example for gh release edit indents the heredoc terminator (EOF) inside a
list-indented fenced block, so a literal copy/paste will not terminate the heredoc and will wait for
more input. This can block the new “prepend highlights” step at the final release-update command.
Agent Prompt
### Issue description
The Step 9 snippet uses a heredoc within a list-indented fenced code block. In the markdown source, every line (including the `EOF` terminator) is indented, which makes the heredoc terminator not match when the command is run as written, causing the shell to keep waiting for input.

### Issue Context
This is user-facing operational guidance intended to be run during the release process; the example should be safe to copy/paste and execute.

### Fix Focus Areas
- skills/cutting-releases/SKILL.md[150-159]

### Suggested fix approaches
Choose one:
1. Move the fenced code block out of the nested list so `EOF` can be flush-left.
2. Avoid heredocs here and use a temp file + `gh release edit ... --notes-file <path>` (or an equivalent approach already used in this repo).
3. If you must keep it nested, rewrite the snippet so the terminator is guaranteed to be at column 0 in the rendered/output command (not indented in the literal text).

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools

@codecov

codecov Bot commented Jul 7, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@fullsend-ai-review

Copy link
Copy Markdown

Review — comment

PR: #3382feat(cutting-releases): add release highlights step
Author: ralphbean (member)
Base: main ← skill/release-highlights
Files changed: 1 (skills/cutting-releases/SKILL.md: +45 −1)

Summary

This PR inserts a new step 9 ("Write release highlights") into the cutting-releases skill, renumbering the previous step 9 ("Install the binary locally") to step 10. The new step instructs the agent to:

  1. Fetch the auto-generated changelog via gh release view
  2. Dispatch an Agent sub-agent to research every merged PR's body, diff, and comments
  3. Draft prose highlights focused on end-user impact
  4. Present the draft to the user via AskUserQuestion for confirmation/editing
  5. Prepend the highlights to the release body via gh release edit

The change is well-structured, follows the existing skill conventions, and the human-in-the-loop confirmation before mutating the release is a good design choice.

Findings

1. Agent tool not listed in allowed-tools — medium / correctness

File: skills/cutting-releases/SKILL.md (frontmatter, line 7)

Step 9.2 instructs the agent to "Launch an Agent sub-agent to read the full body, diff, and comments of every merged PR." However, the skill's allowed-tools frontmatter does not include Agent:

allowed-tools: Read, Grep, Glob, AskUserQuestion, Bash(git tag:*), Bash(git log:*), ...

No other skill in this repo lists Agent in its allowed-tools either, so this would be the first. Without adding it, the tool dispatch will be rejected at runtime and step 9 will fail to execute as written.

Remediation: Add Agent to the allowed-tools list in the frontmatter. For example:

allowed-tools: Read, Grep, Glob, AskUserQuestion, Agent, Bash(git tag:*), ...

Notes

  • PR title prefix: feat(cutting-releases) is appropriate — this adds a new user-facing step in the release workflow that the user interacts with (draft review via AskUserQuestion).
  • Renumbering: The old step 9 is correctly renumbered to step 10.
  • No breaking changes: The existing release flow still works; this is purely additive.

Labels: PR modifies a skill definition file

@deboer-tim deboer-tim left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Will need to see how it works on the next release, and assess the format/content it produces over time, but LGTM and matches what we discussed on calls. 👍🏼

@ralphbean ralphbean enabled auto-merge July 7, 2026 22:23

@waynesun09 waynesun09 left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM — nice addition. One thing to fix before merge:

Step 9.2 instructs the executor to launch an Agent sub-agent, but Agent is not in the allowed-tools frontmatter. Since this skill explicitly restricts its tool set, the Agent call will trigger a permission prompt at runtime. Add Agent to the allowed-tools list to keep the flow automated.

@ralphbean ralphbean added this pull request to the merge queue Jul 8, 2026
Merged via the queue into main with commit c83f827 Jul 8, 2026
21 checks passed
@ralphbean ralphbean deleted the skill/release-highlights branch July 8, 2026 18:34
@fullsend-ai-retro

fullsend-ai-retro Bot commented Jul 8, 2026

Copy link
Copy Markdown

🤖 Finished Retro · ✅ Success · Started 6:36 PM UTC · Completed 6:45 PM UTC
Commit: e826741 · View workflow run →

@fullsend-ai-retro

Copy link
Copy Markdown

PR #3382 added a release-highlights step to the cutting-releases skill. Both the review agent and human reviewer waynesun09 correctly identified that the Agent tool is referenced in step 9.2 but not listed in allowed-tools, meaning the step will fail at runtime. Qodo separately caught a heredoc indentation issue. Despite these findings, the PR was merged without fixing either issue. The review agent used COMMENT verdict (correct per its single-medium-finding rule), which did not block the merge. The review agent also missed the required protected-path finding for the skills/ directory.

Proposals filed

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants