コンテンツにスキップ

Stage 1-B2 仕掛け完了報告

結論

工藤氏承認のもと、kudo-mac-health-check 1 件を選定して skills-plugin path を Vault への symlink に置換。事前状態記録 → バックアップ → symlink 化 → 即検証 → hourly observer 仕込み まで完了。24 時間後の判定を待つ。

タスク 状態
A:候補提示 → 工藤氏承認 ✅ 完了(kudo-mac-health-check 確定)
B-1:事前状態 T+0 記録 ✅ 完了
B-2:実 dir → .bak.2026-05-19 退避 ✅ 完了
B-3:symlink → Vault 化 ✅ 完了
B-4:直後検証(symlink resolve、hash 一致) ✅ 完了
C:hourly observer LaunchAgent 仕込み ✅ 完了(既に 2 件記録済み)
D:24h 後の判定 ⏸ 待機中

タスクA:パイロット対象選定

計測方法

Vault 内 47 SKILL.md 全件を re.escape(skill_name) で grep し、自身を除く参照回数を集計。frontmatter parent 関係も併せて確認。

計測結果(M24 のうち被参照が少ない上位 3 件)

候補 TotalRefs #Children 主な参照元
kudo-mac-health-check ★ 2 0 1 件 kudo-ai-error-watchlist(本文中言及)/1 件 kudo-skill-tree-ssot-map(auto-gen tree)
kudo-audience-simulation 10 0 6 件 ssot-map / 4 件 source-verification
kudo-deck-faithful-redesign 10 0 7 件 ssot-map / 他散発

工藤氏判断

kudo-mac-health-check(Code 推奨)を採用。確定理由: - 被参照最小(2 件、しかも実呼び出しではない本文中言及のみ) - 子スキルゼロ - Mac 動作不調時のみ発火、日常頻度低 - Stage 1-A2 で既に frontmatter 編集の試行履歴あり


B-1:事前状態 T+0 記録

記録先:/tmp/stage1b2-pilot-pre-T0.txt(48 行)

3 経路すべてバイト一致(SHA-1: 521ad1f1d1a6958affe30876916c91f33dde2b84、9294 bytes、mtime 2026-05-18 20:51:44):

plugin (TRUE SSOT):  9294 bytes
vault:               9294 bytes
drive mirror:        9294 bytes
hash: 521ad1f1d1a6958affe30876916c91f33dde2b84 (一致)

manifest.json エントリ

{
  "skillId": "skill_01QWWnQrko6VzRU7CNBx9KMs",
  "name": "kudo-mac-health-check",
  "creatorType": "user",
  "updatedAt": "2026-05-13T23:17:23.008393Z",
  "enabled": true
}
manifest.json lastUpdated: 1779138387720 (= 2026-05-19 06:26 JST 頃)

manifest はパイロット直前にも更新されていた(cloud sync が活動中の状態でパイロットを仕掛けることになる)。

mv "$PLUGIN_PARENT/skills/kudo-mac-health-check" \
   "$PLUGIN_PARENT/skills/kudo-mac-health-check.bak.2026-05-19"

ln -s "$HOME/KUDO-Vault/.claude/skills/kudo/kudo-mac-health-check" \
      "$PLUGIN_PARENT/skills/kudo-mac-health-check"

実行後:

lrwxr-xr-x  kudo-mac-health-check -> /Users/kudotakuma/KUDO-Vault/.claude/skills/kudo/kudo-mac-health-check
drwxr-xr-x  kudo-mac-health-check.bak.2026-05-19/
              ├─ SKILL.md (9294 bytes, mtime May 18 20:51:44)
              └─ SKILL.md.bak.2026-05-18 (9250 bytes, mtime May 14 — Stage 1-A2 由来)

B-4:直後検証

検証項目 結果
symlink resolve → Vault path /Users/kudotakuma/KUDO-Vault/.claude/skills/kudo/kudo-mac-health-check
realpath 解決 ✅ 同上
symlink 経由で SKILL.md 読取り可能
symlink 経由のハッシュ vs Vault のハッシュ ✅ 一致(521ad1f1...
バックアップ dir 実体 .bak.2026-05-19/ に SKILL.md + Stage 1-A2 の .bak.2026-05-18 も保持

観察起点 / 終了予定

Start (UTC):  2026-05-18T22:20:04Z
Start (JST):  2026-05-19T07:20:04+0900
End (UTC):    2026-05-19T22:20:04Z (T+24h)
End (JST):    2026-05-20T07:20:04+0900

タスクC:hourly observer 仕込み

観察スクリプト

~/.claude/scripts/stage1b2_observe.sh(read-only):

毎回以下を測定して append: - PLUGIN_PATH_TYPE:symlink / real dir / missing - SKILL_MD_VIA_PLUGIN:symlink 経由で読んだ SKILL.md の hash + size - SKILL_MD_VAULT:control(Vault 直接のハッシュ) - SKILL_MD_DRIVE:Drive ミラー側のハッシュ - PLUGIN_BAK:ロールバック用バックアップの存在 - MANIFEST_LASTUPDATEDMANIFEST_SKILL_UPDATEDATenableddesc_len:manifest の動き - AUTO_SNAPSHOT_LOG_TAIL_3:auto-snapshot.sh の直近ログ

LaunchAgent

~/Library/LaunchAgents/com.kudo.stage1b2-pilot-observer.plist

<key>StartInterval</key>
<integer>3600</integer>      <!-- 毎時 -->
<key>RunAtLoad</key>
<true/>                       <!-- 初回も即実行 -->

launchctl bootstrap gui/$(id -u)/... で登録済み。launchctl list | grep stage1b2 で確認済み。

観察ログ

~/working/_claude_workspace_global/reports/stage1b2-pilot-observation.log

T+0 と LaunchAgent RunAtLoad の 2 件が既に記録済み。以降、毎時 1 件追加。

判定 (T+24h) 後の停止手順

launchctl bootout gui/$(id -u)/com.kudo.stage1b2-pilot-observer
# 任意:plist と script も後始末
# rm ~/Library/LaunchAgents/com.kudo.stage1b2-pilot-observer.plist
# rm ~/.claude/scripts/stage1b2_observe.sh

ロールバック手順(万一の場合・即実行可能)

PLUGIN_PARENT="$HOME/Library/Application Support/Claude/local-agent-mode-sessions/skills-plugin/3d48e787-cadf-495d-ad7f-bc26535863ce/29545076-9f99-4406-b410-8c4409db721c"
rm "$PLUGIN_PARENT/skills/kudo-mac-health-check"
mv "$PLUGIN_PARENT/skills/kudo-mac-health-check.bak.2026-05-19" \
   "$PLUGIN_PARENT/skills/kudo-mac-health-check"

5 秒で完全に元の状態に復帰。Vault の kudo-mac-health-check は無変更で残るため、再着手も簡単。


工藤さんへの依頼事項

観察期間中(〜2026-05-20 07:20 JST)

  1. claude.ai web で kudo-mac-health-check を編集しない(変数を増やさないため。元々編集していないので自然に成立)
  2. claude.ai web のスキル一覧で kudo-mac-health-check が見え続けているかを 1 回確認(任意・cloud-sync が異常認識していないかの直接確認)
  3. 観察中に異常を感じたら即報告(symlink が消えた、web からスキルが消えた等)

24 時間後(明朝以降)

判定の結果を Code(または工藤さん本人)が読み、stage1b2-pilot-result-2026-05-20.md として判定報告を出力します。Chat 側で次の HANDOFF(A: 45 件 bulk symlink / B: harmonize 設計 / C: 観察延長)を起票してください。


検証チェックリスト

  • タスクA:影響最小候補を 3 件提示、工藤氏承認で 1 件確定
  • タスクB-1:事前状態を 3 経路 + manifest で記録、バイト一致確認
  • タスクB-2:実 dir → .bak.2026-05-19 退避
  • タスクB-3:Vault への symlink 作成
  • タスクB-4:symlink resolve・ハッシュ一致・読取り可を直後検証
  • タスクB-5:ロールバック手順を文書化
  • タスクC:hourly observer LaunchAgent を仕込み・登録・初回実行確認
  • タスクD:24 時間後の判定(明朝以降に実施)
  • 46 件一括 symlink 化は本 HANDOFF で行わない(パイロット 1 件のみ・厳守)

ファイル一覧

新規作成

  • ~/.claude/scripts/stage1b2_observe.sh(観察スクリプト)
  • ~/Library/LaunchAgents/com.kudo.stage1b2-pilot-observer.plist(hourly cron)
  • ~/working/_claude_workspace_global/reports/stage1b2-pilot-observation.log(観察ログ・以後毎時 append)
  • ~/working/_claude_workspace_global/reports/stage1b2-pilot-setup-2026-05-19.md(本ファイル)
  • /tmp/stage1b2-pilot-pre-T0.txt(T+0 詳細スナップショット)

変更

  • skills-plugin path の kudo-mac-health-check:実 dir → symlink
  • skills-plugin path に kudo-mac-health-check.bak.2026-05-19/ 新設

変更なし

  • Vault kudo-mac-health-check(無変更)
  • 他 45 件の skills-plugin kudo-* dir
  • 他 10 件の skills-plugin 非 kudo dir(docx/pdf/pptx 等)
  • Drive 全体(auto-snapshot 次回 03:30 で skills-plugin の symlink 状態がどう転送されるかが観察対象)
  • WorkFlowy
  • ~/.claude/skills/ symlink(Stage 1-B Phase 2 で確立、無変更)