From 9f841ceddfeffc6fdf2e3c2ead169edd02033950 Mon Sep 17 00:00:00 2001 From: touyou <465697+touyou@users.noreply.github.com> Date: Wed, 20 May 2026 10:27:24 +0900 Subject: [PATCH 1/2] =?UTF-8?q?=F0=9F=94=96=20chore:=20release=20v1.0.4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - package.json を 1.0.4 に bump - CHANGELOG.md を v1.0.1 〜 v1.0.4 まで遡って一括更新 - v1.0.1(Security/Changed)/ v1.0.2(README から internal 言及削除) - v1.0.3(Input 再利用フックの named export + triggerProps による属性フォワード) - v1.0.4(Button forwardRef 対応 / #275 closes #270、他依存更新) - リリース手順を skill 化(.claude/skills/release-sparkle-design/) - 過去 v1.0.1〜v1.0.3 で CHANGELOG 更新漏れ + v1.0.3 では Release/Tag 未作成だった反省を反映 - bump → CHANGELOG → PR → tag → release → publish の一連の手順をチェックリスト化 - .gitignore の skill allowlist にも追加 Co-Authored-By: Claude Opus 4.7 (1M context) --- .../skills/release-sparkle-design/SKILL.md | 176 ++++++++++++++++++ .gitignore | 1 + CHANGELOG.md | 56 ++++++ package.json | 2 +- 4 files changed, 234 insertions(+), 1 deletion(-) create mode 100644 .claude/skills/release-sparkle-design/SKILL.md diff --git a/.claude/skills/release-sparkle-design/SKILL.md b/.claude/skills/release-sparkle-design/SKILL.md new file mode 100644 index 0000000..0624ff9 --- /dev/null +++ b/.claude/skills/release-sparkle-design/SKILL.md @@ -0,0 +1,176 @@ +--- +name: release-sparkle-design +license: Apache-2.0 +description: > + sparkle-design / sparkle-design-internal の新バージョンをリリースするための手順スキル。 + package.json の version bump、CHANGELOG.md 更新、リリース PR 作成、PR マージ後の + git tag 作成・push、GitHub Release 作成、npm publish までを一連の手順で実行する。 + CHANGELOG 更新漏れと GitHub Release 作成漏れを防ぐためのチェックリストを含む。 + 「リリースしたい」「新バージョンを切る」「v1.0.x をリリース」「sparkle-design をリリース」 + 「sparkle-design-internal をリリース」「CHANGELOG を更新」で発動。 + English: "release sparkle-design", "cut a new version", "publish a release", + "bump version". +user-invocable: true +--- + +# Skill: release-sparkle-design + +`sparkle-design` または `sparkle-design-internal` の新バージョンをリリースするための手順スキル。 + +**このスキルが解決する問題**: + +- 過去に v1.0.1 / v1.0.2 / v1.0.3 で CHANGELOG.md 更新が漏れた(v1.0.3 では GitHub Release 自体も作られていなかった) +- リリース手順がドキュメント化されておらず、各リリースで作業者が手探りになっていた +- このスキルはチェックリストとして機能し、リリース漏れをゼロにする + +--- + + + +## AI アシスタントへの指示 + +### 実行方針 + +1. **ユーザーに対象リポジトリとリリース種別を確認** + + - リポジトリ: `sparkle-design`(公開)/ `sparkle-design-internal`(社内) + - リリース種別: `patch` / `minor` / `major`(semver) + - 未リリースの過去バージョンがある場合(タグ・Release 未作成)は同時に追補するか確認 + +2. **対象リポジトリで作業する** + + - sparkle ワークスペース内で作業している場合、必ず対象リポジトリのディレクトリに `cd` してから git 操作・テスト・編集を行う + - ワークスペースルートは git リポジトリではないので注意 + +3. **以下のチェックリストを順に実行** + +--- + +## リリース手順チェックリスト + +### 事前確認 + +- [ ] 対象リポジトリの `main` が最新に pull できているか +- [ ] CI が main で全部 green か(`gh run list --branch main --limit 5`) +- [ ] `git tag --list --sort=-v:refname | head` で最新タグを確認 +- [ ] `gh release list --limit 10` で最新 GitHub Release を確認 +- [ ] **タグと Release のバージョンが package.json の `version` と一致しているか** ← ここが乖離していたら過去リリースの追補が必要 +- [ ] `git log <最新タグ>..origin/main --oneline` で、未リリース commit があるか確認 + +### 過去リリース追補(漏れがある場合) + +タグ未作成・Release 未作成のバージョンがある場合は **新バージョンを切る前に** 必ず追補する。 + +- [ ] 該当バージョンのリリースコミット(`🔖 chore: release vX.Y.Z` 等)の SHA を特定: `git log --all --oneline | grep release` +- [ ] そのコミットに対して `git tag vX.Y.Z ` でタグを作成 +- [ ] `git push origin vX.Y.Z` でタグを push +- [ ] `gh release create vX.Y.Z --title "vX.Y.Z" --notes "..."` で Release を作成 + - notes は CHANGELOG.md の該当セクションをコピペ、もしくは `--generate-notes` で自動生成 + +### 新バージョンの準備(リリース PR 作成) + +- [ ] `chore/release-X.Y.Z` ブランチを `origin/main` から切る(worktree 推奨) +- [ ] `package.json` の `version` を `X.Y.Z` に更新 +- [ ] `CHANGELOG.md` を更新(**ここが過去最も漏れていた箇所**) + - [ ] `## [Unreleased]` 直下に `## [X.Y.Z] - YYYY-MM-DD` セクションを追加 + - [ ] `git log <最新タグ>..HEAD --oneline` で前リリースからの commit を一覧化 + - [ ] PR 番号付きで Added / Changed / Fixed / Security / Dependencies に分類 + - PR タイトルの emoji prefix から大まかに分類できる: ✨ → Added, ♻️ → Changed, 🐛 → Fixed, 🔒 → Security + - `chore(deps)` / `dependabot` は `### Dependencies` セクションにまとめる + - [ ] **CHANGELOG にも未反映の過去バージョンがある場合は同時に追補する** +- [ ] `pnpm install` で lockfile を更新(version 変更は通常 lockfile には影響しないが念のため) +- [ ] テスト: `pnpm test` で全部 pass を確認 +- [ ] 型チェック: `pnpm type-check`(or `npx tsc --noEmit`) +- [ ] lint / format: `pnpm lint && pnpm format:check` +- [ ] コミット作成(メッセージ規約: 日本語 + emoji prefix) + - 例: `🔖 chore: release vX.Y.Z` + - 本文に主要変更点を箇条書きで(CHANGELOG からの抜粋でよい) +- [ ] `gh pr create` で PR 作成 + +### リリース PR レビュー・マージ + +- [ ] レビュー受領(CodeRabbit / Codex / 人間レビュアー) +- [ ] 全 CI green を確認(`gh pr checks `) +- [ ] **通常マージ(`--merge`)でマージ**。スカッシュは禁止(コミットが消えるとリリース履歴が辿れない) +- [ ] sparkle-design は admin 権限が必要な場合あり: `gh pr merge --merge --admin` + +### マージ後: タグ・Release・publish + +- [ ] `git fetch origin main && git checkout main && git pull` で最新化 +- [ ] リリースコミットの SHA を確認: `git log --oneline -3` +- [ ] **タグ作成 + push**: + ```bash + git tag vX.Y.Z + git push origin vX.Y.Z + ``` +- [ ] **GitHub Release 作成**: + ```bash + gh release create vX.Y.Z \ + --title "vX.Y.Z" \ + --notes-from-tag + ``` + または CHANGELOG.md のセクションを `--notes` で直接渡す: + ```bash + gh release create vX.Y.Z --title "vX.Y.Z" --notes "$(cat <<'EOF' + ## Added + ...(CHANGELOG.md の当該バージョンセクションをコピペ) + EOF + )" + ``` +- [ ] **npm publish**: + - `sparkle-design`(npmjs.org 公開): `gh workflow run "Publish to npm" --ref vX.Y.Z` + - `sparkle-design-internal`(GitHub Packages): `gh workflow run "Publish to GitHub Packages" --ref vX.Y.Z` +- [ ] 公開確認: + - `sparkle-design`: の versions に X.Y.Z が出ているか + - `sparkle-design-internal`: で確認 +- [ ] consumer 側を更新(任意): + - `sparkle-design-internal` の devDep `@goodpatch/sparkle-design` のバージョンを bump + - `sparkle-design-docs` の sync + +### 完了報告 + +- [ ] チームへリリース完了を共有(Slack / esa など) +- [ ] CHANGELOG.md / GitHub Release / npm の 3 つが揃っていることを最終確認 + +--- + +## バージョン番号の決め方(semver) + +- **patch (`x.y.Z`)**: バグ修正、ドキュメント修正、依存更新、内部リファクタ(public API 不変) +- **minor (`x.Y.0`)**: 後方互換のある新機能追加、新コンポーネント追加、新 props 追加 +- **major (`X.0.0`)**: 後方互換を破る変更(peer dep の React バージョン縛り変更、props 削除、コンポーネント削除など) + +迷ったらユーザーに確認する。 + +--- + +## トラブルシューティング + +### リリースコミットだけ作って tag/release を忘れていた場合 + +そのコミットの SHA を `git log --oneline | grep release` で特定して、後付けで tag + release を作成可能。 +このスキルの「過去リリース追補」セクションを参照。 + +### CHANGELOG が古い場合 + +`git log <最古の未反映タグ>..HEAD --oneline` で範囲を取って、各バージョンの section を遡って書き戻す。 +GitHub Release の本文がある場合はそれを CHANGELOG にコピーすれば早い。 + +### npm publish が失敗する場合 + +- `pnpm-lock.yaml` の整合性が崩れていないか確認(`pnpm install --frozen-lockfile` を試す) +- `pnpm.overrides` は pnpm 10+ では `pnpm-workspace.yaml` に書く必要がある(package.json では読まれない) +- `NPM_TOKEN` / GitHub Packages 用 token の有効期限切れも疑う + +### マージ後のローカル checkout が worktree と衝突する + +`gh pr merge --delete-branch` がローカル branch を消そうとして worktree 衝突を起こすことがある。 +worktree を `git worktree remove` で先に消すか、PR マージ自体は GitHub UI から行う。 + +--- + +## 参考リンク + +- [Keep a Changelog](https://keepachangelog.com/ja/1.1.0/) — CHANGELOG.md の書式 +- [Semantic Versioning](https://semver.org/lang/ja/) — semver +- sparkle ワークスペースの `CLAUDE.md` のリリース手順節も参照 diff --git a/.gitignore b/.gitignore index 5448628..7d2fe27 100644 --- a/.gitignore +++ b/.gitignore @@ -79,4 +79,5 @@ node-compile-cache/ !.claude/skills/accessibility-checker/ !.claude/skills/add-sparkle-component/ !.claude/skills/change-sparkle-config/ +!.claude/skills/release-sparkle-design/ !.claude/skills/setup-sparkle-design/ diff --git a/CHANGELOG.md b/CHANGELOG.md index 2d5a2d2..bce475f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,62 @@ ## [Unreleased] +## [1.0.4] - 2026-05-19 + +### Added + +- **Button: `React.forwardRef` 対応** (#275, closes #270) + - Radix `Trigger asChild`(Popover 等)から Button に直接 `ref` を渡せるように + - `asChild` で `` 等の非 button 要素を slot するケースに対応するため、ref 型は `HTMLElement` で広く受ける + - ref forwarding テスト(通常 button / asChild + a)を新規追加 + +### Changed + +- 共有スキルの frontmatter に `user-invocable: true` を追加 (#271) +- Input フォロー修正: `useMergeRefs` の型整理と a11y lint エラー解消 (#272) + +### Dependencies + +- `next` 15.5.15 → 15.5.18 (#267) +- `brace-expansion` 5.0.5 → 5.0.6 (#269) +- `postcss` 8.4.31 → 8.5.14 (#273) + +## [1.0.3] - 2026-05-19 + +### Added + +- **Input まわりの再利用フックを named export** (#263) + - `useInputContainerFocus` / `useMergeRefs` を public API として公開 +- **`Input.triggerProps` による ARIA / HTML 属性フォワード** (#268) + - 内部のトリガーボタンに ARIA / HTML 属性を渡せるように + +### Notes + +- 後方互換は維持 + +## [1.0.2] - 2026-04-17 + +### Changed + +- README から `@goodpatch/sparkle-design-internal` の言及を削除 (#252) +- v1.0.1 直後のドキュメント修正を npm に反映するためのパッチリリース + +## [1.0.1] - 2026-04-16 + +### Security + +- `pnpm.overrides` に追加: `hono ^4.12.14` / `yaml ^2.8.3` / `@eslint/plugin-kit ^0.3.4` / `brace-expansion ^1.1.13`(`<1.1.13` の range) +- `pnpm audit` 残件クリア(prod / dev とも 0) + +### Changed + +- `@figma/code-connect` を `dependencies` → `devDependencies` に移動 + - consumer の `node_modules` から `lodash` を含む Figma Code Connect のツリーが消える +- `dist` から `*.figma.{js,d.ts}` を除外しパッケージサイズを縮小 +- TailwindCSS v4 + npm package 利用時の `@source` 自動検知に関する README 注記を CLI v2.0.6 ベースに更新 +- `globals.css` 前提表記を「Tailwind エントリ CSS(`globals.css` / `index.css`)」に整理 +- Material Symbols の woff2 を URL 軸縮小で 60〜75% 削減(CLI v2.0.1 の変更を反映) + ## [1.0.0] - 2026-04-13 ### Changed diff --git a/package.json b/package.json index 0b65df6..fbf3695 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "sparkle-design", - "version": "1.0.3", + "version": "1.0.4", "publishConfig": { "registry": "https://registry.npmjs.org", "access": "public" From 52d76466e73df16ea9d3cae463f4a11b0c867759 Mon Sep 17 00:00:00 2001 From: touyou <465697+touyou@users.noreply.github.com> Date: Wed, 20 May 2026 10:32:03 +0900 Subject: [PATCH 2/2] =?UTF-8?q?=F0=9F=94=A7=20chore(release-skill):=20spar?= =?UTF-8?q?kle-design=20=E5=85=AC=E9=96=8B=E5=90=91=E3=81=91=E3=81=AB=20in?= =?UTF-8?q?ternal=20=E8=A8=80=E5=8F=8A=E3=82=92=E5=89=8A=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 公開 OSS リポジトリのスキルなので、sparkle-design-internal(社内パッケージ) の存在を露出しないよう書き直す。 - description / trigger phrase から internal 言及を削除 - npm publish 節を sparkle-design(npmjs.org)一本に統一 - 公開確認・consumer 更新の節からも internal を削除 - リポジトリ選択 / sparkle ワークスペース構造の説明を簡素化 internal 向け release skill が必要になれば、CLAUDE.md のスキル同期ルール 「internal 専用スキルは sparkle-design-internal で直接編集して OK」に沿って 向こうで別途追加する想定。 Co-Authored-By: Claude Opus 4.7 (1M context) --- .../skills/release-sparkle-design/SKILL.md | 77 ++++++++----------- 1 file changed, 33 insertions(+), 44 deletions(-) diff --git a/.claude/skills/release-sparkle-design/SKILL.md b/.claude/skills/release-sparkle-design/SKILL.md index 0624ff9..184a454 100644 --- a/.claude/skills/release-sparkle-design/SKILL.md +++ b/.claude/skills/release-sparkle-design/SKILL.md @@ -2,24 +2,24 @@ name: release-sparkle-design license: Apache-2.0 description: > - sparkle-design / sparkle-design-internal の新バージョンをリリースするための手順スキル。 - package.json の version bump、CHANGELOG.md 更新、リリース PR 作成、PR マージ後の + sparkle-design(公開 npm パッケージ)の新バージョンをリリースするための手順スキル。 + package.json の version bump、CHANGELOG.md の更新、リリース PR 作成、PR マージ後の git tag 作成・push、GitHub Release 作成、npm publish までを一連の手順で実行する。 CHANGELOG 更新漏れと GitHub Release 作成漏れを防ぐためのチェックリストを含む。 - 「リリースしたい」「新バージョンを切る」「v1.0.x をリリース」「sparkle-design をリリース」 - 「sparkle-design-internal をリリース」「CHANGELOG を更新」で発動。 - English: "release sparkle-design", "cut a new version", "publish a release", - "bump version". + 「sparkle-design をリリース」「sparkle-design の新バージョンを切る」「v1.0.x をリリース」 + 「sparkle-design の CHANGELOG を更新」で発動。 + English: "release sparkle-design", "cut a new sparkle-design version", + "publish sparkle-design", "bump sparkle-design version". user-invocable: true --- # Skill: release-sparkle-design -`sparkle-design` または `sparkle-design-internal` の新バージョンをリリースするための手順スキル。 +`sparkle-design`(公開 npm パッケージ)の新バージョンをリリースするための手順スキル。 **このスキルが解決する問題**: -- 過去に v1.0.1 / v1.0.2 / v1.0.3 で CHANGELOG.md 更新が漏れた(v1.0.3 では GitHub Release 自体も作られていなかった) +- 過去に v1.0.1 / v1.0.2 / v1.0.3 で CHANGELOG.md 更新が漏れた(v1.0.3 では GitHub Release と git tag も未作成) - リリース手順がドキュメント化されておらず、各リリースで作業者が手探りになっていた - このスキルはチェックリストとして機能し、リリース漏れをゼロにする @@ -31,18 +31,17 @@ user-invocable: true ### 実行方針 -1. **ユーザーに対象リポジトリとリリース種別を確認** +1. **ユーザーにリリース種別を確認** - - リポジトリ: `sparkle-design`(公開)/ `sparkle-design-internal`(社内) - - リリース種別: `patch` / `minor` / `major`(semver) - - 未リリースの過去バージョンがある場合(タグ・Release 未作成)は同時に追補するか確認 + - `patch`(バグ修正 / 依存更新 / 内部リファクタ)/ `minor`(後方互換のある機能追加)/ `major`(破壊的変更) + - タグ・Release 未作成の過去バージョンがある場合は同時に追補するか確認 -2. **対象リポジトリで作業する** +2. **`sparkle-design` リポジトリのルートで作業する** - - sparkle ワークスペース内で作業している場合、必ず対象リポジトリのディレクトリに `cd` してから git 操作・テスト・編集を行う - - ワークスペースルートは git リポジトリではないので注意 + - 編集・テスト・git 操作はすべて `sparkle-design` のチェックアウトディレクトリで実行 + - worktree を使う場合は `.claude/worktrees/` 配下で作業 -3. **以下のチェックリストを順に実行** +3. **以下のチェックリストを順に実行する** --- @@ -50,11 +49,11 @@ user-invocable: true ### 事前確認 -- [ ] 対象リポジトリの `main` が最新に pull できているか +- [ ] `main` を最新に pull できているか - [ ] CI が main で全部 green か(`gh run list --branch main --limit 5`) - [ ] `git tag --list --sort=-v:refname | head` で最新タグを確認 - [ ] `gh release list --limit 10` で最新 GitHub Release を確認 -- [ ] **タグと Release のバージョンが package.json の `version` と一致しているか** ← ここが乖離していたら過去リリースの追補が必要 +- [ ] **タグ / Release / `package.json` の `version` が三つ揃っているか** ← 乖離していたら過去分の追補が必要 - [ ] `git log <最新タグ>..origin/main --oneline` で、未リリース commit があるか確認 ### 過去リリース追補(漏れがある場合) @@ -65,7 +64,7 @@ user-invocable: true - [ ] そのコミットに対して `git tag vX.Y.Z ` でタグを作成 - [ ] `git push origin vX.Y.Z` でタグを push - [ ] `gh release create vX.Y.Z --title "vX.Y.Z" --notes "..."` で Release を作成 - - notes は CHANGELOG.md の該当セクションをコピペ、もしくは `--generate-notes` で自動生成 + - notes は CHANGELOG.md の該当セクションをコピペするのが確実 ### 新バージョンの準備(リリース PR 作成) @@ -78,10 +77,10 @@ user-invocable: true - PR タイトルの emoji prefix から大まかに分類できる: ✨ → Added, ♻️ → Changed, 🐛 → Fixed, 🔒 → Security - `chore(deps)` / `dependabot` は `### Dependencies` セクションにまとめる - [ ] **CHANGELOG にも未反映の過去バージョンがある場合は同時に追補する** -- [ ] `pnpm install` で lockfile を更新(version 変更は通常 lockfile には影響しないが念のため) +- [ ] `pnpm install` で lockfile が壊れていないか確認 - [ ] テスト: `pnpm test` で全部 pass を確認 - [ ] 型チェック: `pnpm type-check`(or `npx tsc --noEmit`) -- [ ] lint / format: `pnpm lint && pnpm format:check` +- [ ] format: `pnpm format:check`(必要なら `pnpm format`) - [ ] コミット作成(メッセージ規約: 日本語 + emoji prefix) - 例: `🔖 chore: release vX.Y.Z` - 本文に主要変更点を箇条書きで(CHANGELOG からの抜粋でよい) @@ -92,7 +91,7 @@ user-invocable: true - [ ] レビュー受領(CodeRabbit / Codex / 人間レビュアー) - [ ] 全 CI green を確認(`gh pr checks `) - [ ] **通常マージ(`--merge`)でマージ**。スカッシュは禁止(コミットが消えるとリリース履歴が辿れない) -- [ ] sparkle-design は admin 権限が必要な場合あり: `gh pr merge --merge --admin` +- [ ] base branch protection があるため、必要なら admin マージ: `gh pr merge --merge --admin` ### マージ後: タグ・Release・publish @@ -104,28 +103,18 @@ user-invocable: true git push origin vX.Y.Z ``` - [ ] **GitHub Release 作成**: + CHANGELOG.md のセクションを `--notes` で直接渡すのが確実: ```bash - gh release create vX.Y.Z \ - --title "vX.Y.Z" \ - --notes-from-tag + gh release create vX.Y.Z --title "vX.Y.Z" --notes "$(awk '/^## \[X\.Y\.Z\]/,/^## \[/' CHANGELOG.md | sed '$d')" ``` - または CHANGELOG.md のセクションを `--notes` で直接渡す: + もしくは手動で `gh release create vX.Y.Z` を実行し、ブラウザで notes を貼る。 +- [ ] **npm publish** — GitHub Actions ワークフローを実行: ```bash - gh release create vX.Y.Z --title "vX.Y.Z" --notes "$(cat <<'EOF' - ## Added - ...(CHANGELOG.md の当該バージョンセクションをコピペ) - EOF - )" + gh workflow run "Publish to npm" --ref vX.Y.Z ``` -- [ ] **npm publish**: - - `sparkle-design`(npmjs.org 公開): `gh workflow run "Publish to npm" --ref vX.Y.Z` - - `sparkle-design-internal`(GitHub Packages): `gh workflow run "Publish to GitHub Packages" --ref vX.Y.Z` - [ ] 公開確認: - - `sparkle-design`: の versions に X.Y.Z が出ているか - - `sparkle-design-internal`: で確認 -- [ ] consumer 側を更新(任意): - - `sparkle-design-internal` の devDep `@goodpatch/sparkle-design` のバージョンを bump - - `sparkle-design-docs` の sync + - の versions に X.Y.Z が出ているか + - `npm view sparkle-design version` で確認 ### 完了報告 @@ -138,7 +127,7 @@ user-invocable: true - **patch (`x.y.Z`)**: バグ修正、ドキュメント修正、依存更新、内部リファクタ(public API 不変) - **minor (`x.Y.0`)**: 後方互換のある新機能追加、新コンポーネント追加、新 props 追加 -- **major (`X.0.0`)**: 後方互換を破る変更(peer dep の React バージョン縛り変更、props 削除、コンポーネント削除など) +- **major (`X.0.0`)**: 後方互換を破る変更(peer dep のメジャー縛り変更、props 削除、コンポーネント削除など) 迷ったらユーザーに確認する。 @@ -156,11 +145,11 @@ user-invocable: true `git log <最古の未反映タグ>..HEAD --oneline` で範囲を取って、各バージョンの section を遡って書き戻す。 GitHub Release の本文がある場合はそれを CHANGELOG にコピーすれば早い。 -### npm publish が失敗する場合 +### npm publish ワークフローが失敗する場合 - `pnpm-lock.yaml` の整合性が崩れていないか確認(`pnpm install --frozen-lockfile` を試す) -- `pnpm.overrides` は pnpm 10+ では `pnpm-workspace.yaml` に書く必要がある(package.json では読まれない) -- `NPM_TOKEN` / GitHub Packages 用 token の有効期限切れも疑う +- `pnpm.overrides` を package.json に書いていると pnpm 10+ では読まれない場合がある。`pnpm-workspace.yaml` 側の `overrides:` フィールドへの移行を検討 +- `NPM_TOKEN` の有効期限切れも疑う(リポジトリ Secrets を確認) ### マージ後のローカル checkout が worktree と衝突する @@ -173,4 +162,4 @@ worktree を `git worktree remove` で先に消すか、PR マージ自体は Gi - [Keep a Changelog](https://keepachangelog.com/ja/1.1.0/) — CHANGELOG.md の書式 - [Semantic Versioning](https://semver.org/lang/ja/) — semver -- sparkle ワークスペースの `CLAUDE.md` のリリース手順節も参照 +- `sparkle-design` の `CLAUDE.md` / `docs/ai-instructions/` の規約も参照