.claude/settings.json clone 間 drift scan log
5 クローン並行運用 (ADR-0159 · main / doc / mas / ocr / drp / vlt の 6 clone 実測) における .claude/settings.json の drift を実測する記録。設定 file は gitignored (memory [claude-settings-json-gitignored]) のため git diff で検出できず、Local file system 上の直接読み比較でのみ差分検出可能。
- テンプレ SSoT:
scripts/hooks/settings.example.json(2504 bytes · 2026-07-03 最新) - セットアップ手順:
docs/_internal/05_how-to/hooks_setup.md - 検査方法: 各 clone の
.claude/settings.jsonを Read で並列取得 → テンプレとの diff で drift 検出
Scan #1 (2026-07-06 · vlt session 21 実測)
実測結果 (6 clone)
| clone | size (bytes) | mtime | name | permissions.allow (16 entry) | Stop hook | env override | 状態 |
|---|---|---|---|---|---|---|---|
| main | 1608 | 2026-07-04 22:40 | "main" | ❌ 欠落 | ✅ | なし | drift 1 種 |
| doc | 2392 | 2026-07-03 16:39 | "doc" | ✅ | ❌ 欠落 | CLAUDE_CODE_EFFORT_LEVEL: "max" | drift 1 種 (env override は意図的 · doc 固有) |
| mas | 1607 | 2026-06-23 20:09 | "mas" | ❌ 欠落 | ✅ | なし | drift 1 種 |
| ocr | 1553 | 2026-06-12 17:39 | ❌ 欠落 | ❌ 欠落 | ❌ 欠落 | なし | drift 3 種 (最古) |
| drp | 2351 | 2026-07-04 17:18 | "drp" | ✅ | ✅ | なし | ✅ テンプレ完全同期 |
| vlt | 2351 | 2026-07-04 22:24 | ❌ "main" (更新漏れ) → 修正済 "vlt" | ✅ | ✅ | なし | ✅ (name 修正で解消) |
drift の意義付け
permissions.allow欠落 (main / mas / ocr): テンプレの 16 script (adr-lint · adr-index · docs-nav-lint · adr-draft-lint · adr-lint-doc-consistency · handover-frontmatter-lint · check-adr-draft-checklist-sync の各 2 form) の allow-list が欠落 → 該当 script 実行時に permission prompt が頻発する。Claude Code CLI 起動時の使い勝手劣化 · session 中の作業速度低下要因。Stophook 欠落 (doc / ocr):context_budget_warn.shが発火しないため、session 終了時の context 使用率警告が働かず。60% 超え自動 close 発火の判断材料が失われる可能性。nameフィールド欠落 or 誤値 (ocr / vlt): テンプレには存在しない拡張 field だが、各 clone が「自分がどの clone か」を明示する運用値。誤値 (vlt = "main") は本 scan で修正済。ocr の欠落は本 scan では未修正。env.CLAUDE_CODE_EFFORT_LEVEL(doc のみ): doc clone 固有の運用値 · docs 執筆で max effort を default 化 · 意図的 drift = drift 扱いしない。
修正指示 (各 clone owner 用)
各 clone の owner (session 起動者) は次 session 開幕時に以下を実施:
- main clone:
scripts/hooks/settings.example.jsonのpermissions.allow16 entry を丸ごと.claude/settings.jsonにコピー · Stop hook は既にあるため他は変更不要 - mas clone: 同上 (
permissions.allow16 entry 追加) - ocr clone: (1)
"name": "ocr"追加 · (2)permissions.allow16 entry 追加 · (3) Stop hook block 追加 - doc clone: Stop hook block 追加 (
env.CLAUDE_CODE_EFFORT_LEVEL: "max"は温存) - drp clone: 変更不要 (完全同期)
- vlt clone: 本 scan で修正済 (
"name": "main"→"name": "vlt")
検査手順 (再現性)
次回 drift scan 実施時は以下の Bash 一括コマンドで size / mtime を比較:
ls -la /Users/ts_kuma/projects/bizlp/{main,doc,mas,ocr,drp,vlt}/.claude/settings.json
ls -la /Users/ts_kuma/projects/bizlp/vlt/scripts/hooks/settings.example.json
各 clone の詳細確認は Read tool で 6 file を並列取得し、permissions.allow の 16 entry 有無 + Stop hook block 有無 + name field の一致を目視で検査する。
時間コスト: 全 6 file 並列 Read + drift 分析 = 5-10 分 (context 消費 ~5-8k tokens)。
推奨実施頻度: セッションクローズ handover に「settings.json drift 状態」節が定着するまで、月 1 回 (毎月月初の main clone session で全 clone scan)。テンプレ (scripts/hooks/settings.example.json) 更新時は臨時 scan。
将来の drift 予防
drift 予防のための追加施策候補 (本 log 蓄積で優先順位確定後に着手):
- CI で
settings.example.jsonの change 検出時に全 clone 同期 handover を自動生成:.github/workflows/settings-template-drift-detect.yml(新設 · main clone 領分) でscripts/hooks/settings.example.jsonchange 検出 → 5 clone × handover 5 本を自動起票 (order-mechanical or order-needs-approval で分岐判断) .claude/settings.jsonの一部を git 追跡化: gitignored 制約を解いて hook 定義部分だけ track 対象化 (permissions.allowと Stop hook block を明示的に SSoT 化) · env override は Local 温存 pattern- Session 開幕 mechanical に drift 自己検査 step 追加: 各 clone 開幕時に
diff scripts/hooks/settings.example.json <(jq '{permissions:.permissions, hooks:.hooks}' .claude/settings.json)を実行し、drift 検出時は自動で警告表示
現状 (Scan #1) 検出 drift 5 種のうち 1 種 (vlt name) は本 scan で解消 · 残 4 種は各 clone owner の次 session 開幕時実施待ち。
関連 SSoT
- テンプレ SSoT:
scripts/hooks/settings.example.json(2504 bytes · 2026-07-03 最新) - セットアップ手順:
docs/_internal/05_how-to/hooks_setup.md - workspace 運用:
docs/_internal/05_how-to/workspace_rules.md(ADR-0181 · 6 列化) - 関連 memory:
[claude-settings-json-gitignored](.claude/settings.jsongitignored · env override 削除は再起動後有効化) - 関連 ADR: ADR-0159 (5 clone 並行運用) · ADR-0181 (vlt clone 新設 · 2026-07-01)