コンテンツにスキップ

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__'

✅ 24 / 24 — 全件バイト一致(mismatches: 0)

validate_skill.py

TOTAL: PASS 24 / FAIL 0 / 24
PASS with warnings: 0(pre-existing description body issues なし)

非破壊保証

  • コピー元(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 extraKnownMarketplacespermissions。スキル関連なし
~/.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 正本化の提案(複数方式 + 推奨)

手順

# 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 でトリガーするため衝突なし

ロールバック(即実行可能)

rm ~/.claude/skills  # symlink を削除
mv ~/.claude/skills.bak.2026-05-18 ~/.claude/skills  # 元に戻す

→ 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 でバックアップ経路と合わせて検討推奨

理由: 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.shskills-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. R23 を Vault へ pre-copy(タスク1 と同じ非破壊 rsync)
  2. ~/.claude/skills/ をバックアップ後、Vault への symlink に差し替え
  3. 47 スキル全件が Claude Code から読めることを検証
  4. Desktop / Cowork / Gemini への影響確認(無影響予測)
  5. 失敗時は即ロールバック
  1. ~/.claude/skills/ をバックアップ後、symlink に差し替え
  2. Vault からは 24 件、plugin path(anthropic-skills: プレフィックス)からは 56 件読める状態を維持
  3. R23 は Stage 1-C で改訂しながら順次 Vault へ移植
  4. 失敗時は即ロールバック

選択肢 3:別案 / 詳細追加調査

工藤氏判断で別方式(Option B/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 されない)