DEV Community

Nachiket Joshi
Nachiket Joshi

Posted on

Agentic Engineering #2: Generating Release Notes Automatically with AI Agents

Why Preparing Release Notes Still Is a Cumbersome Task?

Every engineering team eventually reaches the same point before a release.

Someone has to answer a seemingly simple question: "What changed?"

Unfortunately, answering that question is rarely simple.

Developers begin searching merged pull requests. Someone opens Jira to understand the business context. Another engineer scans commit messages. Product managers ask for customer-friendly summaries. QA wants a technical changelog. Leadership wants release highlights.

The information already exists—it is simply scattered across multiple systems. The result is a manual process that often takes hours before every release.


The Problem

A typical release note preparation looks something like this:

  • Search merged Pull Requests
  • Read every PR description
  • Open corresponding Jira stories
  • Understand business requirements
  • Read commit history
  • Group related features
  • Rewrite technical language for business users
  • Prepare release documentation

The larger the release, the longer this process becomes. Ironically, none of this work creates software. It is documentation built from information that already exists.


What If the Agent Did the Context Gathering?

Instead of asking an engineer to manually assemble release notes, I wanted an AI agent that could automatically collect all the necessary context.

The workflow becomes:

Merged Pull Requests
        │
        ▼
GitHub CLI
        │
        ▼
Linked Jira Stories
        │
        ▼
Acceptance Criteria
        │
        ▼
AI Analysis
        │
        ▼
Customer Release Notes/ Engineering Changelog/ Internal Summary
Enter fullscreen mode Exit fullscreen mode

The engineer simply specifies the release range. The agent performs the rest.


Building the AI Release Notes Agent

The implementation follows the same design philosophy introduced in the previous article. I highly recommend looking up the article.

Instead of creating custom integrations everywhere, the agent orchestrates existing developer tools.

Current implementation:

  • GitHub CLI
  • GitHub Copilot CLI
  • Jira REST API
  • Python 3.11+

High-Level Architecture And Design

                Engineer

                    │

                    ▼

          Release Notes Agent

        ┌───────────┼──────────────┐
        │           │              │
        ▼           ▼              ▼

 GitHub CLI     Jira REST API   Copilot CLI

        │           │              │
        └───────────┼──────────────┘
                    │

                    ▼

        Customer Release Notes

        Engineering Changelog

        Internal Release Summary
Enter fullscreen mode Exit fullscreen mode

What Information Does the Agent Collect?

Unlike a traditional script that simply concatenates commit messages, the agent gathers context from multiple sources.

From GitHub:

  • Pull Requests
  • Merge commits
  • Changed files
  • Authors
  • Labels

From Jira:

  • Story descriptions
  • Acceptance criteria
  • Business requirements
  • Epic information

This richer context allows the generated release notes to describe why features were implemented rather than simply what files changed.


Leveraging GitHub CLI

The implementation relies heavily on GitHub CLI.

For example,

Retrieve merged pull requests:

gh search prs --state merged
Enter fullscreen mode Exit fullscreen mode

Retrieve PR information:

gh pr view
Enter fullscreen mode Exit fullscreen mode

Retrieve commits:

gh pr view --json commits
Enter fullscreen mode Exit fullscreen mode

GitHub CLI handles authentication and repository context, allowing the Python code to remain focused on orchestration.


Agent Workflows

I designed the agent to generate multiple types of Release Notes.

One of the biggest advantages of using AI is that the agent can produce multiple outputs tailored to different audiences in the same release.

Customer Release Notes

Designed for end users.

Example:

Added support for configurable notification preferences.

Improved dashboard performance for large datasets.

Resolved intermittent login issues affecting SSO users.
Enter fullscreen mode Exit fullscreen mode

Engineering Changelog

Designed for developers.

Includes:

  • PR numbers
  • Technical implementation
  • Breaking changes
  • Dependency updates

Internal Management Summary

Focused on delivery.

Example:

  • 24 Pull Requests merged
  • 18 Jira stories completed
  • 2 Bug fixes
  • 4 Enhancements
  • No breaking changes

Expected Output Structure

Executive Summary

New Features

Enhancements

Bug Fixes

Performance Improvements

Breaking Changes

Known Limitations

Deployment Notes
Enter fullscreen mode Exit fullscreen mode

Why This Is Better Than Commit Messages

Commit messages are written for developers. Release notes are written for people. Those are fundamentally different audiences. Instead of exposing implementation details, AI can rewrite technical work into language that customers, product managers, QA teams, and leadership can immediately understand.


Why I Consider This an Agent

Today, many applications wrap an LLM and call it an "AI Agent." I think the definition should be a little stricter.

A useful engineering agent should be able to:

Gather information independently
Invoke external tools
Combine information from multiple systems
Make workflow decisions
Produce meaningful outputs without requiring constant human guidance
This project isn't just sending prompts to an LLM. It's orchestrating GitHub, Jira, and Copilot into a workflow that removes repetitive engineering work.

That, to me, is where agents become genuinely useful.


Security Considerations

The current implementation follows the same guardrails as the Pull Request Review Agent.

  • Read-only GitHub operations
  • Read-only Jira queries
  • No automatic repository writes
  • Temporary file cleanup
  • Explicit report generation

The agent never modifies source code or deployment artifacts.


Future Enhancements

This is only the first iteration.

Future improvements include:

  • Automatic release detection
  • Slack announcements
  • Confluence publishing
  • Markdown generation
  • PDF release reports
  • Email distribution
  • Semantic grouping of related features
  • Multi-repository release aggregation

Looking Ahead

Over the next several articles in this series, we'll continue building practical engineering agents to automate other parts of the software development lifecycle, including:

From Jira Story to the First Pull Request

The goal isn't to replace engineers. It's to eliminate repetitive work so engineers can spend more time solving meaningful problems.

If you're building similar workflows—or have ideas for engineering tasks that could be automated—I'd love to hear about them in the comments.


About the Author

Nachiket Joshi Hi, I'm Nachiket Joshi.

I'm a software engineer focused on AI systems, distributed platforms, and developer productivity workflows. I share practical implementations of AI-powered engineering systems.

Top comments (0)