From 9cebb8017d3744de45d75207bb1e5b5391f92847 Mon Sep 17 00:00:00 2001 From: touyou <465697+touyou@users.noreply.github.com> Date: Fri, 10 Jul 2026 12:03:22 +0900 Subject: [PATCH] =?UTF-8?q?docs(skill):=20generate=20--scope=20=E3=81=AB?= =?UTF-8?q?=E3=82=88=E3=82=8B=E5=8D=98=E4=B8=80=E3=83=90=E3=83=B3=E3=83=89?= =?UTF-8?q?=E3=83=AB=E3=83=A9=E3=83=B3=E3=82=BF=E3=82=A4=E3=83=A0=E5=88=87?= =?UTF-8?q?=E6=9B=BF=E3=81=AE=E6=A1=88=E5=86=85=E3=82=92=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sparkle-design-internal#229 対応(sparkle-design-cli#68)で generate --scope オプションが追加されたことを受け、change-sparkle-config / setup-sparkle-design の複数テーマ案内を「ケース A: config分割」「ケース B: generate --scope」の 2択に更新。単一バンドル内でランタイムに切り替えたいケースを、これまでの 「config分割一択」の案内から適切な方に振り分けられるようにする。 NOTE: このPRは sparkle-design-cli#68 がマージ・npm公開(2.4.0)されるまで マージしないこと(npx --yes は常に最新を取得するため、未公開の挙動を 案内してしまう事故を防ぐ)。 Co-Authored-By: Claude Sonnet 5 Claude-Session: https://claude.ai/code/session_01Rt4q3UhBbZZ4XwAHsJKgyH --- .claude/skills/change-sparkle-config/SKILL.md | 6 +++++- .../setup-sparkle-design/references/config-reference.md | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.claude/skills/change-sparkle-config/SKILL.md b/.claude/skills/change-sparkle-config/SKILL.md index 833dc8c..fe49229 100644 --- a/.claude/skills/change-sparkle-config/SKILL.md +++ b/.claude/skills/change-sparkle-config/SKILL.md @@ -37,7 +37,11 @@ user-invocable: true 1. **前提チェック** - カレントディレクトリに `sparkle.config.json` があるか確認。無ければ **未導入状態**。その場合は「**新規導入 + カスタムテーマ**は `setup-sparkle-design` スキル(internal 環境では `install-sparkle-design` スキル)が担当する(setup 実行時に `sparkle.config.json` を編集しておけば同じテーマで導入できる)」と案内し、setup にバトンパスして中断する。 - `package.json` の `dependencies` / `devDependencies` に `sparkle-design` が含まれるか確認(pnpm workspace 等で hoist されているケースに備え、`node_modules` のパスチェックは避ける)。未導入なら setup を案内して中断。 - - ユーザーの要望が「役割・テナント・画面ごとに複数の固定配色バリアントを 1 デプロイで切り替えたい」という趣旨(例:「管理画面と一般ユーザー画面で色を変えたい」「テナントごとに配色を出し分けたい」)なら **このスキルの範囲外**。本スキルは単一の `sparkle.config.json` を書き換えるだけなので複数バリアントの同時提供には対応できない。sparkle-design-cli の README「複数のテーマ配色を 1 デプロイでサポートしたい場合」(config を分割して複数回 `generate` する方式を推奨、単一 CSS + 属性スコープでの Tailwind クラス上書きは非推奨)を案内し、中断する。 + - ユーザーの要望が「役割・テナント・画面ごとに複数の固定配色バリアントを 1 デプロイで切り替えたい」という趣旨(例:「管理画面と一般ユーザー画面で色を変えたい」「テナントごとに配色を出し分けたい」)なら **このスキルの範囲外**。本スキルは単一の `sparkle.config.json` を書き換えるだけなので複数バリアントの同時提供には対応できない。中断する前に、どちらのケースかだけ 1 回短く確認する(「管理画面と一般ユーザー画面は別々のページ/レイアウトですか?それとも同じ画面内で属性の切り替えだけで見た目を変えたいですか?」): + - **画面(ビルド)ごとにバリアントが固定される**(レイアウト単位で読み込む CSS を出し分けられる)→ sparkle-design-cli README の「複数のテーマ配色を 1 デプロイでサポートしたい場合」の **ケース A**(config を分割して複数回 `generate`。生成した複数 CSS を同時 import してはいけない)を案内する + - **単一バンドル内でランタイムに切り替えたい**(`data-*` 属性の付け外しだけで切り替え、ページ遷移や再ビルドを伴わない)→ 同 README の **ケース B**(`generate --scope` で、ベースの通常 `generate` 出力とセマンティックトークンだけをスコープしたリテラル値の差分 CSS を同時 import する。sparkle-design-cli `2.4.0` 以降が必要)を案内する + - 単一 CSS + 属性スコープでの Tailwind クラス上書きは(どちらのケースでも)非推奨 + いずれの場合も本スキルはここで中断する(実際の config 分割・`--scope` 実行はユーザー自身か別の作業に委ねる)。 2. **現在値を読み取り(元ファイルをスナップショット保存)** - `sparkle.config.json` の元バイト列をそのままメモリに保持(後の rollback 用)。 - `JSON.parse` で解釈し、現在の `primary` / `font-pro` / `font-mono` / `radius` / `extend.*` とそれ以外のユーザー独自キーを把握。 diff --git a/.claude/skills/setup-sparkle-design/references/config-reference.md b/.claude/skills/setup-sparkle-design/references/config-reference.md index 16669da..e565052 100644 --- a/.claude/skills/setup-sparkle-design/references/config-reference.md +++ b/.claude/skills/setup-sparkle-design/references/config-reference.md @@ -15,4 +15,4 @@ ## 複数テーマ運用したい場合 -役割・テナントごとに複数の固定配色バリアントを 1 デプロイで切り替えたい場合は、単一の `sparkle.config.json` では対応できない。sparkle-design-cli の README「複数のテーマ配色を 1 デプロイでサポートしたい場合」(config を分割して複数回 `generate` する方式)を参照。 +役割・テナントごとに複数の固定配色バリアントを 1 デプロイで切り替えたい場合は、単一の `sparkle.config.json` では対応できない。sparkle-design-cli の README「複数のテーマ配色を 1 デプロイでサポートしたい場合」を参照。画面(ビルド)ごとにバリアントが固定されるなら「ケース A: config を分割して複数回 `generate`」、単一バンドル内で `data-*` 属性の付け外しだけでランタイムに切り替えたいなら「ケース B: `generate --scope`」(sparkle-design-cli `2.4.0` 以降)を使う。