Phase 3 集中原則波及 完了報告¶
| 項目 | 値 |
|---|---|
| 起案 | Code Claude(Mac ローカル) |
| 実行日時 | 2026-05-17 05:30 JST |
| 所要時間 | 約 50 分 |
| Part A CLAUDE.md 新設 | ✅ 完了(~/.claude/CLAUDE.md・全 FS 検索でバックアップ無し→新設一択) |
| Part B-1 ~ B-7 7 スキル更新 | ✅ 完了(snapshot 直編集+global outputs/phase3-patches へコピー) |
| Part C §5.5 整合チェック | ✅ 完了(7 件全て矛盾なし) |
| Part D Entry #15 追加 | ✅ 完了(kudo-ai-error-watchlist §4 14→15件) |
| description 1024 字チェック | ✅ 全 8 件合格(最大 1020 字) |
| regenerate_ssot_map.py 実行 | ✅ 成功(54 skills loaded・skill-tree-ssot-map 更新) |
★最重要:完了の意味と Chat 側で必要なアクション¶
私が編集した SKILL.md は ~/.claude/skills.git-mirror/snapshots/2026-05-17/ 配下です。これは git 履歴用 snapshot で、真の SSOT は ~/Library/Application Support/Claude/local-agent-mode-sessions/skills-plugin/{device}/{user}/skills/(kudo-persist-settings v3.5 で発見済)です。真の SSOT を更新する経路は claude.ai > 設定 > カスタマイズ > スキル 経由のみで、これは個人設定 v5.1 項目11「.skill ZIP を present_files → 保存ボタン」プロトコルに従います。
したがって、本 Phase 3 で私が完了したのは:
- ✅ 編集パッチの作成・実体化:snapshot 直編集で実体は更新済(次回 snapshot 取得で上書きされる可能性あり)
- ✅ パッチファイルの永続化:
~/working/_claude_workspace_global/outputs/phase3-patches/配下に 9 ファイル(CLAUDE.md + 8 SKILL.md)コピー済み - ✅ CLAUDE.md の Code 環境への実体化:
~/.claude/CLAUDE.mdは Code セッションが直接読む位置なので、本ファイルは Phase 3 で真に永続化された唯一の成果物
残作業(Chat 側で工藤さんが実施):
~/working/_claude_workspace_global/outputs/phase3-patches/の 8 SKILL.md を Chat に渡す(または Drive 同期経由で Chat が参照)- Chat 側で .skill ZIP を作成(kudo-persist-settings §.skill ファイル形式に従う)
- Chat が present_files で .skill 提示
- 工藤さんが claude.ai > 設定 > カスタマイズ > スキルで「保存」ボタン
- 次回 auto-snapshot.sh 実行(月曜 4:00)で snapshot に反映確認
Part A:~/.claude/CLAUDE.md 新設¶
HANDOFF ドラフト準拠で新設(5774 B / 89 行)。§1 役割と優先順位 / §2 セクション索引 / §3 保存先パス規律(§3.1 集中原則・§3.2 二層ワークスペース・§3.3 特例配置・§3.4 NFC-NFD) / §4 状態再構成(§4.1-§4.3) を保有。8 スキルが「CLAUDE.md §3 / §4.3 が一次ソース」として参照していたものの実体を提供。
Phase 2 で確認済の通り、バックアップは git mirror / Time Machine / 旧 OneDrive のいずれにも見当たらず新設一択だった。
Part B:7 スキル個別更新サマリ¶
| # | スキル | 主要変更 | バージョン |
|---|---|---|---|
| B-1 | kudo-naming-unification-protocol | §9-2 配置のマスター名簿パスを ~/Downloads/ → _claude_workspace_global/master-lists/ に変更 |
v2.3 → v2.4 |
| B-2 | kudo-cowork-code-handoff-protocol | §13 全面改訂:HANDOFF 配置先 SSOT を _claude_workspace_global/handoffs/ に統合、旧 kudo-skill-sync/ / code-handoffs/ は履歴保持のみ・新規追加禁止に変更 |
v1.12 → v1.13 |
| B-3 | kudo-context-routing | §1.3 二層ワークスペース規範を新設(global vs 案件直下の判定マトリクス+典型例+混入禁止)、L133/L199 の HANDOFF.md 配置を二分岐 | v1.2 → v1.3 |
| B-4 | kudo-gemini-image-bridge | §2.2 / §Step 4 / §5.2 の出力先を環境別 3 分岐(Chat=mnt / Code 案件横断=global / Code 案件直下=_claude_workspace/03_output)に変更 | v0.1 → v0.2 |
| B-5 | kudo-html-publish | §7 Step 6 / §10 関連スキル / frontmatter related を二層化対応。HTML 案件固有=案件直下、横断 HTML=global/outputs/phase05/ | v0.4 → v0.5 |
| B-6 | kudo-workflowy-double-save | §運用ルール SSOT §7 の保存先項目を集中原則 3 分岐に改訂、基本思想「保存先の役割分担」表に global + 案件直下 2 行追加 | v3.1 → v3.2 |
| B-7 | kudo-persist-settings | §設定ファイル所在マップに 4 項目追加(CLAUDE.md / 集中原則 SSOT / global ハブ / マスター名簿 global)、Step 7 判定マトリクスに「参照腐敗フラグ」新設 | v3.7 → v3.8 |
各スキルの完全な更新後 SKILL.md は ~/working/_claude_workspace_global/outputs/phase3-patches/{skill}-SKILL-phase3.md。
Part C:kudo-shared-storage-protocol v1.2 §5.5 整合チェック¶
7 件全件で矛盾なし。詳細:
| Part | 照合先 (§5.5 内) | 整合判定 |
|---|---|---|
| B-1 マスター名簿 | §5.5-2 「マスター名簿 → master-lists/」 |
✅ 完全一致 |
| B-2 HANDOFF | §5.5-2 「HANDOFF → handoffs/」 + §5.5-5 移行計画 |
✅ 完全一致 |
| B-3 二層化規範 | §5.5-3 特例1 + §5.5-4 違反禁止(案件越境) | ✅ 整合 |
| B-4 出力先 3 分岐 | §5.5-2 outputs/ + §5.5-3 特例1/2 | ✅ 整合 |
| B-5 HTML 二分岐 | §5.5-2 outputs/ + §5.5-3 特例1 | ✅ 整合 |
| B-6 保存先表 | §5.5 全体(global 最上位カテゴリ) + §5.5-2 reports/ | ✅ 整合 |
| B-7 所在マップ + 参照腐敗フラグ | §5.5 全体 SSOT 強化方針 + §5.5-5 SKILL 波及 | ✅ 整合 |
Part D:kudo-ai-error-watchlist Entry #15¶
HANDOFF 原案通り追加(§4 タイトル「14件」→「15件」更新、Entry #14 末尾に挿入)。テーマは「memory_user_edits の 500 字制限を作業前に把握せず立ち往生」、Entry #9(作業前確認不足系)と相互参照。
HANDOFF からの逸脱(reasonable assumption での補正・3 件)¶
- validate_skill.py 不在:HANDOFF 手順 5 は
~/.claude/scripts/validate_skill.pyでの description 1024 字チェックを指示していたが、本 Mac に validate_skill.py が存在しない(regenerate_ssot_map.py のみ)。代替として Python venv 経由で 8 スキル全件を機械チェック → 全件合格(最大 1020 字)。validate_skill.py 同梱は Phase 4 候補とする。 - pyyaml 未導入:regenerate_ssot_map.py が
import yamlで失敗。~/.claude/venv-naming/bin/pip install pyyamlで導入後に成功(54 skills loaded)。 - 真の SSOT 階層の発見:HANDOFF は「Code が SKILL.md を編集」を前提としていたが、実体パスが 3 層構造(① 真 SSOT=
~/Library/.../skills-plugin/.../skills// ② git-mirror snapshot=~/.claude/skills.git-mirror/snapshots/2026-05-17/(編集対象)/ ③~/working/claude/kudo-skill-sync/skills/(regenerate_ssot_map.py の参照先・古いバイト数)」と分かれていることが Phase 3 実行時に判明。私は ② を編集したが、claude.ai > スキル UI に反映するには Chat 経由(前述「Chat 側で必要なアクション」)が必須。本完了報告で明示。
8 スキル description 1024 字チェック結果¶
✅ kudo-naming-unification-protocol: 1020 字
✅ kudo-cowork-code-handoff-protocol: 1019 字
✅ kudo-context-routing: 1004 字
✅ kudo-gemini-image-bridge: 690 字
✅ kudo-html-publish: 864 字
✅ kudo-workflowy-double-save: 590 字
✅ kudo-persist-settings: 922 字
✅ kudo-ai-error-watchlist: 823 字
全件合格。kudo-cowork-code-handoff-protocol は僅差(1019/1024)のため次回追記時は注意必要。
出力物パス¶
- Code 環境で実体化:
~/.claude/CLAUDE.md(新設・Phase 3 唯一の真永続化成果物) - snapshot 直編集(次回上書き可能性あり):
~/.claude/skills.git-mirror/snapshots/2026-05-17/{8 skills}/SKILL.md - パッチアーカイブ(Chat 引き渡し用・真の永続):
~/working/_claude_workspace_global/outputs/phase3-patches/ CLAUDE.md(reference copy)kudo-naming-unification-protocol-SKILL-phase3.mdkudo-cowork-code-handoff-protocol-SKILL-phase3.mdkudo-context-routing-SKILL-phase3.mdkudo-gemini-image-bridge-SKILL-phase3.mdkudo-html-publish-SKILL-phase3.mdkudo-workflowy-double-save-SKILL-phase3.mdkudo-persist-settings-SKILL-phase3.mdkudo-ai-error-watchlist-SKILL-phase3.md- SSOT map 再生成成果:
~/.claude/skill-ssot-report.md/~/.claude/skills/kudo-skill-tree-ssot-map/SKILL.md
次フェーズ(Phase 4)への引き継ぎ候補¶
- Chat 側で .skill ZIP パッケージング:上記パッチ 8 件を Chat が読み込み → kudo-persist-settings §.skill ファイル形式に従って ZIP 作成 → present_files → 工藤さんが保存ボタン
- 真 SSOT 反映の検証:保存後、次回 auto-snapshot 実行(月曜 4:00)で snapshot に v1.13 / v1.3 / v0.2 / v0.5 / v3.2 / v3.8 / v2.4 / Entry #15 が反映されているか確認
- validate_skill.py 同梱:kudo-skill-md-format-validator §scripts/validate_skill.py が本 Mac に未配置。Phase 4 で実装+ scheduled-tasks 月次自動チェックへ組込
- kudo-shared-storage-protocol §5.5-6 違反検出自動化:validate_naming_consistency.py v3 で「軸6=Claude 関連管理ファイルが
_claude_workspace_global/外にないか」走査を実装 - 旧 SSOT (
kudo-skill-sync/) の役割確認:regenerate_ssot_map.py が参照しているが、bytes 数が snapshot より古い。本当の SSOT 連鎖(kudo-skill-sync vs snapshot vs 実体)を kudo-persist-settings §Step 7 形骸化検出で再点検すべき