HANDOFF — Phase 3:集中原則の SKILL 群への波及¶
| 項目 | 内容 |
|---|---|
| 起案 | Chat Claude |
| 宛先 | Code Claude(ローカル Mac) |
| 起案日 | 2026-05-15 |
| 起点 | 個人設定 v5.1 項目15 / memory #19 / kudo-shared-storage-protocol v1.2 §5.5 |
| 前提 | Phase 2 grep 監査完了(reports/2026-05-15-phase2-grep-report.md)/ CLAUDE.md 全FS不在確定 |
| 所要時間 | 40-60 分 |
0. 全体方針¶
Phase 2 で「実質違反6件+高優先度7スキル」を特定済。Phase 3 は4パートで波及させる:
- Part A:CLAUDE.md 新設(最優先・8スキルを1ファイルで肩代わり)
- Part B:7スキル個別更新(grep レポートの行番号通り)
- Part C:kudo-shared-storage-protocol v1.2 整合チェック(Code が7スキルと照合)
- Part D:kudo-ai-error-watchlist Entry #15 追加
重要原則:本 HANDOFF は「Code が更新 → 各 SKILL.md の更新後該当部分を Chat に貼り戻し → Chat 事後レビュー」の二段構え。Code 単独で description 1024字超過や YAML 破損を起こさないため、更新後は必ず Chat レビューを通す。
Part A:CLAUDE.md 新設(最優先)¶
A-1. 背景¶
grep レポートにより、8スキル(kudo-autonomous-execution-protocol / kudo-brand-architecture / kudo-deck-generation-router / kudo-design-mockup / kudo-designer-lens-library / kudo-presenter-lens-library / kudo-proposal-deck / kudo-schedule-budget)が「保存先パス/NFC-NFD対策はすべて CLAUDE.md §3 が一次ソース。本スキルではハードコードしない」と記述していることが判明。
しかし CLAUDE.md の実体が本 Mac に存在しない(全FS検索で確定)。これは参照腐敗。CLAUDE.md を新設すれば、8スキルの参照が自動的に有効化される。
A-2. CLAUDE.md ドラフト(Chat 起草・たたき台)¶
以下を ~/.claude/CLAUDE.md として新規作成する。§3 と §4.3 は既存8スキル+kudo-project-state-recovery が参照する番号なので固定。§1/§2/§5 は最小構成:
# CLAUDE.md — 工藤拓真のグローバル行動規範
工藤拓真(BRANDFARM代表取締役・CD)の全 Claude セッション(Chat / Cowork / Code)に
適用するグローバル設定。4層SSOT生態系(個人設定 / kudo-brand-tokens.json /
SKILL.md群 / 本CLAUDE.md / memory)の一員。
## §1 役割と優先順位
- 個人設定(claude.ai > カスタマイズ)= セッション単位の指示・優先順位の一次ソース
- 本 CLAUDE.md = 全環境共通の保存先パス規律・文字正規化・状態再構成ルールの一次ソース
- SKILL.md群 = 各ドメインのプロトコル本体
- 競合時の優先:個人設定 > CLAUDE.md > SKILL.md
## §2 セクション索引
- §3 保存先パス規律・文字正規化(NFC-NFD)
- §4 状態再構成・読込ルール
## §3 保存先パス規律・文字正規化
### §3.1 生成物配置の集中原則(一次ソース)
Claude 関連生成物(HANDOFF / マスター名簿 / 完了報告 / プロジェクト総括 /
中間成果物 / 検出レポート等)の格納先は、原則 `~/working/_claude_workspace_global/`
配下に集中させる(Drive 同期フォルダ ID: 1EXyQOuWn2tvaBqBnhyeIhAH7Gox3jMsF)。
サブフォルダ:master-lists/ handoffs/ reports/ outputs/
詳細プロトコルは kudo-shared-storage-protocol v1.2 §5.5。
### §3.2 二層ワークスペース
- 案件横断の Claude 作業管理ファイル → `~/working/_claude_workspace_global/`
- クライアント固有の制作物 → `~/working/顧客ビジネス/{client}/_claude_workspace/`
(01_input / 02_work / 03_output / 99_archive)
判定:「特定クライアントの制作物か?」YES→案件直下 / NO→global
### §3.3 特例配置と相談プロトコル
`_claude_workspace_global/` 外への配置(Desktop / Downloads / Drive ルート直下 /
tmp 永続化)は、作業開始前に工藤さんへ「これは ___ に置きます。理由:___」と相談必須。
例外:① クライアント案件直下配置(相談不要)/② present_files の
/mnt/user-data/outputs/ のみで永続化不要なもの(相談不要)。
### §3.4 文字正規化(NFC-NFD)
- すべての文字列処理に NFC 正規化を適用(macOS APFS は NFD 保存のことがある)
- 半角/全角カッコは全角に統一
- 末尾スペースは .strip() で除去
- 詳細は kudo-naming-unification-protocol v2.3 §6
## §4 状態再構成・読込ルール
### §4.1 長期プロジェクトの状態復元
複数セッションにまたがる作業の再開時は、まず WorkFlowy「過去生成ログ」
(ノードID 54f53941)配下のデイリーダイジェストを参照。
### §4.2 引き継ぎメモ
セッション跨ぎは kudo-project-state-recovery のプロトコルに従う。
### §4.3 読込先優先順位
状態再構成時の参照優先順位:
1. WorkFlowy「過去生成ログ」(ID 54f53941)配下のデイリーダイジェスト
2. 該当案件の #project ノード
3. conversation_search / recent_chats による会話履歴
4. _claude_workspace_global/reports/ 配下の完了報告
A-3. 実行¶
- 上記ドラフトを
~/.claude/CLAUDE.mdとして新規作成 - 作成後、全文を Chat に貼り戻す → Chat レビュー(工藤さんの設計思想との整合確認)
- ★Code 判断要請:もし過去の CLAUDE.md バックアップ(git mirror / Time Machine / 旧 OneDrive 同期)が見つかれば、新設より復元を優先。その場合は旧版を Chat に提示
Part B:7スキル個別更新¶
各スキルの更新方針。Code は SKILL.md を編集後、該当セクションの更新後テキストを Chat に貼り戻すこと。
B-1. kudo-naming-unification-protocol(L437)¶
- 現状:
マスター名簿:~/Downloads/naming-master-list-vN.M.xlsx(最新版) - 更新後:
マスター名簿:~/working/_claude_workspace_global/master-lists/naming-master-list-vN.M.xlsx(最新版・最大vN.M を最新と判定) - 改訂履歴に v2.4 エントリ追加
B-2. kudo-cowork-code-handoff-protocol §13¶
- 現状:HANDOFF 配置先 SSOT が
kudo-skill-sync/HANDOFF-*.md/code-handoffs/YYYY-MM-DD_案件名/の二段運用 - 更新後:§13 を「HANDOFF 配置先 =
~/working/_claude_workspace_global/handoffs/を第一選択。kudo-shared-storage-protocol v1.2 §5.5 を一次ソースとして参照」に改訂。旧code-handoffs/は「特例継続が必要なら §5.5-3 の相談プロトコルを通す」と明記 - 改訂履歴 v1.13
B-3. kudo-context-routing → v1.3(二層化規範の新設)¶
- L3 description / L31 表 / L106 SSOT宣言 / L114-194 詳細 / L133・L199 HANDOFF配置 を点検
- 新セクション「§1.3 二層ワークスペース規範」を新設:
_claude_workspace(案件直下)= クライアント固有制作物。01-99 内部構造維持_claude_workspace_global(working 直下)= 案件横断の Claude 作業管理- 判定マトリクス:特定クライアント制作物→案件直下 / 横断管理→global
- L133・L199 の「HANDOFF.md は
_claude_workspace/02_work/に配置」は「クライアント案件固有の HANDOFF はここ、案件横断 HANDOFF は global の handoffs/」に二分岐 - description / 改訂履歴を v1.3 に更新
B-4. kudo-gemini-image-bridge(L84/L137/L194)¶
- 現状:出力保存先が
/mnt/user-data/outputs/固定 - 更新後:環境分岐を明記
- Chat 実行時 →
/mnt/user-data/outputs/(present_files 経由・例外2) - Code/Mac 実行時 →
~/working/_claude_workspace_global/outputs/{案件名}/ - クライアント案件の画像 → 各案件
_claude_workspace/03_output/(例外1)
B-5. kudo-html-publish(L70/L402/L452)¶
- L402「HTML成果物は
_claude_workspace/03_output/phase05/にアーカイブ」 - L452「kudo-context-routing | 配置先、
_claude_workspace/03_output/」 - 更新後:「クライアントプレ提示 HTML → 案件直下
_claude_workspace/03_output//案件横断の議事録・ふりかえり →_claude_workspace_global/outputs/」の切り分けを明記 - L70 のリンクは kudo-context-routing v1.3 §1.3 を指すよう更新
B-6. kudo-workflowy-double-save(§保存先 L122-138)¶
- 現状:保存先表が「デスクトップ / クラウドパス(~/working/)」等
- 更新後:保存先カテゴリ表に「
_claude_workspace_global/reports/(案件横断の議事録・ダイジェスト)」を最上位カテゴリとして追記
B-7. kudo-persist-settings(§設定ファイル所在マップ)¶
- §設定ファイル所在マップに2項目追加:
kudo-shared-storage-protocol v1.2を「集中原則 SSOT」として登録~/.claude/CLAUDE.md(Part A で新設)を所在マップに登録- Step 7 SSOT形骸化検出に「参照先ファイルの実体不在検出」を追加(CLAUDE.md 不在を二度と見逃さないため)
Part C:kudo-shared-storage-protocol v1.2 整合チェック¶
Code は B-1〜B-7 の更新時、各スキルが kudo-shared-storage-protocol v1.2 §5.5 の規定と矛盾しないか照合する。
v1.2 §5.5 の使い分け規定(照合基準・要点)¶
- 対象生成物:マスター名簿→master-lists/ / HANDOFF→handoffs/ / 完了報告・検出レポート→reports/ / 中間成果物→outputs/
- 特例1:クライアント固有制作物 → 各案件
_claude_workspace/(相談不要) - 特例2:即時DLのみ永続化不要 →
/mnt/user-data/outputs/(相談不要) - 特例3:それ以外で global 外配置 → 工藤さんに相談必須
- 違反禁止:Drive ルート直下 / ~/Downloads/ 永続化 / /tmp/ 永続化 / 案件 _claude_workspace への横断ファイル混入
矛盾を発見したら Chat に報告(Phase 3 の追加論点として扱う)。
Part D:kudo-ai-error-watchlist Entry #15 追加¶
末尾に以下を追加(Entry #12-14 の後)。§4 タイトルを「14件」→「15件」に更新:
### Entry #15:memory_user_edits の500字制限を作業前に把握せず立ち往生
- 日付:2026-05-15
- 領域:memory_user_edits 運用 / 作業前の制約確認
- 誤り:control 引数の文字数を見積もらずに add を実行し、500字超過エラーで
同ターン内の作業が中断。工藤さんが同じメッセージを再送する手間が発生した
- 真相:memory_user_edits の control は最大500字(日本語マルチバイト計算)
- 一次ソース:2026-05-15 add 実行時の "String should have at most 500 characters" エラー
- 永続化ルール:
1. memory add 前に必ず文字数を数える
2. 450字を超えそうなら圧縮版を準備してから add
3. 長い内容は memory に全部書かず SKILL.md を一次ソースにして memory は要約+参照に留める
- 関連:Entry #9 と同じ「作業前の確認不足」系
実行手順サマリー¶
- Part A:CLAUDE.md 全FS再検索(バックアップ探索)→ なければドラフトで新設 → Chat に貼り戻し
- Part B:7スキルを順次更新 → 各 SKILL.md 更新後該当部分を Chat に貼り戻し
- Part C:各更新が v1.2 §5.5 と整合するか照合 → 矛盾は Chat 報告
- Part D:Entry #15 追加
- 全更新後
~/.claude/scripts/validate_skill.pyで description 1024字チェック(無ければ Phase 3 で同梱) ~/.claude/scripts/regenerate_ssot_map.py再実行でアンカー辞書再生成- 完了報告を
~/working/_claude_workspace_global/reports/2026-05-15-phase3-completion.mdに配置
絶対遵守事項¶
- ❌ Code 単独で SKILL.md を「完成」扱いにしない(必ず Chat 事後レビュー)
- ❌ description 1024字超過のまま放置しない
- ❌ レポート・HANDOFF を
_claude_workspace_global/外に置かない - ✅ 各 SKILL.md 更新後、該当セクションを Chat に貼り戻す(二段構え)