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/write-changelog-entry/SKILL.md
+50-21Lines changed: 50 additions & 21 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,22 +5,22 @@ description: Use when asked to add, revise, or review a changelog or release-not
5
5
6
6
## Purpose
7
7
8
-
Write a single changelog entry that matches the surrounding section's style and reflects the actual shipped change.
8
+
Write changelog entries that match the surrounding section's style and reflect the actual shipped change for the intended audience.
9
9
10
10
## Inputs
11
11
12
-
* Target changelog file, usually `/CHANGELOG.md` or `packages/flet/CHANGELOG.md`.
12
+
* Target changelog file, if specified; otherwise infer it from the changed package
13
+
and audience.
13
14
* Release version or section if the user specifies one.
14
15
* Relevant PR number, issue number, commit(s), or branch context.
15
16
16
17
## Target file selection
17
18
18
-
Choose the narrowest correct changelog file before writing the item.
19
+
Choose the narrowest correct changelog file before writing entries.
19
20
20
21
* Use `/CHANGELOG.md` for repo-level or broadly user-facing Flet changes.
21
22
* Use `packages/flet/CHANGELOG.md` only for changes relevant to Flutter package
22
-
consumers and extension developers. Do not mirror `/CHANGELOG.md` entries there
23
-
just because a user-facing feature required Flutter-side implementation.
23
+
consumers and extension developers. See the dedicated section below.
24
24
* Use `sdk/python/packages/<package>/CHANGELOG.md` for changes scoped to a specific
25
25
Python package.
26
26
* For extension (ex: flet-audio) changelogs under
@@ -33,6 +33,27 @@ Choose the narrowest correct changelog file before writing the item.
33
33
* Do not default everything to `/CHANGELOG.md` when a package-specific changelog is the
34
34
better fit.
35
35
36
+
## Root vs Flutter package changelog
37
+
38
+
`/CHANGELOG.md` and `packages/flet/CHANGELOG.md` have different audiences.
39
+
40
+
*`/CHANGELOG.md` is the broad Flet product changelog. Write entries from the app
41
+
developer's perspective, usually summarizing the shipped feature or fix at about
42
+
PR-title specificity.
43
+
*`packages/flet/CHANGELOG.md` is for Flutter package consumers and extension
44
+
developers. Write entries only when they need to know a specific Dart-side API,
45
+
utility, parser, serializer, runtime contract, dependency, or compatibility change.
46
+
* Do not repeat a root changelog entry in `packages/flet/CHANGELOG.md` merely because
47
+
the implementation touched Dart files.
48
+
* If both audiences are affected, update both changelogs, but phrase them differently:
49
+
the root entry should describe the user-facing outcome, while the Flutter package
50
+
entry should describe the precise Dart/extension-facing change.
51
+
52
+
Example split:
53
+
54
+
* Root: `Add support for text-or-control labels in \`NavigationDestination\`s.`
55
+
* Flutter package, only if applicable: `Extend \`Control\` with \`.buildTextOrWidget()\` to parse properties that accept either plain text or child controls.`
56
+
36
57
## Workflow
37
58
38
59
1. Inspect the target changelog section before editing.
@@ -42,27 +63,27 @@ Choose the narrowest correct changelog file before writing the item.
42
63
*`### Improvements`
43
64
*`### Bug fixes`
44
65
*`### Other changes`
45
-
2. Inspect the source of truth for scope.
66
+
2. Inspect the source of truth for scope and audience.
46
67
* Prefer PR title and PR description/summary over commit noise.
47
68
* Use linked issues to understand user-facing intent.
48
69
* Use commits only to confirm details or fill gaps.
49
70
3. Extract the primary shipped change.
50
71
* Lead with the API, control, command, or behavior that changed.
51
-
* Mention docs, examples, tests, refactors, or chores only when they are the main outcome the user would care about.
52
-
4. Write one concise item.
72
+
* Mention docs, examples, tests, refactors, or chores only when they are the main outcome the changelog audience would care about.
73
+
4. Write concise item(s) for the selected changelog(s).
* Prefer concrete nouns and verbs over implementation detail.
55
-
* Keep the sentence focused on what users gained or what was fixed.
76
+
* Keep each sentence focused on what that changelog's audience gained or must know.
56
77
5. Add links and attribution in repo style.
57
-
* Include both related issue link(s) and PR link(s) when available, with issue links
58
-
first.
59
-
* If no issue exists, include PR link(s) only.
60
-
* Include issue-only direct-commit items when a shipped change has no PR.
78
+
* Include both related issue link(s) and PR link(s) when available, with issue links
79
+
first.
80
+
* If no issue exists, include PR link(s) only.
81
+
* Include issue-only direct-commit items when a shipped change has no PR.
61
82
* Use plain-text author attribution at the end: `by @login.`
62
-
* Use the PR author login for PR-based items.
63
-
* For issue-only direct-commit items, use the commit author login if available.
64
-
* If one item groups multiple PRs by different authors, attribute all relevant
65
-
authors: `by @user1, @user2.`
83
+
* Use the PR author login for PR-based items.
84
+
* For issue-only direct-commit items, use the commit author login if available.
85
+
* If one item groups multiple PRs by different authors, attribute all relevant
86
+
authors: `by @user1, @user2.`
66
87
67
88
## Repo-specific guidance
68
89
@@ -76,21 +97,29 @@ Choose the narrowest correct changelog file before writing the item.
76
97
* For extension package changelogs, prefer Python-facing API, behavior, packaging, and
77
98
usability changes over Flutter implementation details that are not directly published
78
99
to users.
79
-
* Add `packages/flet/CHANGELOG.md` entries for public Dart APIs, extension authoring
80
-
contracts, shared Dart utility behavior, serialization/parsing contracts that custom
81
-
controls rely on, or Flutter dependency/compatibility changes.
82
100
83
101
## Good patterns
84
102
103
+
Root changelog:
104
+
85
105
*`* Add \`scrollable\` to \`NavigationRail\` for overflowed destinations ([#1923](...), [#6356](...)) by @login.`
86
106
*`* Make \`NavigationDrawerDestination.label\` accept custom controls and add \`NavigationDrawerTheme.icon_theme\` ([#6379](...), [#6395](...)) by @login.`
87
107
108
+
Flutter package changelog:
109
+
110
+
*`* Improve \`parseBool()\` to accept string and numeric payload values ([#1234](...)) by @login.`
111
+
*`* Extend \`Control\` with \`.buildTextOrWidget()\` to parse properties that accept either strings or child controls ([#1234](...)) by @login.`
112
+
*`* Improve extension asset resolution to avoid package path collisions ([#1234](...)) by @login.`
113
+
*`* Add \`parseEnum()\` utility for consistent enum parsing ([#1234](...)) by @login.`
114
+
88
115
## Checks
89
116
90
117
Before finishing, verify:
91
118
92
119
* The item sits under the right release and section.
93
120
* The wording matches neighboring entries in length and tone.
94
-
* The sentence describes the primary user-facing change.
121
+
* The sentence describes the primary change for that changelog's audience.
122
+
*`packages/flet/CHANGELOG.md` entries are specific to Dart/Flutter package or
123
+
extension-facing behavior and are not bare repeats of root changelog entries.
95
124
* Issue and PR links follow repo style, including issue-only direct-commit cases.
0 commit comments