CLAUDE.md から外出し。複数の clone(main / doc / ocr / drp)および Claude Code web/モバイル を併用する際のコンフリクト防止運用。

構造の SSoT(機械可読)は同ディレクトリの workspace_manifest.yaml。リポ/クローン/ドメイン/役割/スペースの対応・共有書き込み面はそちらが大元で、本ファイルは人間向けの解説とファイル担当マトリクスを担う(対で読む)。

前提

同一モノレポ(bizlp-gas-accounting)を複数の別 clone に分離して並行運用する(worktree は git 操作が干渉しやすいため非推奨)。各 clone はリポ全体のフル clone で、役割でファイル編集境界を分ける。

~/projects/bizlp/main/   ← main (orchestrator — ADR/DRP 起案・横断 docs・CI 配線・tasks/prompts inbox 発火)
~/projects/bizlp/doc/    ← doc (ドキュメント担当)
~/projects/bizlp/mas/    ← mas (MAS ドメイン専属・GAS 会計本体。ADR-0159 で新設・2026-06-20)
~/projects/bizlp/ocr/    ← ocr (OCR ドメイン専属)
~/projects/bizlp/drp/    ← drp (Decision Pipeline 専属。2026-06-17 新設)

~/projects/bizlp/{main,doc,ocr,drp} へ集約済(Phase D・2026-06-17)。パスは個人マシン固有のため CLAUDE.local.md(gitignore)が正典。

呼称: 役割名は docADR-0156 で sub から統一・dir 名と一致)。handover 命名 sub_ / _to_sub と hook の role 文字列は段階移行中で当面 sub 系も有効(新規分は doc_ / _to_doc を正、Phase 5 で sub 側を削除)。

個人マシン固有のパスは CLAUDE.local.md(gitignore)に記述する。

実行環境と役割の対応

実行環境作業ディレクトリ(clone root を開く)役割
ローカル Mac (main clone)bizlp/mainmain(orchestrator — ADR/DRP 起案・横断 docs・CI 配線・tasks/prompts inbox 発火。GAS 実装は行わない・ADR-0159)
ローカル Mac (doc clone)bizlp/docdoc(ドキュメント担当)
ローカル Mac (MAS clone)bizlp/masMAS ドメイン専属の実装担当(main 相当)。mas/ 配下で完結。GAS 実機検証 (Sheets) は手動。ADR-0159 で新設 (2026-06-20)
ローカル Mac (OCR clone)bizlp/ocrOCR ドメイン専属の実装担当(main 相当)。ocr/ 配下で完結し webapp_client を触らない。merge = 即本番デプロイ
ローカル Mac (DRP clone)bizlp/drpDRP ドメイン専属の実装担当(main 相当)。drp/ 配下で完結。merge = 即本番デプロイ
Claude Code web / スマホアプリクラウド上の clonedoc(GAS 実装は行わない。ドキュメント・TODO 管理専用)

即本番ドメイン(drp/ocr)は clone root を開いても、drp/**ocr/** を触ると .claude/rules/{drp,ocr}.md が「merge = 即本番」等の安全則を自動ロードする(root 開きでも死守)。完全なドメイン規約は nested {drp,ocr}/CLAUDE.md が単一所在。

コンフリクト防止 4 原則

  1. ファイルの担当を分ける — 下記マトリクスに従う
  2. docs/_internal/TODO_future.md は片方だけが触る — 最もコンフリクトが起きやすいファイル
  3. マージ前に相手の PR を先に取り込むgit pull origin main してから PR 作成
  4. 同じファイルを同時編集しない — コンフリクトの根本原因

ファイル担当マトリクス

編集可 = ○ / 読み取り専用 = ×。書き込み担当は必ず最新 main から分岐してから着手する。表の列は main (orchestrator) / doc (docs) / mas (GAS 実装) / ocr (OCR 実装) / drp (DRP 実装) の 5 役割 (ADR-0156 / ADR-0159)。

パスmaindocmasocrdrp備考
mas/000_infra/mas/900_test/ (GAS コード全般)××××GAS 実装は mas クローン専属 (ADR-0159)。mas/ ディレクトリは origin 上で 5 クローン共有だが編集権限は mas のみ。
webapp_client/src/**, mas/templates/*.html××××UI 実装 (React + GAS HtmlService) は main 残置 (Vite/Playwright/TS スタックで GAS と無関係)。webapp_client/scripts/sync-engines.mjsmas/400_domain → src/engines/ 経路は同一 origin/同一 commit の共有で機能 (Phase b で runbook 化・ADR-0159 §5.3)。OCR フロントは ocr/ocr-bench/ へ移設済。
ocr/**××××OCR クローン (bizlp/ocr) 専属。Cloudflare Worker 独立ドメイン。規約は nested ocr/CLAUDE.md、merge = 即本番デプロイ
drp/**××××DRP クローン (bizlp/drp) 専属。Cloudflare Worker 独立ドメイン。規約は nested drp/CLAUDE.md、merge = 即本番デプロイ。triagescripts/lib/adr-lint-rules.mjs を import・prompts/production/** を参照 (読み取り)
docs/spec/sidebar_api.d.ts××main と MAS と OCR クローンの共有契約 (OcrBench* 型は main↔OCR / GAS engines 型は main↔MAS)。変更時は編集直前の git pull origin main + 相互調整が必要
mas/appsscript.json / .claspignore / .clasp.dev.json / .clasp.prod.json××××clasp 設定は mas クローン専属 (ADR-0159)。tracked ファイルは 5 クローン共有だが編集権限は mas のみ。
root package.json (npm scripts)××××orchestrator 領分。GAS push / deploy scripts 9 件 (push:dev / push:prod / deploy:dev / deploy:prod / switch:dev / switch:prod / open:dev / open:prod / status) は ADR-0159 Phase b で main から削除し mas クローン側 package.json に新設 (main から GAS push する経路を持たない運用ガード)。
scripts/** (docs-build.mjs / docs-vectorize.mjs / GAS・デプロイ・パイプライン・prompt 系等。下 2 行の docs lint 6 点・docs 専用生成器は除く)××××ビルド・CI・デプロイ・検索インデックススクリプトは main 専属 (orchestrator)
scripts/adr-lint.mjs / scripts/lib/adr-lint-rules.mjs / scripts/frontmatter-schema.json / scripts/docs-nav-lint.mjs / scripts/docs-link-check.mjs / scripts/adr-lint-doc-consistency.mjs×××両方可 (docs 関連 lint・スキーマ)。編集直前に必ず git pull origin mainCI で全 PR に走るため破壊は main の PR も赤化する点に注意。CLI インターフェース変更で .github/workflows/** の修正が要る場合は [cross-workspace]
scripts の docs 専用生成器・索引 (generate-docs-index.mjs / generate-domains-list.mjs / generate-coverage-gaps.mjs / adr-index.mjs / rq-index.mjs / doc-inventory.mjs / generate-doc-news.mjs)×××両方可。編集直前に必ず git pull origin mainCI --check で全 PR に走るため破壊は main の PR も赤化。出力フォーマット・CLI 契約の変更で .github/workflows/** の修正が要る場合は [cross-workspace]生成器ロジック自体の改修は本マトリクス整備とは別 PR。検索インデックス (docs-vectorize.mjs) は対象外で main 専属
.github/workflows/**××××CI workflow は main 専属 (orchestrator)
docs/architecture/**, docs/domains/**, docs/data/**, docs/operations/**, docs/implementation/**××××公開構造ドキュメントは doc 専属
docs/adr/**××××ADR は doc 専属。Accepted 後本文は Immutable (ADR-0031 パターン)、誤字修正は corrigendum 注記で対応
docs/_internal/** (ADR-0045 で再編、01_discovery/ / 02_project/ / 03_decisions/ / 04_specs/ / 05_how-to/ / 06_ops/ / biz/)××××内部運用ドキュメントは doc 専属。02_project/TODO_future.md が最コンフリクトリスク
docs/AGENTS.md / docs/README.md / docs/SUMMARY.md / docs/index.md / docs/COVERAGE_GAPS.md××××docs エントリポイント系は doc 専属
docs/_config.json×××両方可。新規 nav 登録は ADR-0055 形式 (<NS>.<group_number>.<page_index>)。編集直前に必ず git pull origin main
CLAUDE.md5 クローン共有 SSoT。編集直前に必ず git pull origin main
tasks/prompts/**5 クローン共有 (handover は全役割が起票・消費する)。本番プロンプト管理対象外の運用プロンプト (ADR-0132)。役目を終えたら消費者が同一 PR で archive/ へ退避 (ADR-0134)。規約の正典 = tasks/prompts/README.md
CLAUDE.local.mdワークスペース個別ワークスペース個別ワークスペース個別ワークスペース個別ワークスペース個別gitignore。個人パス・MCP 設定。担当境界 (編集可否) は本マトリクスへ委譲し重複転記しない (gitignore の重複は per-clone でドリフトするため。役割列を参照するだけに留める)
.claude/ (hooks / skills / settings.json)ワークスペース個別ワークスペース個別ワークスペース個別ワークスペース個別ワークスペース個別各ローカル設定。互いに干渉しない

例外運用

  • 担当外ファイルを触る必要が出た場合は、相手のワークスペースが未コミットの作業を持っていないか事前確認する
  • 緊急バグ修正等で main / doc / mas / ocr / drp の担当境界を一時的に越える場合は、PR タイトルに [cross-workspace] を付記
  • Claude Code web / スマホからは GAS コードを触らない。CLAUDE.md L「Workspace 運用」と本ファイルが示す doc 範囲(ドキュメント・TODO・改善提案)に厳守
  • main クローンは orchestrator (ADR-0159)・GAS 実装は mas クローン担当。main 側から cd mas && clasp push 等を実行すると scripts/hooks/pre_bash_guard.sh の cwd 判定で permissionDecision=ask が返る (運用ガード・Phase c で実装)。
  • 各クローンの CLAUDE.local.md は本マトリクスを重複転記しない(委譲方式)。CLAUDE.local.md には役割(main/doc/mas/ocr/drp)・個人パス・MCP のみを書き、編集可否は本ファイルの役割列を引く。理由: CLAUDE.local.md は gitignore で git 追従しないため、マトリクスを転記すると本ファイル更新時にドリフトする。既存クローンで転記が残っている場合は一度きり除去すれば以後は自動追従(git pull のみ)になる

Claude スペースの掃除

Claude スペース(~/.claude/projects/ 配下・cwd ごとに自動生成される履歴)は GCS(gs://bizlp-claude-conversations)へ日次同期される。次のスペースは安全に削除してよい(削除前に最新同期 OK を必ず確認):

  • 削除済みディレクトリを cwd に持つ「幽霊スペース」
  • 実体の無い .claude-worktrees を指す worktree スペース(worktree 運用は非推奨)
  • 一時 /private/tmp/... 等のスクラッチスペース

アクティブな clone のスペースは削除しない。

ローカル環境の絶対パス

個人マシン固有のパス・clasp 認証情報・MCP 接続設定は CLAUDE.local.md(gitignore)に置く。 リポジトリ内の CLAUDE.md には記述しない(複数環境で同じ CLAUDE.md を共有するため)。

参考テンプレート: CLAUDE.local.md.example