一键导入
chatto-release-notes
Create or update Chatto docs website release pages by comparing release-please state, tags, commits, changelog entries, and PRs
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Create or update Chatto docs website release pages by comparing release-please state, tags, commits, changelog entries, and PRs
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Use when designing, implementing, reviewing, debugging, or documenting Chatto event-sourced domain behavior, including EVT subjects, aggregate boundaries, Services, projections, optimistic concurrency control, read-your-writes, live/reconnect delivery, replay compatibility, migration safety, and rollback/deployment implications.
Run a full review of all Architecture Decision Records for implementation drift, contradictions, stale decisions, missing supersession notes, weak rationale, and missing cross-references. Use when the user asks for an ADR review, ADR audit, stale ADR check, architecture decision consistency check, or wants to verify ADRs against the current codebase, feature/design records, architecture docs, glossary, or public API state.
Update docs/ARCHITECTURE.md to reflect the current state of the codebase by examining code and documentation.
Run a documentation-focused maintenance checkup of the Chatto codebase. Fans out to /fdr, /adr, and /chatto-architecture, then compiles a single consolidated report. Always propose-only — no changes applied without explicit user approval. At the end, points the human at other maintenance skills (/update-project-dependencies, /chatto-security-review) they may want to run themselves.
Production debugging tools for NATS streams, KV buckets, and protobuf events. Covers nats CLI commands, stream inspection, protobuf decoding, and message iteration.
Pre-merge PR checklist for the Chatto codebase. Contains instructions for tasks that must run before a PR is merged. This skill should automatically run when a PR is opened.
| name | chatto-release-notes |
| description | Create or update Chatto docs website release pages by comparing release-please state, tags, commits, changelog entries, and PRs |
Generate or update user-facing release pages for Chatto minor releases.
Release notes now live in the docs website, not in local .context Markdown
files or GitHub release bodies. The output is one MDX page per minor release,
for example:
apps/docs-website/src/content/docs/releases/0-4-0.mdx
Use a URL-safe filename with hyphens (0-4-0) because Starlight content slugs
do not preserve dotted version filenames as sidebar slugs. Keep the visible
title, description, hero, and version text dotted (0.4.0).
Write only for:
Do not list changes that do not affect either group. Skip routine refactors, test work, CI work, codegen churn, internal API rearrangement, and dependency maintenance unless they change user-visible behavior or operator action.
Name the specific actor whenever one is known. Prefer "users", "members", "operators", "admins", or "integration authors" over generic actor wording.
API changes belong on these pages only when they affect self-hosters or integration authors running against their own Chatto servers. Phrase them as operator or integration impact, not as maintainer implementation detail. Do not mention generated package moves, import paths, or internal client extraction unless external integration authors must take action.
Major public API replacements, removed protocols, or required integration
migrations are headline release-page items. Do not hide them behind generic
phrases such as "API foundation" or place them after smaller operational
improvements. Use an explicit title like ConnectRPC replaces GraphQL, mark the
card size="large", and repeat the required operator action in plain
## Upgrade Notes text.
.release-please-config.json.release-please-manifest.json0.4.0-beta.4 targets 0.4.0.x.y.0.(unreleased) in the frontmatter title, an unreleased
description, and status="Unreleased" on ReleaseHero. Remove those markers
only when the stable release exists.Useful local check:
jq -r '.["."]' .release-please-manifest.json
Before writing, check whether the target page already exists:
apps/docs-website/src/content/docs/releases/<version-with-hyphens>.mdx
If it exists, assume a human maintainer has edited it manually.
.context/release-page-<version>-proposal.md
and tell the user where they are.Release pages should use the dedicated release-note components in:
apps/docs-website/src/components/release-notes/
Expected components:
ReleaseHero.astro for the page opening.ReleaseFeatureGrid.astro to group feature cards.ReleaseFeatureCard.astro for one user/operator-facing feature per card.
Use size="large" for headline features, size="small" for compact items,
and omit size for normal cards. Maintainer-provided images can be attached
with imageSrc, imageAlt, imageCaption, and imagePosition.
Do not add audience labels or subheadings inside cards; cards should show only
the feature title and body text unless they include a maintainer-provided
image.ReleaseImage.astro for standalone maintainer-provided images.If these components are missing, add them before creating a release page.
ReleaseFeatureGrid uses CSS Grid Lanes for the box layout, with a local
polyfill fallback for browsers that do not support display: grid-lanes yet.
Keep release feature cards as direct children of ReleaseFeatureGrid so native
lanes and the polyfill can place them correctly.
Release pages compare the upcoming stable minor release against the highest stable patch release of the previous minor line.
0.4.0 page, compare against the highest stable 0.3.x tag, such as
v0.3.8.v0.4.0-beta.4, as the baseline
for a stable minor release page.0.4.0, including changes first released in 0.4.0-beta.*.0.4.0 prerelease cycle and later prereleases clean up method
names, message shapes, or generated docs before the stable release, describe
the stable ConnectRPC API once. Mention beta-to-stable migration work only in
upgrade notes for operators or integration authors who tested prereleases.Identify the baseline by listing stable tags for the previous minor:
git tag --list 'v0.3.*' --sort=-version:refname | grep -v '-' | head -1
Then inspect changes from that baseline to the current release-preparation state:
git log --oneline <previous-minor-highest-stable-tag>..HEAD
git diff --name-only <previous-minor-highest-stable-tag>..HEAD
CHANGELOG.md for all stable and prerelease sections that roll into
the target stable release.Bug Fixes section in the
comparison range, plus any post-prerelease fix: commits not yet in
CHANGELOG.md. Then filter it for stable-release readers.Useful commands:
git tag --list --sort=-version:refname
gh pr view <number> --json title,body,url
---
title: Chatto <version> (unreleased)
description: Unreleased release notes for Chatto <version>.
---
For already shipped stable releases, remove (unreleased) from the title and
use Release notes for Chatto <version>. as the description.
../../../components/release-notes/....ReleaseHero. For unreleased pages, pass status="Unreleased".## Running and Integrating Chatto by default unless a more specific title fits the release
better.ReleaseFeatureCard per notable feature.## Upgrade Notes, bug fixes to "Smaller
fixes you'll appreciate", or exhaustive links/PR detail to ## GitHub release.ReleaseFeatureCard, even if several fixes share a
theme or feel user-visible. Bug fixes belong only in the grouped "Smaller
fixes you'll appreciate" section.## Upgrade Notes when they affect prerelease testers.ReleaseImage or the image props on ReleaseFeatureCard.## Upgrade Notes section only when server operators, admins, or
integration authors need to act or review compatibility. Do not put upgrade
notes in a box or card.### subheadings such as "Messages and Threads",
"Notifications and Unread State", "Calls and Media", or "API and Operations".
Do not use one ungrouped catch-all list.Fixed ..., Prevented ..., Kept ..., or
another direct verb when it is clearer than repeating Fixed an issue where.## GitHub release section that links to the canonical
GitHub release URL for the stable version. The URL is always
https://github.com/chattocorp/chatto/releases/tag/v<version>, for example
https://github.com/chattocorp/chatto/releases/tag/v0.4.0.Every release page must end with ## GitHub release.
Use this format:
## GitHub release
The generated GitHub release lists every PR and commit:
[github.com/chattocorp/chatto/releases/tag/v<version>](https://github.com/chattocorp/chatto/releases/tag/v<version>)
For unreleased pages, keep the same link target even if the GitHub release does not exist yet. The page is already marked as unreleased, and the URL will become valid when the stable release is published.
Do not create or generate release-page images by default. Use images only when the maintainer provides an asset, points you at an existing asset, or explicitly asks you to add one.
Store release-specific images under:
apps/docs-website/public/releases/<version-with-hyphens>/<descriptive-name>.png
For a standalone image, import ReleaseImage and reference it as:
<ReleaseImage
src="/releases/<version-with-hyphens>/<descriptive-name>.png"
alt="..."
caption="..."
/>
For an image attached to a feature card, use:
<ReleaseFeatureCard
title="..."
imageSrc="/releases/<version-with-hyphens>/<descriptive-name>.png"
imageAlt="..."
imageCaption="..."
>
...
</ReleaseFeatureCard>
New pages usually need a sidebar entry in:
apps/docs-website/astro.config.mjs
Add a Releases sidebar group if none exists. If a group exists, add only the
new page. Preserve existing order and labels.
## Running and Integrating Chatto, focus
on operator outcomes such as faster startup, replay, backup, restore,
deployment, or resource use. Put frontend-only loading wins in a user-facing
section only when users will actually notice them. Prefer titles like "Faster
startup performance" or "Pages load faster" over internal labels like "Faster
loading paths", "projection replay improvements", or "bundle splitting".mise x -- pnpm --filter docs-website build