最終更新: 2026/06/22 18:56
BizLink ドメイン素材 (adr-kit references/ コピー用)
位置付け: 本ファイルは 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 deployは Web 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) - 業務上の必要理由
- 既存ユーザー再認可の周知タイミング
- ロールバック手順
- 追加する scope 名 (例:
- 関連: 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 |
|---|---|---|
| INV | Invoice = 請求書 / 発生主義の SSoT | ADR-0001 |
| STL | Settlement = 決済明細 / 消込・天引き対象 | ADR-0015 |
| JNL | Journal = 仕訳 | ADR-0002 |
| RPA | RPA エンジン = 仕訳自動生成のドメインサービス層 | ADR-0002 |
| SSoT | Single Source of Truth | ADR-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 |
| MVS | Minimum 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 遷移:
Proposed→Accepted(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)