feat: broader CHANGELOG headers + --summary flag for LLM context#3
Merged
Conversation
Two changes from the 10-app smoke report's BUG #C ("missing notes for
non-Rails CHANGELOG formats") and follow-up wishlist.
1. Header regex now accepts `[v0.16.0]` (Keep-a-Changelog with `v`
prefix). Reordered `\[?v?` so the bracket and the `v` are both
independently optional in the natural order they appear:
## [0.16.0] # already worked
## v0.16.0 # already worked
## [v0.16.0] # broken before — now parses
Adds bracketed-0.16.0 fixture and three regression assertions.
2. `--summary` flag in bin/postcut. After deltas are assembled, runs
an awk filter that retains headers and blank lines verbatim and
keeps bullet lines only if they mention CVE-/GHSA-/security/
breaking/deprecat/CRITICAL. The filter doesn't drop sieroced
headers — knowing that a gem changed at all is itself signal for
an LLM, even when no high-severity bullets exist.
Updated scope label includes ", summary" suffix so the consumer
knows the output was post-filtered. Updated README usage block.
Adds tests/test_summary.sh — duplicates the awk program (kept in
sync via comment), feeds it a synthetic deltas string covering
security/breaking/deprecation/maintenance bullets and asserts both
retention and dropping.
E2E verified locally on ruby_llm_fork (--summary --since 2025-09-01):
the only bullets that survive belong to googleauth (Deprecate method),
nokogiri (4 GHSA advisories + 1 vendored-libxml2 security fix) and
rails [activesupport] (Remove deprecated APIs) — exactly the slice an
LLM needs.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
justi
added a commit
that referenced
this pull request
May 8, 2026
fix: codex review #3 + README polish — v0.3.1
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Two follow-ups from the 10-app smoke report.
1. Header regex accepts
[v0.16.0]Some gems (faraday-style, Keep-a-Changelog with leading
v) ship CHANGELOG headers like## [v0.16.0] - 2025-12-27. The previous regex required the bracket to come after thev(v?\[?), so the natural Keep-a-Changelog ordering was rejected.Reordered to
\[?v?— both still independently optional, but the bracket can now precede thev. Three header forms verified:2.
--summaryflagPost-process filter (awk) that retains headers + blank lines verbatim and keeps bullet lines only if they mention
CVE-/GHSA-/security/breaking/deprecat/CRITICAL. Designed for compact LLM context: an LLM mostly needs to know what changed broadly + what's risky, not every patch's release notes.Sieroced headers are kept on purpose — knowing a gem moved at all is itself signal, even when no high-severity bullets exist.
The scope label includes
, summaryso the consumer knows the output was post-filtered.Test plan
tests/test_summary.sh— synthetic deltas through the awk filter, asserts both retention (CVE, GHSA, Breaking, deprecated) and dropping (routine maintenance, unrelated fixes). 11/11 pass.tests/test_ruby_local_notes.sh— adds bracketed-0.16.0 fixture, three regression assertions for[v0.16.0]parsing. 23/23 pass.--summaryagainst ruby_llm_fork — output is coherent and high-signal.🤖 Generated with Claude Code