KUDO-Vault Stage 1-B 中間報告¶
結論¶
- タスク1 完了:M24 件を
~/KUDO-Vault/.claude/skills/kudo/へコピー。diff -rで 24/24 バイト一致、validate_skill.pyで 24/24 PASS(FAIL 0・警告 0) - タスク2 完了:スキル読み込み構成を実機診断。Vault 正本化の最適方式を Option A(symlink) として提案
- タスク3 は実行せず停止中。承認後に進める
- FDA 検証:Drive 自動同期は別途検証済み(stage1a2-completion-2026-05-18.md と本日 21:09 JST の launchd 実行ログで確認済み)
タスク1:M24 件コピー — 完了¶
実行内容¶
- ソース:
~/Library/Application Support/Claude/local-agent-mode-sessions/skills-plugin/3d48e787-cadf-495d-ad7f-bc26535863ce/29545076-9f99-4406-b410-8c4409db721c/skills/(真の SSOT) - ターゲット:
~/KUDO-Vault/.claude/skills/kudo/<skill-name>/ - 除外パターン:
*.bak.*(Stage 1-A2 の backup を持ち込まない)/.DS_Store/__pycache__/ - 既存ファイル上書きなし(ターゲットは新規作成)
コピー対象 24 件と特殊構成¶
| 件数 | 内訳 |
|---|---|
| 19 件 | SKILL.md のみ |
| 2 件 | references/ サブディレクトリあり:kudo-brand-lens(family-resemblance-framework.md)/kudo-marketing-strategy(morioka-math.md, ehrenberg-bass.md) |
| 2 件 | scripts/ サブディレクトリあり:kudo-deck-faithful-redesign(4 スクリプト)/kudo-skill-md-format-validator(validate_skill.py) |
| 1 件 | .bak.2026-05-18 あり(Stage 1-A2 で kudo-mac-health-check に作成)→ 除外パターンで持ち込まず |
検証結果¶
diff -r --brief --exclude='*.bak.*' --exclude='.DS_Store' --exclude='__pycache__':
validate_skill.py:
非破壊保証¶
- コピー元(skills-plugin、Drive、
~/.claude/skills/)は一切変更していない - Vault は新規追加のみ(既存ファイル無し領域に書込)
- 元のスキル群は本 HANDOFF 完了後も「いつでも戻れる」状態を維持
タスク2:スキル読み込み構成の実機診断¶
発見:Claude Code は 2 つの独立した読み先を持つ¶
[1] ~/.claude/skills/ ← 現在 6 件
名前空間プレフィックス:なし("kudo-XXX")
ユーザーが直接編集する「ローカルスキル」
[2] ~/Library/Application Support/Claude/
local-agent-mode-sessions/
skills-plugin/
3d48e787-.../29545076-.../skills/ ← 現在 56 件
名前空間プレフィックス:"anthropic-skills:"
claude.ai web からクラウド同期される「プラグイン経由スキル」
plugin.json: { "name": "anthropic-skills", "version": "1.0.0" }
manifest.json: 56 entries(cloud skillId 付き)
セッション開始時の system reminder で見える "kudo-XXX" と "anthropic-skills:kudo-XXX" の二重表記はこれが原因。両方とも有効で、トリガー時に自然言語マッチで起動する。
設定ファイル現況¶
| ファイル | スキル関連設定 |
|---|---|
~/.claude.json |
skillUsage のみ(使用統計)。読み先パス指定なし |
~/.claude/settings.json |
extraKnownMarketplaces + permissions。スキル関連なし |
~/.claude/plugins/known_marketplaces.json |
anthropics/claude-plugins-official 登録 |
~/.gemini/settings.json |
MCP のみ。スキル概念なし |
~/Library/Application Support/Claude/claude_desktop_config.json |
mcpServers + preferences のみ。スキル読み先指定なし |
→ 明示的なスキル読み先設定は存在しない。読み先は claude CLI の規約で固定(~/.claude/skills/ + skills-plugin path)。
claude CLI オプション(関連分)¶
--plugin-dir <path> Load a plugin for THIS SESSION ONLY(永続化されない)
--plugin-url <url> 同上、URL 経由
--add-dir <path> CLAUDE.md ディレクトリ追加(スキルではない)
--disable-slash-commands 全スキル無効化
claude plugin install marketplace 経由(local ディレクトリは標準対応外)
→ 永続的に追加読み先を増やすフラグは無い。読み先を変えるには ~/.claude/skills/ 自体を差し替えるしかない。
他環境への影響¶
| 環境 | スキル読み先 | Vault 切り替えの影響 |
|---|---|---|
| Claude Desktop | skills-plugin([2])を使用 | 無影響(path [2] は変えない) |
| Cowork(cloud-agent) | 各セッション内 local_*/.claude/skills/(自動生成・エフェメラル) |
無影響(per-session 領域、ユーザー管轄外) |
| Gemini CLI | スキル概念なし(MCP のみ) | 無影響 |
| Claude Code (CLI) | ~/.claude/skills/([1])+ skills-plugin([2]) |
[1] を変える=Code のみ影響 |
→ 影響範囲は Claude Code (CLI) のみ。Desktop / Cowork / Gemini はそのまま。
既知の制約:cloud-sync の方向性¶
claude.ai web の UI でスキル編集 → skills-plugin path にクラウド同期 → Code から anthropic-skills: 接頭辞で見える、という流れ。この同期は claude.ai → ローカルの片方向。Vault → claude.ai web への自動同期経路は存在しない。
つまり「Vault を完全な単一正本化」は Stage 1-B では達成できない。本 Stage は Code 側(CLI)の読み先を Vault に切り替えるまでを射程とし、claude.ai web 側との harmony は Stage 2 以降。
タスク2:Vault 正本化の提案(複数方式 + 推奨)¶
Option A — Symlink 方式(推奨)¶
手順¶
# 1. Vault に R23 も pre-copy(非破壊・タスク1と同じ rsync)
# → Vault が 47 スキル完備の状態に
# 2. ~/.claude/skills/ 現状をバックアップ
mv ~/.claude/skills ~/.claude/skills.bak.2026-05-18
# 3. シンボリックリンク作成
ln -s ~/KUDO-Vault/.claude/skills/kudo ~/.claude/skills
# 4. 検証
ls -la ~/.claude/skills # → kudo/ への symlink を確認
ls ~/.claude/skills/ # → 47 件のスキルが見える
切り替え後の読み込み挙動¶
~/.claude/skills/経由(プレフィックスなし):47 件(Vault 内すべて)anthropic-skills:プレフィックス経由(plugin path):56 件(cloud-sync 経由・変化なし)- 同じスキルが両方で見えるが、Claude は description でトリガーするため衝突なし
ロールバック(即実行可能)¶
→ 5 秒で完全に元の状態に復帰。失敗時の損失ゼロ。
メリット¶
- 永続的:CLI フラグ不要、毎セッション自動適用
- シンプル:1 シンボリックリンクのみ。理解しやすい
- 可逆的:rm + mv で即ロールバック
- 副作用なし:Desktop / Cowork / Gemini は影響なし
- plugin path 維持:claude.ai web からの同期を温存(Stage 2+ で harmonize)
リスク¶
- 低:symlink は POSIX 標準機能。失敗パターンは「symlink 切れ」のみで即発見可能
- 唯一の注意点:claude が
~/.claude/skills/を「ディレクトリ」前提で操作する場合に symlink が透過しない可能性 → 検証必須
Option B — --plugin-dir 利用(非推奨)¶
毎セッション起動時に claude --plugin-dir ~/KUDO-Vault/.claude/skills/kudo/ を渡す。
- 永続化されず使い物にならない
- ユーザーが alias 化すれば一応動くが、忘れたら無効化される
- Option A の劣化版
Option C — custom marketplace 化(Stage 1-D 検討推奨)¶
Vault 配下に .claude-plugin/plugin.json + marketplace manifest を作り、claude plugin install で恒久登録。
- もっとも「クリーン」だが手間が大きい
- plugin.json スキーマ、marketplace.json スキーマ、versioning など習得コスト
- 本 Stage では時期尚早。Stage 1-D でバックアップ経路と合わせて検討推奨
Code の推奨:Option A(Symlink)¶
理由: 1. Stage 1-B の射程に最適(最小工数で最大効果) 2. 完全可逆:失敗時 5 秒で復旧 3. Stage 1-C 改訂を Vault 直接でできる:R23 を Vault に置いておけば、改訂対象がローカルファイルとして編集可能 4. plugin path を温存:claude.ai web 同期は壊さない 5. 「Vault 単一正本」への中間段階として最低限の構造を提供
設計上の注意:R23 を pre-copy するかどうか¶
HANDOFF §3 の補足どおり、R23 を先に Vault へコピーすることを 推奨:
- Pre-copy する場合:Vault が 47 スキル完備 → Stage 1-C の改訂は Vault 内で直接編集可能 → skills-plugin(cloud-sync 経由)は古い R23 を保持するが、Stage 1-D で整理予定
- Pre-copy しない場合:Vault は 24 のみ → Stage 1-C で R23 を「改訂しながらコピー」する二重作業
Pre-copy はタスク1と同じ非破壊 rsync で完結。.bak.* 除外も同じ。改訂は Stage 1-C で別工程。
FDA 検証結果¶
工藤氏が Full Disk Access 設定を完了後、本日 21:09 JST(12:09:55 UTC)に launchd 経由で auto-snapshot.sh が実行され、Cloud mirror が成功したことをログで確認済み(stage1a2-completion-2026-05-18.md 参照):
2026-05-17 03:30 (cron) → Operation not permitted ❌
2026-05-18 03:30 (cron) → Operation not permitted ❌
─────────── FDA 設定完了 ───────────
2026-05-18 12:09:55Z → ✅ Cloud mirror 2026-05-18 → /Users/kudotakuma/Library/CloudStorage/.../skills
明日 03:30 の cron は新規日付フォルダ作成で git commit 差分が発生 → 空回り回避 → Cloud mirror 実行されるはず(auto-snapshot.sh の同日再キック空回りバグは Stage 1-B の射程外、Stage 1-C 候補)。
Vault コピーの Drive 同期について:
auto-snapshot.sh は skills-plugin → Drive をミラーするスクリプト。本タスク1でコピーした Vault 配下の M24 は、auto-snapshot.sh の射程外。Vault → Drive 自動同期は別経路が必要(Stage 1-D バックアップ経路設計の対象)。
ただし「M24 のスキル内容そのもの」は skills-plugin にも同じバイト列が存在し、それは auto-snapshot.sh で Drive に同期される。Vault は「もう一つの正本コピー」として独立。
検証チェックリスト(タスク1+タスク2分)¶
- タスク1:M24 件を
~/KUDO-Vault/.claude/skills/kudo/へコピー - タスク1:
diff -rで全 24 件バイト一致 - タスク1:
validate_skill.pyで全 24 件 PASS(FAIL 0・警告 0) - タスク1:コピー元は無変更
- タスク2:Claude Code のスキル読み込み実パス・設定を特定(
~/.claude/skills/+ skills-plugin の 2 経路) - タスク2:Vault 正本化の方式を提案(Option A / B / C 評価+推奨)
- タスク2:ロールバック手順を明文化(Option A は 5 秒で復旧可能)
- FDA:Drive 自動同期の復活を確認
★ 承認待ち事項(工藤氏・Chat 側)¶
タスク3 本体を進めるための承認をお願いします。以下のいずれかを選択:
選択肢 1:Option A をフル実行(R23 pre-copy + symlink)— Code 推奨¶
- R23 を Vault へ pre-copy(タスク1 と同じ非破壊 rsync)
~/.claude/skills/をバックアップ後、Vault への symlink に差し替え- 47 スキル全件が Claude Code から読めることを検証
- Desktop / Cowork / Gemini への影響確認(無影響予測)
- 失敗時は即ロールバック
選択肢 2:Option A の最小実行(R23 pre-copy なし、symlink のみ)¶
~/.claude/skills/をバックアップ後、symlink に差し替え- Vault からは 24 件、plugin path(
anthropic-skills:プレフィックス)からは 56 件読める状態を維持 - R23 は Stage 1-C で改訂しながら順次 Vault へ移植
- 失敗時は即ロールバック
選択肢 3:別案 / 詳細追加調査¶
工藤氏判断で別方式(Option B/C)、もしくは追加診断が必要であればその旨指示
選択肢 4:Stage 1-B はタスク1で完了とし、symlink 切り替えはより慎重に Stage 1-C 以降で¶
タスク3 を本 Stage では実行せず、Vault コピーを保留状態で残す。
ファイル一覧¶
新規作成¶
~/KUDO-Vault/.claude/skills/kudo/(24 ディレクトリ、合計約 700KB)~/working/_claude_workspace_global/reports/stage1b-intermediate-2026-05-18.md(本ファイル)
変更¶
- 無し(タスク1 はすべて非破壊コピー、タスク2 は診断のみ)
Git 状態¶
~/KUDO-Vaultに commit 済み:711478c— タスク1 の M24 件 Vault コピー- タスク3 承認後の symlink 切り替えは別 commit になる予定(Vault 自体は変わらないので Vault git には commit されない)