{"id":"version-bump","name":"version-bump","summary":"Claude Codeプラグインの自動化されたセマンティックバージョン管理およびリリースワークフロー。","body":"# Version Bump & Release Workflow\n\n**IMPORTANT:** Plan and write detailed release notes before starting.\n\n**CRITICAL:** Commit EVERYTHING (including build artifacts). At the end of this workflow, NOTHING should be left uncommitted or unpushed. Run `git status` at the end to verify.\n\n## Preparation\n\n1.  **Analyze**: Determine if the change is **PATCH** (bug fixes), **MINOR** (features), or **MAJOR** (breaking).\n2.  **Environment**: Identify repository owner/name from `git remote -v`.\n3.  **Paths — every file that carries the version string**:\n    - `package.json` — **the npm/npx-published version** (`npx claude-mem@X.Y.Z` resolves from this)\n    - `plugin/package.json` — bundled plugin runtime deps\n    - `.claude-plugin/marketplace.json` — version inside `plugins[0].version`\n    - `.claude-plugin/plugin.json` — top-level Claude-plugin manifest\n    - `plugin/.claude-plugin/plugin.json` — bundled Claude-plugin manifest\n    - `.codex-plugin/plugin.json` — Codex-plugin manifest\n    - `plugin/.codex-plugin/plugin.json` — bundled Codex-plugin manifest\n    - `openclaw/openclaw.plugin.json` — OpenClaw plugin manifest\n\n    Verify coverage before editing: `git grep -l \"\\\"version\\\": \\\"<OLD>\\\"\"` should list all eight. If a new manifest has been added since this doc was last updated, update this list.\n\n## Workflow\n\n1.  **Update**: Increment the version string in every path above. Do NOT touch `CHANGELOG.md` — it's regenerated.\n2.  **Verify**: `git grep -n \"\\\"version\\\": \\\"<NEW>\\\"\"` — confirm all eight files match. `git grep -n \"\\\"version\\\": \\\"<OLD>\\\"\"` — should return zero hits.\n3.  **Build and sync**: `npm run build-and-sync` to regenerate artifacts, sync the local marketplace copy, restart the worker, and clear the queue. Do not use plain `npm run build` for release validation because it can leave the local marketplace/worker out of sync.\n4.  **Commit**: `git add -A && git commit -m \"chore: bump version to X.Y.Z\"`.\n5.  **Tag**: `git tag -a vX.Y.Z -m \"Version X.Y.Z\"`.\n6.  **Push**: `git push origin main && git push origin vX.Y.Z`.\n7.  **Publish to npm — HAND OFF TO HUMAN.** The human maintainer raised npm\n    security, so publishing now requires credentials/2FA only they can provide.\n    The agent MUST NOT run `npm publish` (or `np` / `npm run release:*`, which\n    also publish) itself. **Hand off NPM publishing to the human now:** stop and\n    tell them the version is committed, tagged, and pushed, and that they must\n    publish to npm to make `npx claude-mem@X.Y.Z` resolve. Give them the command:\n    ```bash\n    npm publish   # run by the HUMAN — the prepublishOnly script rebuilds the package\n    ```\n    Wait for the human to confirm they published, then verify it landed:\n    ```bash\n    npm view claude-mem@X.Y.Z version   # should print X.Y.Z\n    ```\n    If the publish build touched local artifacts, run `npm run build-and-sync` again afterward.\n8.  **GitHub release**: `gh release create vX.Y.Z --title \"vX.Y.Z\" --notes \"RELEASE_NOTES\"`.\n9.  **Changelog**: Regenerate via the project's changelog script:\n    ```bash\n    npm run changelog:generate\n    ```\n    (Runs `node scripts/generate-changelog.js`, which pulls releases from the GitHub API and rewrites `CHANGELOG.md`.)\n10. **Sync changelog**: Commit and push the updated `CHANGELOG.md`.\n11. **Notify**: Run the Discord notification from `~/Scripts/claude-mem/`, where the `.env` with Discord webhook details lives:\n    ```bash\n    cd ~/Scripts/claude-mem/ && npm run discord:notify vX.Y.Z\n    ```\n    Do this even when the release worktree does not have a local `.env`.\n12. **Finalize**: `git status` — working tree must be clean.\n\n## Checklist\n\n- [ ] All eight config files have matching versions\n- [ ] `git grep` for old version returns zero hits\n- [ ] `npm run build-and-sync` succeeded\n- [ ] Git tag created and pushed\n- [ ] **NPM publishing handed off to the human** (agent does NOT run `npm publish` — human raised security); once they publish, `npm view claude-mem@X.Y.Z version` confirms it (so `npx claude-mem@X.Y.Z` resolves)\n- [ ] GitHub release created with notes\n- [ ] `CHANGELOG.md` updated and pushed\n- [ ] Discord notification run from `~/Scripts/claude-mem/`\n- [ ] `git status` shows clean tree","author":"@thedotmack","ownerProfile":null,"authorContacts":null,"sourceUrl":"https://github.com/thedotmack/claude-mem/tree/main/plugin/skills/version-bump","license":"Apache-2.0","category":"writing","lang":"en","tokens":1117,"stars":0,"calls30d":1,"claimed":false,"visibility":"public","origin":"crawler","version":"0.1.0","createdAt":"2026-08-22","updatedAt":"2026-08-22","files":[{"path":"scripts/generate_changelog.js","size":803,"sha256":"130a52177a5742dbb6fa5e6182e239554dc0cb872afe42952b5554420ace651e"}],"requires":{"mcp":[],"tools":[]},"safety":{"flags":[],"scannedAt":"2026-08-22","hasScripts":true,"networkEndpoints":[]}}