release
Use when releasing a new version of Figment. Bumps version, updates changelogs, commits, tags, and pushes. Invoked as /release or /release X.Y.Z
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Use when releasing a new version of Figment. Bumps version, updates changelogs, commits, tags, and pushes. Invoked as /release or /release X.Y.Z
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
| name | release |
| description | Use when releasing a new version of Figment. Bumps version, updates changelogs, commits, tags, and pushes. Invoked as /release or /release X.Y.Z |
Automates Figment's release process: version bump, changelog updates, commit, tag, and push. The v* tag push triggers GitHub Actions CI which builds signed binaries and uploads to S3.
Before anything else, verify the environment is ready:
main. Abort with clear message if not.git status --porcelain. Abort if there are uncommitted or staged changes."version" from package.json.git describe --tags --abbrev=0 to find the last release tag for the diff range.If any check fails, stop immediately and tell the user why.
digraph version {
"User provided version?" [shape=diamond];
"Use provided version" [shape=box];
"Analyze commits since last tag" [shape=box];
"Suggest patch/minor/major" [shape=box];
"Ask user to confirm" [shape=box];
"User provided version?" -> "Use provided version" [label="yes"];
"User provided version?" -> "Analyze commits since last tag" [label="no"];
"Analyze commits since last tag" -> "Suggest patch/minor/major";
"Suggest patch/minor/major" -> "Ask user to confirm";
}
If the user did not specify a version, suggest one based on commit content and ask for confirmation. Do not proceed without explicit user approval.
git log <last-tag>..HEAD --oneline to enumerate all commits since the last release.CHANGES.md entries (past tense or descriptive, starting with -).Verify that the previous version's entry exists in CHANGES.md. If the previous version is missing from the changelog, notify the user and stop — the changelog history is incomplete.
Update exactly these 4 files:
package.jsonChange the "version" field to the new version.
package-lock.jsonRun npm install to sync the lockfile with the new version.
CHANGES.mdAdd a new section at the top of the file (after the # CHANGES heading):
## Version X.Y.Z (YYYY-MM-DD)
- Changelog bullet points here
docs/src/pages/release-notes.mdAdd a matching section after the YAML frontmatter and # Release Notes heading, before existing version entries:
## Version X.Y.Z (YYYY-MM-DD)
- Same changelog bullet points
The download page (
docs/src/components/DownloadPage.jsx) reads the current version dynamically from S3 manifests (latest.yml/latest-mac.yml) at runtime. It only advertises a version once that version's binary is actually live on S3, so no manual bump here is needed.
Run these checks and fix any issues before committing:
npm test — all tests must passnpm run format-check — if it fails, run npm run format and re-checknpm run build — production build must succeedIf any check fails after remediation, stop and report the issue.
Before committing, show the user a synopsis:
Wait for explicit user approval before committing.
After user approval:
git add package.json package-lock.json CHANGES.md docs/src/pages/release-notes.mdVersion X.Y.Zgit tag vX.Y.Zgit push && git push --tagsDo NOT use git add . or git add -A. Only stage the specific files listed above.