#53Product & Engineering

Release notes from git commits and PRs

Release notes from git commits and PRs automates the process of preparing release notes in the Product & Engineering department and achieves the effect: release notes are prepared in minutes instead of 1–2 hours of manual work per release. An AI agent based on an AI model collects commits and merged pull requests from the repository since the last release, groups changes by category (features, fixes, breaking changes, internal), filters out technical noise, and generates a human-readable draft for different audiences — the technical team, management, and customers. An engineer reviews the final text and publishes it. The solution is suitable for SaaS companies with regular releases (weekly sprints or continuous delivery) and teams where a tech lead or product manager spends an hour or two on manually compiling the changelog after each deployment, providing regular updates to management, and writing manual progress reports.

Expected effect

Release notes are prepared in minutes instead of 1–2 hours per release.

Complexity
Weekend (1-2 days)
Tool type
Custom code
ROI
Time saved
Industries
SaaS / Tech, Other / Horizontal
Integrations
Code repository
Patterns
Summarization (long → short), Content Generation (drafts)

What it does

Automation replaces the manual ritual of 'sitting down on Friday and writing out everything done during the sprint' with a reproducible pipeline. An AI agent reads the repository history, separates what matters from technical noise, and produces a structured draft that an engineer or product manager proofreads in 5-10 minutes instead of writing it from scratch.

Step-by-step process

  1. Data collection. The agent connects to the repository (GitHub, GitLab, or another Git hosting) and pulls commits and merged pull requests since the last release — by tag, date, or branch name.
  2. Normalization. PR descriptions, titles, labels, issue links, and author names are collected into a unified structure. Technical commits (chore, refactor, test) are flagged but not removed.
  3. Classification. The language model sorts changes into categories: new features, fixes, breaking changes, internal improvements. The classification logic is based on conventional commits, labels, or the semantics of PR titles.
  4. Summarization for audiences. The agent generates three versions: technical (for developers, with PR links), short (for management — what changed for the business), and customer-facing (without internal terminology, focused on value).
  5. Draft for review. The output arrives in Slack, Notion, or a pull request with a CHANGELOG.md template — the engineer edits and publishes it.
  6. Publication. Optional step: an automatic post to the release channel, updating the in-app changelog widget, sending an email newsletter to customers.

What automation does NOT do

  • Does not replace the tech lead. The decision on what counts as a breaking change or a major release stays with a human. The agent only suggests a classification.
  • Does not write marketing copy from scratch. The customer-facing version is a structured draft, not a finished launch post with positioning and a CTA.
  • Does not analyze code quality. Metrics such as test coverage, security findings, or architectural decisions do not end up in release notes.

How it works

The pipeline is built on Git hosting calls and a single LLM processing step. The custom-code solution is deployed as a cron job, CI step, or manual trigger — all depending on the team's release cadence.

Technical flow

The agent works in three stages: history extraction, LLM processing, draft delivery. Between stages, data is passed in structured JSON, which simplifies debugging and allows adding manual rules without rewriting the prompt.

Implementation steps

  1. Defining the release range. The script receives two anchors — previous and current. Options: the latest tag (git describe --tags), date, branch name, or deploy ID from CI. For teams without tags, the approach is "everything merged into main in the last N days".
  2. Request to the Git hosting. Commits and pull requests within the range are fetched via REST or GraphQL API (GitHub, GitLab, Bitbucket). For each PR, the following are collected: title, description, labels, author, linked issues, merge timestamp.
  3. Pre-processing. Duplicate commits (the same PR squashed) are collapsed. Conventional commits are parsed — if the team uses the format feat:, fix:, chore:, the agent inherits the classification. Without conventional commits, the LLM figures it out from context.
  4. LLM call. The LLM receives a structured list of PRs and a prompt with instructions: which categories, which audiences, tone, length. The response is JSON with arrays features, fixes, breaking, internal.
  5. Rendering. A templating engine (Mustache, Jinja, or the same LLM in a second pass) converts the JSON into a markdown draft in the team's format — CHANGELOG.md, Notion page, Slack message, in-app modal.
  6. Delivery. The draft is sent via webhook to the review channel — the standard option: a pull request with a CHANGELOG.md change so the engineer can see the diff and comment. The alternative is drafts in Notion or a Linear release.

Solution components

Component

Purpose

Git hosting API

Source of commits and PRs

AI model

Classification and summarization

Cron / CI-trigger

Triggered on release or on schedule

Templates for audiences

Separate prompts: tech, mgmt, customer

Delivery channel

Slack, Notion, PR, email

Nuances and specifics

  • Handling long ranges. For releases with hundreds of PRs, data is split into batches — the LLM processes parts, then an aggregator combines the result. Otherwise, the context overflows and classification quality drops.
  • Format stability. The prompt requires JSON with a strict schema, not free-form markdown. This gives a predictable result for automatic rendering and parsing.
  • Style memory. If the team maintains a CHANGELOG.md, the agent receives previous entries as few-shot examples — new release notes are written in the same tone.
  • Custom rules. The list of PR labels to ignore (for example, internal, dependabot), is set in the config. The LLM does not decide this on its own.

Prerequisites

The base version of the automation is deployed in 2-5 business days by a single engineer — hence the complexity label «weekend». Further complexity depends on the team's requirements.

Data and access

  • Git hosting with API access. GitHub, GitLab, Bitbucket or self-hosted — a token with read access to history and PRs in the required repositories is needed.
  • Release policy. The team uses tags, semantic versioning, or at least a regular merge into main. Without a stable reference point, the range has to be set manually each time.
  • Access to the delivery channel. Slack webhook, Notion API token, permission to create a PR in the repository — depends on the chosen publication format.
  • Language model API key via Anthropic or a wrapper platform.

Team readiness

  • One engineer who maintains the script and owns the access credentials — tech lead or DevOps.
  • An agreed set of release notes categories: what counts as a feature, what counts as a fix, which PR labels to ignore. Without this, LLM classification will hit the mark, but not always meet expectations.
  • A CHANGELOG.md template or equivalent format in Notion/Linear — even a draft one.

Timelines

  • Weekend version (2-5 days): one repository, one audience (technical), publication in Slack or CHANGELOG.md via PR. Minimum prompts, standard format.
  • Extension (up to 2 weeks): multiple repositories in a monorepo or multi-service architecture, three text variants (tech/mgmt/customer), integration with Notion and an in-app changelog widget.

For teams with a non-standard workflow (feature flags, release trains, multiple products in a single repository) it is worth budgeting additional time to define the range logic.

Pain points

  • Ongoing Executive Updates
  • Time on Manual Reports

FAQ

How long does implementation take?

2-5 business days for the basic version: one repository, a technical draft in Slack or CHANGELOG.md. Up to two weeks — if multiple audiences, multi-repository builds, and integration with Notion or an in-app widget are needed. The timeline includes prompt configuration, testing on 2-3 releases, and aligning with the team's existing changelog style.

What if we have no conventional commits and no PR labels?

Automation still works — the LLM classifies changes based on PR titles and descriptions. Accuracy will be lower than for a team with clean feat:/fix:/chore:, but sufficient at the level of 'prepare a draft that an engineer can review in 5 minutes.' After a few iterations, you can add few-shot examples from already published release notes, and quality stabilizes.

What can break?

Three typical scenarios: (1) a large release with hundreds of PRs exceeds the LLM context — solved by batching; (2) exotic PR titles without descriptions are classified by the agent as 'internal' and skipped in the client-facing version — fixed with a manual label or draft edit; (3) when the CHANGELOG.md format changes, the template requires a prompt update. All three cases are operational, not architectural.

Does it work in our industry?

The solution is originally designed for SaaS and tech products with regular release cycles. It also scales horizontally — to any team with an active Git repository and a release cadence of more than once a month. For companies with one or two releases per year, the time savings are minimal and ROI is questionable — a manual changelog every six months costs less to maintain than a pipeline.

Can we keep manual control over the final text?

Yes — this is the default mode. The agent produces a draft, which an engineer or product manager reviews and publishes. Full auto-publishing without human review is not recommended: even with good classification, PRs with phrasing that is unclear to customers remain, and a 5-10 minute manual review eliminates most tone and terminology errors.

How does this relate to regular management updates?

Release notes in three formats cover two distinct flows: a technical changelog for engineers and a short summary of 'what changed for the business' for the CEO/COO. The second format goes into a weekly digest or a Slack channel for management — the same report that previously had to be assembled manually from commits, Jira, and the tech lead's head.

Want this in your business?

Book a free audit — we'll show how this automation will work for you.

Related automations

#51 · Product & Engineering

AI triage GitHub/Jira issues

AI triage of GitHub/Jira issues automates classification and routing of incoming tickets in the Product & Engineering department, reducing time-to-label from 18 hours to 2 hours. An AI agent powered by an AI model reads each new issue, extracts key entities — component, type, priority, affected module — applies labels, semantically searches for duplicates among open tickets from the past 6-12 months, and assigns a responsible owner according to the team's ownership rules. The automation removes repetitive routine from the senior engineer: 3 hours per week were spent on triaging incoming tickets — now reduced to 20 minutes of quick review of edge cases. Suited for SaaS and product teams with an active issue flow, where manual triage turns into constant context switching and a source of labeling errors. Does not replace engineering judgment on disputed cases — triage applies initial labeling and links duplicates, final decisions remain with the tech lead. Implementation takes 2-4 weeks with ready API access to GitHub or Jira and an approved label taxonomy.

90%· Triage time
Week (1-5 days)Custom codeTime saved
#52 · Product & Engineering

AI code review for every PR

AI code review for every PR automates initial code review in the Product & Engineering department and achieves 110% growth in PR throughput (from 11.4 to 23.9 PRs per developer). The automation connects to the Git repository and triggers an AI agent on every pull request: it reviews code against the team's rubric, leaves inline comments, suggests improvements, and escalates complex cases to a human. As a result, seniors spend less time on mechanical checks, PR size decreases by 82% — developers shift to small incremental commits. Post-review changes decrease by 39%, bugs per developer — by 20%. Suited for SaaS teams and tech startups of 5–50 people, where code review has become a bottleneck slowing down the release cycle. Grow2.ai builds the automation around your codebase: a rubric aligned to your team's rules, connection to your existing Git provider, CI/CD integration, and a dashboard with review metrics.

110%· PR throughput
Weekend (1-2 days)Vertical SaaSQuality improved
#54 · Product & Engineering

User feedback synthesis into feature priorities

User feedback synthesis into feature priorities automates collection, classification, and summarization of user feedback from multiple channels in Product & Engineering and delivers quality prioritization: the Product Manager sees real pain points based on data, not anecdotal evidence from the last conversation. The AI agent pulls raw feedback from helpdesk tickets, communication channels, and interview records, classifies each mention by topic and user segment, summarizes recurring patterns into structured insights. Output is a ranked list of pain points with mention frequency, quote examples, and links to source references. The roadmap is built on data, not on who complains loudest in Slack. The solution fits SaaS / Tech teams and horizontal products with an active user feedback stream and unstructured sources. Automation eliminates two specific pain points: time on manual feedback reports and user knowledge stuck in the heads of individual support staff or PMs.

PM sees real pain points, not anecdotal evidence. Solution roadmap based on data.

Week (1-5 days)Custom codeQuality improved
#55 · Product & Engineering

Automated bug fix (from message to prod)

Automated bug fix (from message to prod) automates the full defect resolution cycle — from a user message in chat or a helpdesk ticket to deployment of the fix in production — in the Product & Engineering department, and achieves a median of 90 seconds from message to prod with 95% deployable code and 98% triage accuracy. The AI agent receives a signal from Slack, Intercom, Zendesk, or GitHub Issues, extracts a structured description of the problem, identifies the guilty commit, reproduces the defect in a sandbox, generates a patch, runs tests, and creates a pull request with an explanation. For simple, localized errors the cycle runs autonomously; for architectural ones — it routes the ticket to an engineer with ready context and a draft solution. API cost is approximately $0.08 per fix. Automation reduces customer response time, removes minor bug-fixes from the engineer's backlog, frees the team for product work, and reduces accumulated tech debt on minor defects.

90 s· Message to deployed fix
Month (2-4 weeks)Agent frameworkTime saved
Take the AI-audit (2 min)