Release Notes¶
Release notes are product communication, not a commit log. They explain shipped impact in terms a user, operator, or System Admin can understand.
Agents should use the local release-notes-writer skill when drafting or reviewing entries.
Working Notes¶
For BetterFleet Manage:
- Public queue:
bf-manage-web/docs/release-notes/working/next.public.md - Internal queue:
bf-manage-web/docs/release-notes/working/next.internal.md - Holdback queue:
bf-manage-web/docs/release-notes/working/holdback.md - Published notes:
bf-manage-web/docs/release-notes/releases/
For BetterFleet Plan, use the equivalent paths under betterfleet-bnl-ui/docs/release-notes/.
Use these change-type sections only when they contain real entries, in this order:
Added, Changed, Fixed, Removed, Deprecated, Security, Documentation
Do not keep empty headings or placeholder bullets. A working note with no queued entries should contain only front matter.
Writing Good Entries¶
A good release-note entry:
- names the changed behaviour or surface
- explains the practical outcome for a user, operator, customer, or System Admin
- gives enough detail for under-the-hood changes that customers can trust the software will not behave unexpectedly
- avoids ticket numbers, branch names, raw feature-flag names, and implementation detail unless the audience needs them
- links to relevant help docs using app-route paths such as
help/settings/...when the entry points readers to a workflow or setting
Examples:
- User access changes now refresh more reliably after signing out and back in, so recently updated workspace roles are reflected without requiring a hard browser refresh.
- Customer admins can now access Settings > Power > Devices and Configuration Summary to set up and review on-site power integration devices for their depot. In a product release note, link the help page using the app route
help/settings/depot-based-settings/power/. - Audit log coverage now includes circuit configuration changes, including updates to circuit settings, power limit profiles, and time-of-use limits, so customers can request a clearer history of these changes for review.
Counterexamples:
Feature flagged: manage-system-admin-users- Improved permissions.
- No public changes queued yet.
Decision Flow¶
flowchart TD
A["Change is ready to describe"] --> B{"Will a user, operator, or System Admin notice or rely on it?"}
B -- "No" --> C["No release-note entry"]
B -- "Yes" --> D{"Safe to publish now?"}
D -- "No" --> E["Add to holdback.md"]
D -- "Yes" --> F{"Audience"}
F -- "Customers and normal users" --> G["Add to next.public.md"]
F -- "System Admin or internal operators" --> H["Add to next.internal.md"]
E --> I["Move later when publishable"]
G --> J["Weekly promotion"]
H --> J
I --> D
Rules¶
- Prefer
next.public.mdwhenever shipped scope can be communicated normally. - Use
next.internal.mdonly for internal or System Admin communication. - Use
holdback.mdfor real changes that are not ready to publish. - Do not expose raw feature-flag names in public or internal release-note entries.
- Keep raw rollout labels in
holdback.mdwhen needed to prevent accidental publication. - Treat
Fully Releasedfeature-flag work as normal shipped behaviour and start bounded flag cleanup. - Update in-app help separately when the change affects what users see, expect, or need to do.
Promotion¶
When the weekly release is cut:
- Review
next.public.md,next.internal.md, andholdback.md. - Move any now-publishable holdback entries into the right publishable queue.
- Publish
next.public.mdtoreleases/<version>.mdonly when it has content. - Publish
next.internal.mdtoreleases/<version>.internal.mdonly when it has content. - Reset promoted working notes to frontmatter-only templates.