コンテンツにスキップ

KUDO-Vault Stage 1-B 完了報告

結論

工藤氏判断「選択肢 Y」で Phase 1 + Phase 2 を完遂。Phase 3(plugin path への symlink)は実行せず、別建ての Stage 1-B2 HANDOFF として独立化。

工程 結果
タスク1(M24 → Vault コピー) ✅ 完了。Vault に 24 件、commit 711478c
タスク2(読み込み構成診断・再診断) ✅ 完了。初回診断の誤りを工藤氏指摘で修正、4経路マップを精緻化
Phase 1(R23 → Vault pre-copy) ✅ 完了。Vault が 47 件揃う、commit 02e0149
Phase 2(~/.claude/skills/ → Vault symlink) ✅ 完了。Code が Vault から 47 件を読む状態に
Phase 3(skills-plugin → Vault symlink) Stage 1-B2 として独立化。本日は着手せず

ライブ検証:Phase 2 直後、Claude Code セッションの system reminder が更新され、kudo-* プレフィックスなしで 47 件すべてが available-skills に列挙されたことを確認(旧 6 件から拡大)。


タスク2 の重大な訂正(工藤氏指摘で発覚)

初回 Stage 1-B 中間報告で「Option A(~/.claude/skills/ symlink)」を推奨したが、これだけでは 47 件のうち 41 件(plugin-only)に届かない。工藤氏の指摘で全件のパス所在を精査し直し、提案を作り直した。

47 件 kudo-* スキルの 4 経路マップ(Phase 2 実施後の現在状態)

配置 件数 詳細
~/.claude/skills/ 47 symlink → Vault(Phase 2 で切替済み)
skills-plugin/.../skills/ 46 cloud-sync 経由、anthropic-skills: プレフィックスで Code に見える
Drive ~/working/.../kudo-skill-sync/skills/ 46 auto-snapshot.sh が skills-plugin をミラー(FDA 復活後再開)
~/KUDO-Vault/.claude/skills/kudo/ 47 全件保持(24 M + 23 R)

kudo-skill-tree-ssot-map の特殊位置:47 件のうち唯一 skills-plugin に存在しないスキル。regenerate_ssot_map.py が直接 Drive と ~/.claude/skills/ に書く設計のため。FDA 復活後の auto-snapshot.sh が --delete で Drive からも削除した結果、Vault と ~/.claude/skills/(実体は Vault への symlink)のみに存在。Stage 1-B2 とは別の循環削除問題で Stage 1-C 以降の対象。

47 件のうち、Code がどの経路から読むか

名前空間 件数 経路
kudo-XXX(プレフィックスなし) 47 ~/.claude/skills/ → Vault(symlink、Phase 2 後)
anthropic-skills:kudo-XXX(プレフィックス付き) 46 skills-plugin path(cloud sync 経由、Phase 2 では touch しない)

両方とも有効なため、Vault edit は プレフィックスなし側にだけ即反映される。プレフィックス付き側を canonical 化するのが Stage 1-B2 の Phase 3 パイロット


タスク1:M24 件 Vault コピー(Stage 1-B 前半)

実行内容(既出のため要点のみ)

  • ソース:skills-plugin(真の SSOT)
  • ターゲット:~/KUDO-Vault/.claude/skills/kudo/<skill-name>/
  • 除外:*.bak.*, .DS_Store, __pycache__/
  • 検証:diff -r 全 24 件バイト一致、validate_skill.py 24/24 PASS
  • 非破壊:コピー元無変更
  • Vault git commit:711478c

詳細は stage1b-intermediate-2026-05-18.md に既出。


Phase 1:R23 件 pre-copy(タスク3 前段)

実行内容

  • ソース:22 件は skills-plugin、1 件(kudo-skill-tree-ssot-map)は ~/.claude/skills/(plugin に無いため)
  • ターゲット:~/KUDO-Vault/.claude/skills/kudo/<skill-name>/
  • 同じ除外パターン

検証結果

=== diff -r --brief 検証 ===
✅ 23 / 23 全件バイト一致(mismatches: 0)

=== validate_skill.py(symlink 設定前、Vault 直接) ===
PASS: 23 / FAIL: 0 (of 23)

=== Vault の総数 ===
kudo-* 件数: 47(= 24 M + 23 R)

Vault git commit:02e0149


Phase 2:~/.claude/skills/ → Vault symlink(タスク3 後段)

事前準備

# 1. バックアップ確認(既存 .bak 無し)
ls -la ~/.claude/skills.bak.2026-05-18  # → no existing backup ✅

# 2. ロールバック手順を事前文書化
#    rm ~/.claude/skills && mv ~/.claude/skills.bak.2026-05-18 ~/.claude/skills
#    所要時間: ~5 秒

実行

# Step 1: バックアップ
mv ~/.claude/skills ~/.claude/skills.bak.2026-05-18

# Step 2: symlink 作成
ln -s ~/KUDO-Vault/.claude/skills/kudo ~/.claude/skills

即検証(実機ログ抜粋)

[a] symlink 構造の確認
lrwxr-xr-x 1 kudotakuma staff 48 May 18 22:01
  /Users/kudotakuma/.claude/skills -> /Users/kudotakuma/KUDO-Vault/.claude/skills/kudo

[b] readlink で resolve 確認
/Users/kudotakuma/KUDO-Vault/.claude/skills/kudo

[c] symlink 経由でディレクトリリスト
~/.claude/skills/ via ls: 47 entries(expected: 47 ✅)

[d] 各 SKILL.md が読める(5件サンプル)
✅ kudo-writing                        172272 bytes
✅ kudo-mitate                         15421 bytes
✅ kudo-proposal-deck                  70515 bytes
✅ kudo-skill-tree-ssot-map            55419 bytes
✅ kudo-shared-storage-protocol        18344 bytes

深堀り検証

[a] symlink 経由 vs Vault 直接:バイト一致確認
  mismatches: 0 / 47 ✅

[b] 全 47 件 validator PASS(symlink 経由で実行)
  PASS: 47 / FAIL: 0 (of 47) ✅

[c] write-through 検証
  symlink 経由の touch test ファイル → Vault 配下に作成成功 ✅

[d] regenerate_ssot_map.py 互換性
  script は ~/.claude/skills/kudo-skill-tree-ssot-map/SKILL.md にも書き込む。
  symlink 経由なら → Vault に自動書き込み。
  → 動作は次回 cron(日曜 03:00)で実機確認。本日は走らせない(副作用追加回避)。

[e] バックアップ状態確認
  ~/.claude/skills.bak.2026-05-18/ : 6 entries(旧 ~/.claude/skills/ の中身)

ライブ Code セッション検証(最重要・Phase 2 後)

Phase 2 実行後、Claude Code セッション内部で system reminder(available-skills list)が 動的に更新された。確認内容:

  • プレフィックスなし kudo-* 名前空間に 47 件すべてが登場(旧 6 件から拡大):
  • kudo-writing, kudo-mitate, kudo-strategy-houshin, kudo-marketing-strategy, ... 全 47 件
  • anthropic-skills: プレフィックス側も 46 件で並行稼働(Phase 3 未実施)
  • description は Vault 版(Phase 1 で pre-copy した版)が反映されている

Phase 2 は Code から読み込み可能な状態を確実に実現した。失敗時 rollback は実行不要。


検証チェックリスト

  • Phase 1:R23 を ~/KUDO-Vault/.claude/skills/kudo/ へコピー
  • Phase 1:diff -r で全 23 件バイト一致
  • Phase 1:validate_skill.py 23/23 PASS
  • Phase 1:コピー元無変更(非破壊)
  • Phase 1:Vault git commit 02e0149 作成
  • Phase 2:実行前に rollback 手順を文書化
  • Phase 2:~/.claude/skills/.bak.2026-05-18 にバックアップ
  • Phase 2:symlink 作成
  • Phase 2:symlink 経由で 47 件が visible
  • Phase 2:47 件すべてが symlink 経由でバイト一致+validator PASS
  • Phase 2:write-through 動作確認
  • Phase 2:ライブ Code セッションで 47 件が available-skills に出現
  • Phase 3:実行せず Stage 1-B2 として独立 HANDOFF 化(HANDOFF-stage1b2-cloud-sync-pilot-v1.md
  • FDA:別途 stage1a2-completion で検証済み(再検証不要)

重大な発見・申し送り

1. 工藤氏指摘で発覚した診断の誤り

中間報告の Option A 提案は「~/.claude/skills/(6件側)」しか視野に入っておらず、47 件のうち 41 件(plugin-only)に対する Vault canonical 化に効かない誤った提案だった。工藤氏が指摘した結果、4 経路マップを再診断し、正しい提案(Phase 1 + 2 + 別建て Phase 3 パイロット)に修正。

教訓:47 vs 56 の混同・「~/.claude/skills/」と skills-plugin path の役割の混同を、初回診断で見抜けなかった。次回類似の診断時は「Code が読む経路すべて」を最初にマップアウトする。

2. Phase 3 を独立 HANDOFF 化した理由

skills-plugin path は Anthropic の cloud sync 管轄領域。symlink への置き換えが cloud sync で revert されるかは未確認。1 件パイロット → 24 時間観察 → 判定という慎重アプローチが必要なため、Stage 1-B 本筋と分けた。

HANDOFF-stage1b2-cloud-sync-pilot-v1.md 起草済み。工藤氏明示承認後に着手。

3. kudo-skill-tree-ssot-map の循環削除問題(FDA 復活で発覚)

Stage 1-A2 で FDA を有効化した結果、auto-snapshot.sh の Drive mirror が rsync -a --delete で正常動作 → skills-plugin に存在しない kudo-skill-tree-ssot-map が Drive から削除された。

現状: - regenerate_ssot_map.py(毎週日曜 03:00)が ~/.claude/skills/kudo-skill-tree-ssot-map/SKILL.md と Drive 配下に書く - auto-snapshot.sh(毎日 03:30)が skills-plugin → Drive を rsync --delete → Drive 側を毎回削除

これは Stage 1-B の射程外。Stage 1-C または Stage 1-D で扱う: - 案 A:auto-snapshot.sh の Cloud mirror に --exclude=kudo-skill-tree-ssot-map を追加 - 案 B:regenerate_ssot_map.py が skills-plugin にも書くようにする(cloud sync で復活する可能性は別問題) - 案 C:kudo-skill-tree-ssot-map を Vault canonical 化(Phase 2 完了で実質達成済み、Drive 側は捨てる)

4. ライブ system reminder で Code 自身が新状態を「自己認識」

Phase 2 実行直後、私(Code Claude)の system reminder が動的に更新され、47 件の kudo-* がプレフィックスなしで列挙された。これは: - Claude Code セッションが skills directory の変更を runtime 検知している - セッション再起動不要で symlink 化が即時反映された - 同 session 内で diff を直接体感できた

これにより、Phase 2 が「未検証の希望」ではなく「実機で動いている事実」として確定。


工藤氏・Chat への申し送り

1. Stage 1-B は完了。Stage 1-C 着手の前提条件

  • ✅ Vault に 47 件すべて存在(24 M + 23 R)
  • ~/.claude/skills/ → Vault symlink で Code から 47 件読める
  • ✅ プレフィックスなし名前空間は Vault canonical
  • anthropic-skills: 名前空間は依然 skills-plugin 経由(Stage 1-B2 で対処)
  • kudo-skill-tree-ssot-map 循環削除問題(Stage 1-C/D)

2. Stage 1-C 着手時の留意点

R23 の改訂を Vault 直接で実施できる: - Vault 編集 → プレフィックスなし namespace に即反映 - anthropic-skills: namespace は古いまま残る(Stage 1-B2 完了まで) - 編集対象 R23 のうち、anthropic-skills: 経由で頻繁にトリガーするものを把握しておくと良い

3. Stage 1-B2 着手の準備

  • 工藤氏側:claude.ai web で kudo-* スキルを直接編集する頻度を Chat と相談
  • Phase 3 着手の前後 24 時間中、web 側で kudo-three-mode-protocol(パイロット対象候補)を触らないよう申し合わせ
  • 失敗時のデュアル運用(Vault edit → 手動 cp)が許容範囲か事前確認

4. 復旧手段(万一のため再掲)

Phase 2 の rollback(symlink 撤回・元の ~/.claude/skills/ 復旧):

rm ~/.claude/skills
mv ~/.claude/skills.bak.2026-05-18 ~/.claude/skills

5 秒で完全に元の状態に戻る。Vault の 47 件はそのまま残るので、再着手も簡単。


ファイル一覧

新規作成

  • ~/KUDO-Vault/.claude/skills/kudo/(24 + 23 = 47 ディレクトリ)
  • ~/.claude/skills (symlink → Vault)
  • ~/.claude/skills.bak.2026-05-18/(旧 ~/.claude/skills/ の 6 件、念のため保持)
  • ~/working/_claude_workspace_global/handoffs/HANDOFF-stage1b2-cloud-sync-pilot-v1.md(Stage 1-B2 起草)
  • ~/working/_claude_workspace_global/reports/stage1b-completion-2026-05-18.md(本ファイル)

変更

  • ~/.claude/skills:ディレクトリ → symlink(実体は Vault)

Git 状態

  • ~/KUDO-Vault commits:
  • 711478c — Stage 1-B Task 1: Copy M24 skills to Vault
  • 02e0149 — Stage 1-B Phase 1: Pre-copy R23 skills to Vault

変更なし(非破壊保証)

  • skills-plugin path 配下の 56 件(Stage 1-B2 までは触らない)
  • Drive ~/working/.../kudo-skill-sync/skills/(auto-snapshot.sh 経由でのみ更新)
  • ~/.gemini/settings.json~/Library/Application Support/Claude/claude_desktop_config.json 等の MCP 設定
  • WorkFlowy(一切触らず)