You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: .agents/skills/release-notes/SKILL.md
+46-25Lines changed: 46 additions & 25 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,22 +6,23 @@ disable-model-invocation: true
6
6
7
7
# Release Notes Generator
8
8
9
-
Generate a CHANGELOG entry for the next release by analyzing git history since the last tag.
9
+
Generate a CHANGELOG entry for the next release by analyzing the complete release range and preserving its validated target through publication.
10
10
11
11
## Steps
12
12
13
-
1.**Get the last tag and version**:
14
-
```bash
15
-
git describe --tags --abbrev=0
16
-
```
17
-
Also read the current version from `package.json`.
13
+
1.**Set the release identities**:
14
+
- Read `<version>` from `package.json`.
15
+
- Set `<tag>` to `v<version>`.
16
+
- Set `<baseTag>` to the previous annotated release tag.
17
+
- Set the pre-release `<target>` to `HEAD`.
18
18
19
-
2.**Get all commits since the last tag**:
19
+
2.**Read the complete history**:
20
+
Use the complete, unbounded `<baseTag>..<target>` range with full commit OIDs. Do not add `-n`, `--max-count`, date limits, paging limits, or manual truncation.
3.**Categorize each commit** into these sections (matching the existing CHANGELOG.md format):
25
+
3.**Categorize every commit** into these sections, matching the existing `CHANGELOG.md` style:
25
26
-**Breaking Changes** — API changes, removed features, migration required
26
27
-**Features** — new tools, new CLI commands, new capabilities
27
28
-**Enhancements** — improvements to existing functionality
@@ -30,28 +31,48 @@ Generate a CHANGELOG entry for the next release by analyzing git history since t
30
31
-**Performance** — speed, memory, or token efficiency improvements
31
32
-**Internal** — refactoring, test infrastructure, CI changes (only include if significant)
32
33
33
-
4.**Read the existing CHANGELOG.md** to match its formatting style (heading levels, bullet format, date format).
34
-
35
-
5.**Draft the entry** in this format:
34
+
4.**Draft concise, grouped summaries**:
35
+
Read the existing `CHANGELOG.md` and group related commits into one visible bullet. Put the full OIDs covered by that bullet in the immediately following hidden marker:
36
36
```markdown
37
-
## [X.Y.Z] - YYYY-MM-DD
37
+
-**component**: Concise description of the related change.
Use only full 40-character OIDs. Keep exactly one visible commit appendix in the generated release notes, and do not repeat per-commit bullets elsewhere.
41
+
42
+
5.**Present the CHANGELOG draft for review**:
43
+
Omit empty sections and match the existing heading, bullet, and date style. Do not write `CHANGELOG.md` until the user approves.
38
44
39
-
### Features
40
-
-**tool-name**: Description of what was added
45
+
6.**Validate before the expensive release checks**:
46
+
After the approved entry is in the working-tree `CHANGELOG.md`, run:
47
+
```bash
48
+
npm run prepare-release -- --base-tag <baseTag>
49
+
```
50
+
Save the full `preReleaseTargetOid` from the machine-readable validation output. Stop on any coverage or target drift failure.
41
51
42
-
### Bug Fixes
43
-
-**component**: What was fixed and why
52
+
7.**Create the release commit and annotated tag**:
53
+
Commit only the approved release changes, then create the annotated tag:
54
+
```bash
55
+
git tag -a <tag> -m "Release <tag>"
56
+
```
44
57
45
-
### Security
46
-
-**component**: What vulnerability was addressed
58
+
8.**Build release notes from the tagged target**:
59
+
Immediately after annotated tag creation, run build mode with the exact validated identities:
description: Generate a CHANGELOG.md entry from git history since the last tag, categorized by type (features, fixes, security, breaking changes). Matches the existing CHANGELOG format.
4
+
disable-model-invocation: true
5
+
---
6
+
7
+
# Release Notes Generator
8
+
9
+
Generate a CHANGELOG entry for the next release by analyzing the complete release range and preserving its validated target through publication.
10
+
11
+
## Steps
12
+
13
+
1.**Set the release identities**:
14
+
- Read `<version>` from `package.json`.
15
+
- Set `<tag>` to `v<version>`.
16
+
- Set `<baseTag>` to the previous annotated release tag.
17
+
- Set the pre-release `<target>` to `HEAD`.
18
+
19
+
2.**Read the complete history**:
20
+
Use the complete, unbounded `<baseTag>..<target>` range with full commit OIDs. Do not add `-n`, `--max-count`, date limits, paging limits, or manual truncation.
3.**Categorize every commit** into these sections, matching the existing `CHANGELOG.md` style:
26
+
-**Breaking Changes** — API changes, removed features, migration required
27
+
-**Features** — new tools, new CLI commands, new capabilities
28
+
-**Enhancements** — improvements to existing functionality
29
+
-**Bug Fixes** — corrections to incorrect behavior
30
+
-**Security** — vulnerability fixes, hardening
31
+
-**Performance** — speed, memory, or token efficiency improvements
32
+
-**Internal** — refactoring, test infrastructure, CI changes (only include if significant)
33
+
34
+
4.**Draft concise, grouped summaries**:
35
+
Read the existing `CHANGELOG.md` and group related commits into one visible bullet. Put the full OIDs covered by that bullet in the immediately following hidden marker:
36
+
```markdown
37
+
-**component**: Concise description of the related change.
Use only full 40-character OIDs. Keep exactly one visible commit appendix in the generated release notes, and do not repeat per-commit bullets elsewhere.
41
+
42
+
5.**Present the CHANGELOG draft for review**:
43
+
Omit empty sections and match the existing heading, bullet, and date style. Do not write `CHANGELOG.md` until the user approves.
44
+
45
+
6.**Validate before the expensive release checks**:
46
+
After the approved entry is in the working-tree `CHANGELOG.md`, run:
47
+
```bash
48
+
npm run prepare-release -- --base-tag <baseTag>
49
+
```
50
+
Save the full `preReleaseTargetOid` from the machine-readable validation output. Stop on any coverage or target drift failure.
51
+
52
+
7.**Create the release commit and annotated tag**:
53
+
Commit only the approved release changes, then create the annotated tag:
54
+
```bash
55
+
git tag -a <tag> -m "Release <tag>"
56
+
```
57
+
58
+
8.**Build release notes from the tagged target**:
59
+
Immediately after annotated tag creation, run build mode with the exact validated identities:
0 commit comments