位置付け: 本ファイルは Phase 0b で cp docs/_internal/adr_skill_setup/bizlink-domain.md .claude/skills/adr-kit/references/ で adr-kit の references ディレクトリにコピーされる。adr-kit の subagent / /adr-kit:lint / /adr-kit:migrate がコンテキスト読込時に参照する bizlp-gas-accounting 固有のドメイン補強 ファイル。

編集権限: sub workspace 担当 (本ファイル) → main session で adr-kit references/ にコピー時は手動で同期。

GAS 固有罠 (ADR 起案時に必ず確認)

clasp deploy のバージョニング

  • clasp deployWeb App / Add-on の不変バージョンを発行する。一度デプロイした version は上書き不可。
  • 本番反映は npm run deploy:prod、開発は npm run push:dev (こちらは clasp push のみで version は発行しない)。
  • ADR 本文に「v3 で deploy」のような記述を入れる場合、既存 version との衝突チェックを必須とする (gas/clasp/deployments の history を参照)。

appsscript.json の OAuth scope 変更

  • scope 追加は 既存ユーザーの再認可を要求する。サイレント追加は不可。
  • 監査要件のため、scope 変更を伴う ADR は以下を必ず記録:
    • 追加する scope 名 (例: https://www.googleapis.com/auth/drive.readonly)
    • 業務上の必要理由
    • 既存ユーザー再認可の周知タイミング
    • ロールバック手順
  • 関連: ADR-0013 (Env モジュールによる環境設定値の外部化)

Time-driven Trigger / 6 分制限

  • 1 関数の実行時間 6 分以内 (CLAUDE.md L34)。長尺処理は Properties に進捗保存 → Time-driven Trigger で chunk 化。
  • 累積 trigger 実行は 90 分/日が上限。ADR で「自動再実行間隔」を決める時に必ず累積消費を試算する。

LiteLLM マスキング層との整合性

ADR 本文での機密情報の扱い

ADR 本文に 以下を直接記載しない (LiteLLM マスキング前提):

  • 取引先名 (実名)
  • 金額 (実数値)
  • scriptId (Google Apps Script のスクリプト識別子)
  • OAuth Client ID / Client Secret
  • spreadsheet ID (本番)

代わりに マスク後の値 または 抽象化したカテゴリ を記録:

  • 取引先名 → 「主要 SaaS 取引先 A」「コンサルティング契約先 B」
  • 金額 → 「数十万円規模」「年間数百万円」
  • scriptId → 「dev / prod の 2 環境」
  • spreadsheet ID → Env.PROD_SHEET_ID のような抽象参照 (ADR-0013 準拠)

LangGraph node の callback 実装

src/llm/gateway.ts の Pre-call callback で以下を除去:

const SENSITIVE_PATTERNS = [
  /\b\d{4}-\d{4}-\d{4}-\d{4}\b/,        // クレジットカード番号
  /\bAKIA[0-9A-Z]{16}\b/,                // AWS Access Key
  /\bgho_[a-zA-Z0-9]{36}\b/,             // GitHub OAuth token
  /\b1[A-Za-z0-9_-]{43}\b/,              // Google スプレッドシート ID
  // 取引先名・金額は yaml の masked_terms リスト経由
];

マスキング失敗時は fail-fast (LLM 呼出自体を止める)。これは ADR-0019 の機密情報マスキング MUST 制約。

会計ドメイン用語集 (ADR 本文 / lint 時に参照)

用語意味参考 ADR
INVInvoice = 請求書 / 発生主義の SSoTADR-0001
STLSettlement = 決済明細 / 消込・天引き対象ADR-0015
JNLJournal = 仕訳ADR-0002
RPARPA エンジン = 仕訳自動生成のドメインサービス層ADR-0002
SSoTSingle Source of TruthADR-0001
期ずれaccrual period mismatch (発生月 ≠ 決済月)ADR-0006 / ADR-0014
消込clearing (INV と STL の対応付け、入金 / 支払の確定)ADR-0015
天引きdeduction (給与天引き / 振込手数料相殺など、ネット決済)ADR-0015
Action A / Action B仕訳エンジンの 2 段階処理 (A = 候補生成、B = 確定 + 副作用)ADR-0012 / ADR-0017
信号機判定財務健全性判定 (🔴/🟠/🟡/🟢/🔵)spec_bs §9
MVSMinimum Viable Salary (役員報酬下限監査)spec_bs §9
Tax-Adjusted Cash納税後の実質現預金 (信号機判定で使用)spec_bs §9
Cash Runway月次費用に対する現預金カバー月数MAS-008

既存 ADR との整合性ルール

  • 採番: ADR-0010 (3 桁番号体系) に従う。新規 ADR は LangGraph + GitHub Actions で採番 (ADR-0019)。Phase 0 の遺産 ADR 発掘で /adr-kit:migrate を使う場合のみ、adr-kit が採番する。
  • テンプレ: docs/adr/_template.md に従う。adr-kit の canonical-seven-section テンプレには 書き換えない (canonical 移行不採用 / ADR-0019)。
  • Status 遷移: ProposedAccepted (PR マージ時) / Rejected (PR Close 時) / Superseded by ADR-XXX (後続 ADR で更新)。
  • lint 4 ゲート: Completeness / Evidence / Clarity / Consistency。Phase 0 で全 ADR を /adr-kit:lint し、pass 率を lint_baseline.md に記録。

Notes for Successor の追記指示

ADR 本文末尾に「Notes for Successor」セクションを追加することを推奨 (RQ-038 推奨)。書く内容:

  • 「この ADR を更新する未来の自分 / 後継者へ」の注意点
  • 撤退条件で言及した監視指標の現在値 (Status: Accepted 時に追記)
  • 関連 ADR が後続で出た場合の参照リンク

例:

## Notes for Successor

- 本 ADR の撤退条件「LiteLLM Gateway 障害が月 1 回以上発生」を監視するため、Cloud Run の uptime metrics を月次レビューに含めること。
- 2026 年 Q4 に Cloudflare Workers の CPU time 制限が緩和された場合、Paid plan upgrade 不要になる可能性あり。再評価。

参照

  • ADR-0019 (docs/adr/0019-drp-migration.md)
  • ADR-0013 (Env モジュールによる環境設定値の外部化)
  • CLAUDE.md (Domain rules / GAS 固有制約)
  • spec_bs §9 (財務健全性信号機判定)
  • RQ-038 (docs/_internal/research_prompts/RQ-038_adr_skill_architecture_result.md)