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:symlink 化¶
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 が活動中の状態でパイロットを仕掛けることになる)。
B-2 + B-3:バックアップ + symlink 化¶
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_LASTUPDATED / MANIFEST_SKILL_UPDATEDAT / enabled / desc_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 で確認済み。
観察ログ¶
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)¶
- claude.ai web で kudo-mac-health-check を編集しない(変数を増やさないため。元々編集していないので自然に成立)
- claude.ai web のスキル一覧で
kudo-mac-health-checkが見え続けているかを 1 回確認(任意・cloud-sync が異常認識していないかの直接確認) - 観察中に異常を感じたら即報告(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 で確立、無変更)