A few months ago, we starting hitting issues with how the wider team was able to understand what the engineering team was shipping. We were moving fas, and itt felt efficient. But, we consistently got feedback that the constant updates for every new thing was overwhelming our #product-updates channel. And when things get overwhelming, they tend to get ignored.
Work was happening, but updates weren’t surfacing in a way that the rest of the team could actually digest. As a potential solution, I decided to introduce more in-depth weekly updates for the team about what shipped recently. But, I didn’t want to introduce new tools, spend a bunch of time wrangling engineers, constantly keep track of features, and spend too much time writing the updates.
So, I built a lightweight changelog workflow, powered by AI.
The Setup
It starts with a simple GitHub CLI command:
gh pr list --repo PermitFlow/permitflow --state merged --json title,body,mergedAt,baseRefName,labels,author | jq '.[] | select(.baseRefName == "main" and (.mergedAt | fromdateiso8601) >= (now - 7*86400)) | [.title, .body, (.labels | map(.name) | join(", ")), .author.login] | @tsv' | pbcopy
That command pulls every PR merged to main in the past 7 days, along with important associated metadata, and copies it to my clipboard. I'm a bit more technical that some designers (pretty comfortable with using the terminal and local dev), but this works for me.
From there, I paste it directly into ChatGPT using a structured prompt designed to:
- Group updates into Feature releases, UI/UX changes, and Bug fixes
- Provide a brief summary of what shipped based on the pull request message
- Strip out technical jargon and more backend-specific changes (DB migrations, infra tweaks, etc.). The target audience for these updates is primarily non-technical.
- Format everything clearly: bold titles, one-sentence summaries, and Slack usernames for credit
- Include visuals or links from the PR messages when relevant
- Tag the relevant engineer for credit (and potential questions). I did this by creating a mapping between Slack and Github usernames in the prompt.
Here’s and example of what an output might look like:
🚀 Features & Updates
- Dark Mode for Dashboards: Users can now toggle a dark theme for easier viewing in low-light environments. (@jamie_r)
- Custom Roles & Permissions: Admins can create and assign custom permission sets for granular access control. (@alina_dev)
- Bulk Export Tool: New tool supports bulk exporting of reports and datasets in CSV and PDF formats. (@matt-o)
- Real-Time Collaboration: Multiple users can edit shared documents simultaneously with live presence indicators. (@sara)
- Notification Center Redesign: A cleaner, more organized notification panel with filters and snooze options. (@khalid_n)
- Quick Actions Bar: Added a top-level toolbar for frequent tasks like creating notes, assigning tasks, and filtering views. (@paola_v)
🐞 Fixes & Improvements
- Fixed a bug causing slow load times on project dashboards. (@michelle.zhang)
- Resolved a bug with the homepage loading. (@tyler-q)
- Fixed crashes when uploading large image files to projects. (@nina.j)
- Corrected calendar timezone issues for international users. (@javi_b, nice find!)
Sometimes I tweak a sentence or add a bit of context, but GPT does the heavy lifting.
Why It Works
This system turns what used to be a potential multi-role process, eng, PM, comms (or at least a time-consuming one), into a three-minute workflow. Because I can navigate GitHub and prompts as a designer, I don’t need to hand this off to anyone else.
The impact is simple but meaningful: everyone on the team knows what shipped this week. Engineers get credit. And we didn’t need to introduce a new product to make it happen.
Making It Smoother
I could probably take this a step or two further and go fully automated run the query on a scheduled by using something like Zapier.
There’s still a human-in-the-loop today, mostly for minor edits for clarity about things that might still be behind feature flags, or have more nuance. But the time saved is significant, and that loop is getting tighter.
A Bigger Takeaway
This changelog system is a small example of a bigger shift. There are a ton of opportunities for teams to find AI use cases for minor inconveniences like this. Sometimes the best processes are the ones duct-taped together with a CLI, a prompt, and a little curiosity.