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.py24/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.py23/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/ 復旧):
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-Vaultcommits:711478c— Stage 1-B Task 1: Copy M24 skills to Vault02e0149— 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(一切触らず)