release-digest

Generate and post a Slack recap of merged PRs since the last release tag.

5.0k|376|Updated Jul 23, 2024
One-click install
npx skills add https://github.com/Kiln-AI/Kiln --skill release-digest
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: release-digest
Source: https://github.com/Kiln-AI/Kiln/tree/main/.agents/skills/release-digest
Command: npx skills add https://github.com/Kiln-AI/Kiln --skill release-digest

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes scripts (resource) components.

What problem does it solve?

Before cutting a release, teams need a clear summary of everything merged to main since the last tag, but manually reviewing git history and PRs is slow and error-prone. This Skill automates gathering, classifying, and posting that recap to the team's release Slack channel for final QA.

Core Features & Use Cases

  • Automated change gathering: Runs a Python script that uses the git commit range (last tag to origin/main) and the GitHub CLI to collect merged PRs and direct commits, filtering to known teammates.
  • Classification and grouping: Classifies each change as feature, bug fix, or task using labels, title conventions, and judgment rules, then groups changes by author.
  • Slack posting workflow: Composes a formatted Slack mrkdwn message with a recap paragraph, per-author bullets, and a feature/fix/task tally, then posts to the #release channel after user confirmation.
  • Use Case: Before tagging v1.0.4, ask for a release recap; the Skill lists 12 changes since v1.0.3 grouped by author, you confirm the message, and it posts to #release for QA review.

Quick Start

Ask the assistant to generate a release recap of everything merged to main since the last release tag and post it to the release Slack channel.

Frequently Asked Questions about release-digest

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I generate a changelog of merged PRs since the last git tag?

Run the gather_changes.py script, which computes the range from the latest tag to origin/main using git log --first-parent, then fetches each merged PR's metadata via the GitHub CLI. The output JSON lists PRs, direct commits, and excluded non-teammate changes.

How do I post a release summary to a Slack channel?

Compose the recap in Slack mrkdwn format with a bold header, per-author bullet lists, and a feature/fix/task tally, then send it with the Slack MCP send message tool to the release channel. Always show the message to the user for confirmation before posting.

Does the release digest require the GitHub CLI?

Yes, the gather script requires the GitHub CLI (gh) to be installed and authenticated via gh auth login. It uses gh pr view to fetch PR titles, authors, labels, and bodies for each merged PR in the range.

Why are some merged PRs excluded from the release recap?

PRs from authors not in the script's TEAM map are filtered into excluded_prs rather than itemized in the recap. They are still reported in an informational line so the omission is visible, and new teammates can be added by editing the TEAM dictionary.

What happens if there are no changes since the last release tag?

If the PR count is zero and there are no direct commits, the Skill reports that main is even with the latest tag and stops without posting to Slack. Direct commits alone still count as unreleased changes worth a digest.