Architecture
The problem
Changelogs are tedious to write and easy to skip, but different audiences need different things: engineers want detail, customers want outcomes. Doing that by hand for every release doesn't scale.
What I built
- A webhook-driven pipeline that triggers on Git activity.
- Multiple agents that summarise commits and reshape them for distinct audiences.
- Heuristic fallbacks for when the LLM path fails or isn't worth the cost.
- Cost-awareness so the system spends model budget only where it adds value.
- Quality gates that hold back output that doesn't meet the bar.
- Persistence via Prisma/PostgreSQL with GitHub API integration.
Why it matters
It removes a recurring chore while respecting that production automation has to be cheap, reliable and safe to run without a human watching every run.
System notes
- Heuristic fallbacks mean a model outage degrades quality rather than breaking the pipeline.
- Cost controls keep per-release spend predictable.
- Quality gates are the safety valve for unattended operation.
Key decisions
- Heuristic fallbacks for every LLM step
- Unattended automation can't depend on a model always being available or correct.
- Cost-aware routing
- Not every commit deserves a frontier model. Spending budget deliberately keeps it sustainable.
- Quality gates before publish
- A bad auto-generated changelog is worse than none. Gates protect the output.