InTouch Hub · Blue Isle Software

Repo Release Notes

Generate user-facing release notes from a git commit log between two tags. AI clusters commits into Features / Fixes / Improvements / Breaking Changes / Internal, drops chore commits, rewrites terse messages into prose.

Repo Release Notes Skill

Hand-quality release notes from a git commit log. Cluster commits into Features / Fixes / Improvements / Breaking Changes / Internal, rewrite terse commit messages into user-readable prose, drop the chore noise.

The Problem

The first 10 minutes of every release are spent staring at git log, copy-pasting commit messages, and trying to remember what each one actually meant for users. The output never feels good and nobody wants to do it. AI is a perfect fit: structured input (commits), structured output (release notes), with judgment about what matters.

How It Works

  1. A runtimeenv task runs git log <fromTag>..<toTag> with full message bodies
  2. The repo-release-notes skill clusters and rewrites
  3. The message task delivers the markdown notes (or you append it to a CHANGELOG.md, post to Slack, etc.)

Setup

  1. Install this skill
  2. Clone the repo to a working directory the InTouch host can read
  3. Use the YAML below; run on-demand when you cut a release

Example YAML Job

name: release-notes
version: 1.0.0
description: Generate release notes between two git tags

notifications:
  - userNames: [intouch]
    alertOnError: true

tasks:
  - name: collect-commits
    tool: runtimeenv
    properties:
      scriptContent: |
        #!/bin/bash
        set -euo pipefail
        REPO_DIR="${REPO_DIR:-/srv/repos/myproject}"
        FROM_TAG="${FROM_TAG:-v1.4.0}"
        TO_TAG="${TO_TAG:-HEAD}"

        cd "$REPO_DIR"
        git fetch --tags --quiet
        echo "project: myproject"
        echo "versionFrom: $FROM_TAG"
        echo "versionTo: $TO_TAG"
        echo "releaseDate: $(date -u +%Y-%m-%d)"
        echo "commits:"
        git log "${FROM_TAG}..${TO_TAG}" --pretty=format:"commit %h%nAuthor: %an <%ae>%nDate:   %ad%n%n    %s%n%n%b%n" --date=short

  - name: write-notes
    tool: skill
    properties:
      skillName: repo-release-notes
      input: "{{collect-commits.output}}"

  - name: send
    tool: message
    properties:
      subject: "Release notes draft"
      body: "{{write-notes.answer}}"
      userNames: "intouch"

Customization

Notes

Cost