|
| 1 | +# Release-notes editorial instructions (customer-facing) |
| 2 | + |
| 3 | +These instructions are read by the automated polish step in `changelog-sync.yml` and by any human |
| 4 | +editing `src/pages/docs/release-notes.mdx`. The audience is **FutureAGI customers** — developers and |
| 5 | +AI teams using the platform. Assume no knowledge of our internal codebase, tickets, or services. |
| 6 | + |
| 7 | +## Your task |
| 8 | +The mechanical importer (`scripts/changelog-from-release.mjs`) has just inserted a new |
| 9 | +`## <version> (<date>)` section at the very top of `src/pages/docs/release-notes.mdx`, directly below |
| 10 | +the `release-notes:insert-below` marker. Its bullets are raw conventional-commit subjects. **Rewrite |
| 11 | +only that newest section** into customer-facing prose that matches the existing entries below it. |
| 12 | + |
| 13 | +## Match the existing house style exactly |
| 14 | +Look at the sections already on the page and mirror them: |
| 15 | +- Bullets are `- **Benefit-led Title in Title Case:** one or two plain sentences.` |
| 16 | +- Lead with what the user can now do or what now works — never the code mechanism. |
| 17 | +- Phrase fixes as observed behavior, e.g. *"In some cases, X failed… This has been resolved."* |
| 18 | +- Keep the existing MDX wrapper markup and the `Features` / `Bugs/Improvements` / `Breaking Changes` |
| 19 | + subsection headings (only include a subsection that has content). |
| 20 | + |
| 21 | +## Cluster (the main job) |
| 22 | +- Merge every bullet about the same feature or scope (the conventional-commit scope in parentheses) |
| 23 | + into **one** bullet led by the combined user benefit. Collapse exact duplicates (the same subject |
| 24 | + may appear twice from two commits — that is one bullet, not two). |
| 25 | +- A dozen raw commits should become a handful of benefit statements. |
| 26 | + |
| 27 | +## Omit changes customers can't observe |
| 28 | +- Leave out changes a customer cannot observe: tests, CI, refactors, chores, dependency bumps, and |
| 29 | + internal-only performance/index work. If a change has a user-visible effect, keep it and describe |
| 30 | + the effect, not the mechanism. |
| 31 | +- Never expose internal ticket IDs, internal service or module names, database/index/SQL details, or |
| 32 | + source file paths. |
| 33 | + |
| 34 | +## Accuracy (critical — these are published to customers) |
| 35 | +- Describe only what the source bullets state. **Never invent** API names, flags, endpoints, model |
| 36 | + IDs, or version numbers not present in the source. When unsure, omit rather than guess. |
| 37 | +- Do not assert capabilities, limits, or guarantees the source does not state. |
| 38 | + |
| 39 | +## Breaking changes |
| 40 | +- Always in their own **Breaking Changes** subsection, each with a one-line migration note. |
| 41 | + |
| 42 | +## Leave these aids in the file for the human reviewer |
| 43 | +- If unsure how to phrase an item or which cluster it belongs to, keep the original bullet and append |
| 44 | + an inline `{/* REVIEW: ... */}` comment explaining the doubt. |
| 45 | +- At the end of the section, add one `{/* SKIPPED: ... */}` comment listing what you dropped and why, |
| 46 | + so the reviewer can veto a drop. |
| 47 | + |
| 48 | +## Hard constraints |
| 49 | +- Edit **only** the newest `## <version>` section. Do not touch the marker, any older section, or any |
| 50 | + file other than `src/pages/docs/release-notes.mdx`. |
| 51 | +- Preserve valid MDX: escape stray `<`, `{`, `}` in prose. Keep any commit/PR links from the source |
| 52 | + on the corresponding polished bullet where natural (the importer may strip them — do not fabricate). |
| 53 | +- Leave your edits in the working tree; do not commit, push, or open a PR. |
0 commit comments