@@ -28,7 +28,10 @@ You are an expert release manager for the Basic Memory project. When the user ru
2828
2929#### Documentation Validation
30301 . ** Changelog Check**
31- - CHANGELOG.md contains entry for target version
31+ - CHANGELOG.md contains entry for target version ** already landed on ` main ` **
32+ (main only accepts changes via PR, so the changelog entry must go through
33+ its own PR before running the release; the recipe pre-flight-checks for a
34+ ` ## vX.Y.Z ` heading)
3235 - Entry includes all major features and fixes
3336 - Breaking changes are documented
3437
@@ -41,11 +44,15 @@ just release <version>
4144The justfile target handles:
4245- ✅ Version format validation
4346- ✅ Git status and branch checks
44- - ✅ Quality checks (` just check ` - lint, format, type-check, tests)
47+ - ✅ Changelog entry check (must already be on ` main ` )
48+ - ✅ Quality checks (` just lint ` + ` just typecheck ` )
4549- ✅ Version update across all consolidated manifests via ` just set-version ` (Python
4650 package + Claude Code plugin/marketplaces + Codex plugin + Hermes + OpenClaw)
47- - ✅ Automatic commit with proper message
48- - ✅ Tag creation and pushing to GitHub
51+ - ✅ Release PR: commits the bump on a ` release/vX.Y.Z ` branch, opens a PR
52+ (` chore(core): release vX.Y.Z ` ), and rebase-merges it — the ` main ` ruleset
53+ rejects direct pushes and the repo disallows merge commits
54+ - ✅ Tags the rebased bump commit on ` main ` (found by commit subject, since
55+ the rebase rewrites the SHA) and pushes the tag
4956- ✅ Release workflow trigger (automatic on tag push)
5057
5158The GitHub Actions workflow (` .github/workflows/release.yml ` ) then:
@@ -89,7 +96,7 @@ After PyPI release is published, update the MCP registry:
8996
90972 . ** Publish to MCP Registry**
9198 ``` bash
92- cd /Users/drew/code/ basic-memory
99+ # from the basic-memory repo root
93100 mcp-publisher publish
94101 ```
95102
@@ -109,43 +116,50 @@ After PyPI release is published, update the MCP registry:
109116
110117#### Website Updates
111118
112- ** 1. basicmachines.co** (` /Users/drew/code/basicmachines.co ` )
113- - ** Goal** : Update version number displayed on the homepage
114- - ** Location** : Search for "Basic Memory v0." in the codebase to find version displays
115- - ** What to update** :
116- - Hero section heading that shows "Basic Memory v{VERSION}"
117- - "What's New in v{VERSION}" section heading
118- - Feature highlights array (look for array of features with title/description)
119- - ** Process** :
119+ ** 1. basicmemory.com** (sibling ` basicmemory.com ` repo —
120+ ` basicmachines-co/basicmemory.com ` , formerly ` basicmachines.co ` )
121+ - ** No version bump needed.** The marketing site is an Astro + React app and
122+ carries ** no hardcoded Basic Memory version number** anywhere in its UI
123+ (` hero.tsx ` and the rest of the site have no version string). The old
124+ instruction to bump ` src/components/sections/hero.tsx ` is obsolete — that
125+ file no longer holds a version. Release announcements are dated blog posts,
126+ not an in-place edit.
127+ - ** Skip entirely for patch releases.**
128+ - ** Significant releases only — optional announcement post** :
120129 1 . Pull latest from GitHub: ` git pull origin main `
121130 2 . Create release branch: ` git checkout -b release/v{VERSION} `
122- 3 . Search codebase for current version number (e.g., "v0.16.1")
123- 4 . Update version numbers to new release version
124- 5 . Update feature highlights with 3-5 key features from this release (extract from CHANGELOG.md)
125- 6 . Commit changes: ` git commit -m "chore: update to v{VERSION}" `
126- 7 . Push branch: ` git push origin release/v{VERSION} `
127- - ** Deploy** : Follow deployment process for basicmachines.co
128-
129- ** 2. docs.basicmemory.com** (` /Users/drew/code/docs.basicmemory.com ` )
130- - ** Goal** : Add new release notes section to the latest-releases page
131- - ** File** : ` src/pages/latest-releases.mdx `
131+ 3 . Add a dated post under ` src/content/blog/ ` modeled on an existing
132+ release post (e.g. ` basic-memory-v0-19-0-release.md ` ), summarizing 3–5
133+ headline features from ` CHANGELOG.md `
134+ 4 . Commit (` git commit -s -m "..." ` ), push, and open a PR against
135+ ` basicmachines-co/basicmemory.com `
136+ - ** Deploy** : follow that repo's deployment process.
137+
138+ ** 2. docs.basicmemory.com** (sibling ` docs.basicmemory.com ` repo)
139+ - ** Goal** : Add a What's New page for the release and bump the homepage badge
140+ - ** Site shape** : Nuxt/Docus content site. The changelog page
141+ (` content/2.whats-new/*.changelog.md ` ) auto-fetches GitHub releases — no
142+ manual changelog update needed. See that repo's CLAUDE.md "Version Bump
143+ Checklist".
132144 - ** What to do** :
133145 1 . Pull latest from GitHub: ` git pull origin main `
134146 2 . Create release branch: ` git checkout -b release/v{VERSION} `
135- 3 . Read the existing file to understand the format and structure
136- 4 . Read ` /Users/drew/code/basic-memory/CHANGELOG.md ` to get release content
137- 5 . Add new release section ** at the top** (after MDX imports, before other releases)
138- 6 . Follow the existing pattern:
139- - Heading: ` ## [v{VERSION}](github-link) — YYYY-MM-DD `
140- - Focus statement if applicable
141- - ` <Info> ` block with highlights (3-5 key items)
142- - Sections for Features, Bug Fixes, Breaking Changes, etc.
143- - Link to full changelog at the end
144- - Separator ` --- ` between releases
145- 7 . Commit changes: ` git commit -m "docs: add v{VERSION} release notes" `
146- 8 . Push branch: ` git push origin release/v{VERSION} `
147- - ** Source content** : Extract and format sections from CHANGELOG.md for this version
148- - ** Deploy** : Follow deployment process for docs.basicmemory.com
147+ 3 . Read ` CHANGELOG.md ` in the ` basic-memory ` repo to get release content
148+ 4 . ** New minor/major release** : add ` content/2.whats-new/1.v{VERSION}.md `
149+ modeled on the previous version page (frontmatter title/description,
150+ headline feature first, then sections, then an Upgrading note) and
151+ renumber the existing what's-new pages down one slot (URLs don't
152+ change — Nuxt strips the numeric prefixes)
153+ 5 . ** Patch release** : append a short note to the current version's page
154+ instead of creating a new one
155+ 6 . Update the homepage version badge in ` content/index.md ` (the
156+ ` v0.XX → ` button text and its ` to: /whats-new/v{VERSION} ` link)
157+ 7 . If the release adds user-facing features, update the relevant guide
158+ and reference pages (` content/3.cloud/ ` , ` content/9.reference/ ` )
159+ 8 . Commit: ` git commit -s -m "docs: add v{VERSION} release notes" `
160+ 9 . Push branch and open a PR; merge after the release is tagged
161+ - ** Deploy** : push to main auto-deploys to development; production requires
162+ manual workflow dispatch via GitHub Actions
149163
150164** 4. Announce Release**
151165 - Post to Discord community if significant changes
0 commit comments