コンテンツにスキップ

HANDOFF — KUDO-Vault Stage 1-B2(cloud-sync パイロット)

  • 宛先:Claude Code(工藤拓真氏のMacBook Pro M3 Pro ローカル環境)
  • 起票:Claude Chat(claude.ai web)/Stage 1-B 完了時に Code が起草
  • 日付:2026-05-18 起草 / 着手日は工藤氏判断(明示承認後)
  • 準拠:kudo-cowork-code-handoff-protocol §17(実環境差分の構造化還元)/ kudo-ecosystem-cascade-protocol / kudo-ai-error-watchlist
  • 配置先(このHANDOFF自身)~/working/_claude_workspace_global/handoffs/

0. 位置づけと前提

Stage 1-B(2026-05-18)で完了済み: - M24 + R23 = 47件 すべて Vault に存在(commits 711478c / 02e0149) - ~/.claude/skills/ → Vault への symlink(プレフィックスなし kudo-XXX 名前空間は Vault canonical 化済み) - ただし anthropic-skills:kudo-XXX 名前空間(46件)は依然 skills-plugin 経由でロードされており、Vault edit はここに反映されない

Stage 1-B2 の目的:skills-plugin path 配下の kudo-* dir を Vault への symlink に置き換えることで、anthropic-skills: 名前空間も Vault canonical 化する。最終ゴール「kudo-* スキルを Vault 単一正本」を完成させる。

ただし高リスク:このパスは Anthropic の cloud sync が管理する領域。symlink への置き換えが cloud sync で revert されるか不明。よって全件一気に置き換えず、1件パイロット→24時間観察→判定→残り bulk または撤退、の段階アプローチを取る


1. リスク評価(Stage 1-B で得たエビデンス)

  • Stage 1-A2 で skills-plugin/kudo-{ai-error-watchlist,mac-health-check,shared-storage-protocol}/SKILL.md に直接 frontmatter を追加し、cloud sync 後も全 3 件で生存
  • 個別 SKILL.md の mtime は cloud sync で更新されない
  • manifest.json のみ cloud sync が touch している(ファイル内容は確認していない)
  • 「symlink への置き換え」は「ファイル内編集」と性質が異なる。manifest と実体構造の整合性が崩れた瞬間に cloud sync が修復する可能性
  • claude plugin disable anthropic-skills は不可("not found in any editable settings scope")
  • skills-plugin path は UUID で識別される Anthropic 管理領域。Code から書き込めるが、サーバ側がいつどう介入するか不明

観察すべき指標

  • パイロット symlink が 24h 後も生きているか
  • パイロット symlink の dir mtime が変化しているか
  • manifest.json で当該スキルの skillId / updatedAt が変化しているか
  • system reminder の available-skills list での挙動(anthropic-skills: プレフィックスで参照できるか)

2. パイロット計画

パイロット対象:kudo-three-mode-protocol

選定理由: - 比較的 self-contained(参照スキルが少ない=壊れた時の影響範囲が限定的) - 動詞群5 / 仕分けM(既存スキルへの参照を多数持たない汎用プロトコル) - 工藤氏の核業務(提案デッキ生成・ブランド戦略)からはやや距離があり、壊れても即時の業務影響が小さい - もし壊れたら撤退・rollback しやすい

代替候補:kudo-binary-fusion(同様に self-contained、動詞群2)

手順

Step 1:バックアップ+実行前スナップショット

PLUGIN_SKILL="$HOME/Library/Application Support/Claude/local-agent-mode-sessions/skills-plugin/3d48e787-cadf-495d-ad7f-bc26535863ce/29545076-9f99-4406-b410-8c4409db721c/skills/kudo-three-mode-protocol"
VAULT_SKILL="$HOME/KUDO-Vault/.claude/skills/kudo/kudo-three-mode-protocol"

# 実行前状態を記録
ls -la "$PLUGIN_SKILL" > /tmp/stage1b2-pilot-before.txt
stat "$PLUGIN_SKILL" >> /tmp/stage1b2-pilot-before.txt
cat ~/Library/Application\ Support/Claude/local-agent-mode-sessions/skills-plugin/3d48e787-cadf-495d-ad7f-bc26535863ce/29545076-9f99-4406-b410-8c4409db721c/manifest.json \
  | python3 -c "import json,sys; m=json.load(sys.stdin); [print(s['updatedAt'], s['name']) for s in m['skills'] if s['name']=='kudo-three-mode-protocol']" \
  >> /tmp/stage1b2-pilot-before.txt
# バックアップ
mv "$PLUGIN_SKILL" "$PLUGIN_SKILL.bak.2026-05-XX"  # 当日日付

# symlink 作成
ln -s "$VAULT_SKILL" "$PLUGIN_SKILL"

# 即検証:symlink 経由で SKILL.md が読めるか
ls -la "$PLUGIN_SKILL"
cat "$PLUGIN_SKILL/SKILL.md" | head -10

Step 3:Code セッションでの動作確認

  • 新規 Claude Code セッションを起動
  • system reminder の available-skills list を確認
  • anthropic-skills:kudo-three-mode-protocol が依然リストされているか
  • description が Vault 版(最新)と一致しているか
  • 試しに「Cold Start で〜」とトリガー → スキルが実際に invoke されるか

Step 4:24時間観察

# 24h 後に状態を再取得
ls -la "$PLUGIN_SKILL" > /tmp/stage1b2-pilot-after-24h.txt
# 上記 Step 1 と同じスナップショットを取る
diff /tmp/stage1b2-pilot-before.txt /tmp/stage1b2-pilot-after-24h.txt

判定: - symlink が 生存(symlink のまま、Vault 指してる)→ 成功 - symlink が revert された(実 dir に戻ってる)→ 失敗 - symlink は生きてるが manifest 側で updatedAt が変化 → 中間(要詳細調査)

Step 5a:成功時 — 残り 45 件 bulk 適用

# kudo-three-mode-protocol を除いた45件すべてに同じ操作
for s in $(ls "$PLUGIN_PARENT/skills" | grep '^kudo-' | grep -v kudo-three-mode-protocol); do
  mv "$PLUGIN_PARENT/skills/$s" "$PLUGIN_PARENT/skills/$s.bak.2026-05-XX"
  ln -s "$HOME/KUDO-Vault/.claude/skills/kudo/$s" "$PLUGIN_PARENT/skills/$s"
done

Step 5b:失敗時 — rollback & デュアル運用へ移行

rm "$PLUGIN_SKILL"  # symlink 削除
mv "$PLUGIN_SKILL.bak.2026-05-XX" "$PLUGIN_SKILL"  # 元の dir を戻す
そのうえで「Vault edit → skills-plugin への手動 cp」運用へ移行(Stage 1-C 改訂時のフロー定義)。


3. 失敗時の救済(rollback の rollback)

万が一、symlink が cloud sync で revert された結果、skills-plugin の元の dir も壊れた / 消えた場合: - $PLUGIN_SKILL.bak.2026-05-XX から復元 - それも壊れていれば ~/.claude/skills.git-mirror/snapshots/2026-05-XX/ の該当日 snapshot から復元 - それも無理なら Vault の中身を skills-plugin へ cp(実体 dir として)

このバックアップ階層が複数あるため、データ消失の心配は実質ゼロ。


4. 検証チェックリスト

  • パイロット前:/tmp/stage1b2-pilot-before.txt で実行前状態スナップショット
  • パイロット前:バックアップ *.bak.2026-05-XX 作成
  • パイロット:symlink 経由で SKILL.md が読める(即検証)
  • パイロット:新規 Code セッションで anthropic-skills:kudo-three-mode-protocol が available-skills に出る
  • パイロット:description が Vault 版(最新)と一致
  • 24時間後:symlink が生存している(実 dir に戻っていない)
  • 24時間後:manifest.json で updatedAt 変化なし or 変化あり(どちらでも記録)
  • 成功なら:残り 45 件 bulk 適用+全件で再検証
  • 失敗なら:即 rollback、デュアル運用設計(Vault→skills-plugin 手動 cp)

5. 完了報告

~/working/_claude_workspace_global/reports/stage1b2-completion-2026-05-XX.md に出力: - パイロット対象、実行時刻 - 24時間観察の結果(symlink 生存 / revert / 中間) - 観察された cloud sync の挙動(manifest 変化の有無等) - 成功時:bulk 適用結果、全47件 Vault canonical 達成 - 失敗時:rollback 経過、デュアル運用への移行プラン - kudo-ai-error-watchlist への Entry 追加(cloud sync の実挙動を恒久記録)

完了報告が揃ったら、Stage 1-C(R23 改訂)に進む。Stage 1-B2 の結果(symlink 生存 / デュアル運用)により、Stage 1-C の編集ワークフローが変わる: - symlink 生存 → Vault 直接編集だけで Code 全面反映 - デュアル運用 → Vault 編集後、毎回 skills-plugin へ手動 cp が必要


6. 着手前に確認すべきこと

工藤氏側: - claude.ai web で kudo-* スキルを直接編集する頻度(高ければ cloud sync 発火率が上がり revert リスク増) - パイロット 24h 中に web 側で kudo-three-mode-protocol を触らない約束ができるか - 失敗時のデュアル運用許容(Vault edit → 手動 cp)か、それとも別アプローチ模索か

Code 側: - パイロット前に再度 manifest.json と skills-plugin の全 SKILL.md mtime を記録(control group) - パイロット後の "skills-plugin に何もしない場合の base line" を取る - 1件パイロット中も他のスキルは触らない(パイロット効果の混入回避)


7. このHANDOFFの位置づけ

Stage 1-B(2026-05-18)の延長線上にあるが、独立した着手判断を要する実験計画。 - Stage 1-B:Phase 1(pre-copy)+ Phase 2(symlink)まで → 本日完了 - Stage 1-B2:Phase 3(plugin path symlink)パイロット → 工藤氏明示承認後に着手 - Stage 1-C:R23 改訂(Stage 1-B2 の結果でワークフローが変わる)