mirror of
https://github.com/ksyasuda/SubMiner.git
synced 2026-05-04 00:41:33 -07:00
27f5b2bb58
- Replace `renderGroupedChanges` with `polishFragmentsWithClaude` that pipes fragments through `claude -p --model sonnet` to merge related items, drop housekeeping noise, and produce user-facing release notes - Internal fragments kept in CHANGELOG.md under a `<details>` collapse; dropped from GitHub release notes entirely - CI no longer auto-runs `changelog:build` on tag-based releases — fails fast with a clear error if `changes/*.md` fragments are still pending; build locally and commit before tagging - Add `runClaude` dep-injection seam to test surface; add failure-mode coverage (missing binary, empty output, missing headers, missing `<details>` wrapper) - Delete implemented design doc; update `changes/README.md` and `docs/RELEASING.md` with claude CLI prerequisite and new workflow
45 lines
1.9 KiB
Markdown
45 lines
1.9 KiB
Markdown
# Changelog Fragments
|
|
|
|
Add one `.md` file per user-visible PR in this directory.
|
|
|
|
Use this format:
|
|
|
|
```md
|
|
type: added
|
|
area: overlay
|
|
|
|
- Added keyboard navigation for Yomitan popups.
|
|
- Added auto-pause toggle when opening the popup.
|
|
```
|
|
|
|
For breaking changes, add `breaking: true`:
|
|
|
|
```md
|
|
type: changed
|
|
area: config
|
|
breaking: true
|
|
|
|
- Renamed `foo.bar` to `foo.baz`.
|
|
```
|
|
|
|
Rules:
|
|
|
|
- `type` required: `added`, `changed`, `fixed`, `docs`, or `internal`
|
|
- `area` required: short product area like `overlay`, `launcher`, `release`
|
|
- `breaking` optional: set to `true` to flag as a breaking change
|
|
- each non-empty body line becomes a bullet
|
|
- `README.md` is ignored by the generator
|
|
- if a PR should not produce release notes, apply the `skip-changelog` label instead of adding a fragment
|
|
|
|
How fragments turn into a release:
|
|
|
|
- At release time, `bun run changelog:build` (and `bun run changelog:prerelease-notes`) pipes every pending fragment through `claude -p` to merge related items, drop noise, and rewrite into a clean user-facing release body. Write fragments as raw, informative notes — don't worry about polished prose, deduping across PRs, or line-by-line phrasing. The polish step handles all of that.
|
|
- `internal` fragments stay in `CHANGELOG.md` (inside a collapsed `<details>` block) but are dropped from the GitHub release notes entirely.
|
|
- The polished `CHANGELOG.md` and `release/release-notes.md` are committed and reviewed before tagging — edit the Markdown by hand if Claude misses something.
|
|
|
|
Prerelease notes:
|
|
|
|
- prerelease tags like `v0.11.3-beta.1` and `v0.11.3-rc.1` reuse the current pending fragments to generate `release/prerelease-notes.md`
|
|
- prerelease note generation does not consume fragments and does not update `CHANGELOG.md` or `docs-site/changelog.md`
|
|
- the final stable release is the point where `bun run changelog:build` consumes fragments into the stable changelog and release notes
|