変更履歴一覧
各ドキュメントに記載された変更履歴を新しい順に集約したページです。
エントリ書式 (2026-05-08〜 構造化形式)
本セクション導入 (PR #518) 以降の新規エントリは H3 見出し + YAML コードブロック + 散文 のハイブリッド形式で「直近の変更」セクションに newest first で追加する。LLM/スクリプトからの機械パースと人間の可読性を両立する。
スキーマ
date: YYYY-MM-DD # 必須
pr: <number> # 必須 (PR なしは null)
category: <enum> # 必須: feat / fix / refactor / docs / chore / hooks / test / migration
importance: <enum> # 必須: low / mid / high / breaking
files: # 必須: 主要変更ファイル (10+ は代表 + 他 N 件 で省略可)
- path/to/file.js
tags: # 任意: 横断検索ラベル (claude-md / cross-workspace / env-module 等)
- tag1
H3 見出し書式: ### YYYY-MM-DD — PR #NNN — \
複数 PR で 1 つの変更を記録する場合は最新 PR を主とし、本文で関連 PR を参照。 レガシーエントリ (2026-04-12 〜 2026-05-08) はテーブル形式のまま保持 (レガシーエントリ)。
直近の変更
2026-06-22 — PR #TBD — chore — mid (ドキュメントサイト URL の /bizlp-gas-accounting/ サブパス撤去)
date: 2026-06-22
pr: TBD
category: chore
importance: mid
files:
- docs/_config.json
- docs/README.md
- docs-search-worker/public/inject.js
tags:
- docs-site
- basepath
- cf-pages
ドキュメントサイトの公開 URL を https://docs.bizlp.dev/bizlp-gas-accounting/<slug> → https://docs.bizlp.dev/<slug> に短縮 (1 リポジトリ専用ドメインのためサブパス不要)。docs/_config.json の basePath を "" に変更し、scripts/docs-build.mjs は basePath が空の場合 _site/ 直下に出力 + 内部 href を /<slug> 形式で生成する既存挙動をそのまま利用 (build スクリプト改修なし)。docs-search-worker/public/inject.js の pathToHref のプレフィックスを /bizlp-gas-accounting/ → / に。docs/README.md の公開 URL 表記更新。Cloudflare Pages 側設定 (Build output directory = _site) は無変更で OK。旧 URL /bizlp-gas-accounting/... からのリダイレクトは設けない (社内サイト・直近で稼働開始したばかり)。生成物 (_internal/06_ops/doc_{changelog,news}/index.md) は別走の auto-sync workflow が再生成。
2026-06-22 — PR #TBD — feat — mid (ドキュメントサイトを CF Access(Entra ID) で保護 — コード側完了)
date: 2026-06-22
pr: TBD
category: feat
importance: mid
files:
- docs-search-worker/src/index.ts
- docs-search-worker/public/inject.js
- docs-search-worker/wrangler.toml
- scripts/docs-build.mjs
- scripts/docs-vectorize.mjs
- .github/workflows/docs-vectorize.yml
- docs/_internal/05_how-to/cf-access-docs-setup.md
- docs/_internal/05_how-to/docs_local_preview.md
- docs/_config.json
tags:
- cf-access
- entra-id
- docs-site
- docs-search-worker
ドキュメントサイト (bizlp-gas-accounting.pages.dev) と docs-search-worker (検索 / RAG / inject.js 配信) を Cloudflare Access + Entra ID 認証で保護するためのコード側対応。OCR Bench Phase 3 (#1689/#1691) と同じ Entra IdP を再利用する。設計の要点: docs サイト本体を docs.bizlp.dev カスタムドメインへ移し、docs-search-worker を Worker Route で docs.bizlp.dev/api/* に同居させる。これによりブラウザは同一オリジン fetch + Access cookie 自動添付で動き、worker 側に JWT 検証コードを持つ必要が無くなる (エッジ完結)。変更内容: worker から basicAuth ミドルウェア・CORS・AUTH_USER/PASSWORD/CORS_ORIGIN bindings を撤去し、Hono を basePath('/api') に。inject.js から Basic 認証 UI / localStorage credential / Authorization ヘッダを撤去。wrangler.toml に routes = [{ pattern = "docs.bizlp.dev/api/*", zone_name = "bizlp.dev" }] + workers_dev = false。scripts/docs-build.mjs の script タグ既定 URL を https://docs.bizlp.dev/api/inject.js に。scripts/docs-vectorize.mjs を CF Access service token (CF-Access-Client-Id/Secret) 経由 /api/ingest に切替。.github/workflows/docs-vectorize.yml の secret を DOCS_SEARCH_CF_ACCESS_CLIENT_ID/SECRET にリネーム。残ユーザー作業: (1) Pages カスタムドメイン docs.bizlp.dev 追加, (2) Zero Trust に docs.bizlp.dev 用 Access app 作成 (既存 Entra IdP 再利用), (3) Service Token 発行 + Allow Service Tokens policy 紐付け, (4) gh secret set DOCS_SEARCH_CF_ACCESS_CLIENT_{ID,SECRET}, (5) .pages.dev 直叩きの Block アプリ追加 (任意)。手順書 = docs/_internal/05_how-to/cf-access-docs-setup.md。既知の制約: Pages preview URL は別ホストかつ Access 範囲外のため検索機能が動かない (本番のみ動作 / 仕様)。ADR 起票なし (OCR Bench と同じ社内インフラ範疇 + ADR-0096/0110 の延長線上)。
2026-06-18 — PR #2132 — fix — mid (ADR-0149 Phase 2 — coverage-gaps-sync の health 観測ギャップを塞ぐ)
date: 2026-06-18
pr: 2132
category: fix
importance: mid
files:
- .github/workflows/coverage-gaps-sync.yml
tags:
- adr-0149
- coverage-gaps
- ci-observability
coverage-gaps-sync.yml の 2 つの観測ギャップを塞いだ。(1) backstop 取りこぼしの素通り: 生成器 backstop の exit 1(現役 handover 数 ≠ ページ生成数 = 抽出層破損)で regen step が落ちると、health-issue 起票が暗黙の success() ゲートで skip され最も重大な失敗が issue 化されなかった → 生成器の実行のみ set +e で errexit を外し終了コードを PIPESTATUS で捕捉、起票 step に !cancelled() を付与して落ちても走らせ、grep に 硬い保証違反 を追加。(2) フォールバック率超過が push/cron に出ない: 段階施行(契約4)の % を超過 warn は --check 経路のみだった → 生成成功時に --check を追走させ regen.log に観測を載せ、grep に % を超過 を追加(率超過のみ拾い、個別未構造 warn の誤起票は避ける)。issue 本文の想定原因にも両ケースを追記。検証: YAML パース + regen step の shell ロジックを 4 シナリオ(success / backstop / 急減 / 率超過)でローカル再現。
2026-06-18 — PR #2129 — fix — low (ADR-0145 — 太字で囲んだ正準マーカーを canonical 判定)
date: 2026-06-18
pr: 2129
category: fix
importance: low
files:
- scripts/lib/coverage_gaps_extract.mjs
- tests/coverage-gaps-extract.test.mjs
tags:
- adr-0145
- coverage-gaps
## **残タスク(優先順)** のように太字/下線で囲んだ正準マーカーが MARKER_RE に一致せず synonym へ降格していた latent 不具合(現役データに該当なし)を修正。extractResidual の tier1 判定の直前で行から **/__ を剥がしてから判定し、装飾付きでも canonical を維持する。回帰テストを追加。
2026-06-18 — PR #2121 / #2122 — feat — mid (ADR-0149 Phase 1 — handover 宛先役割の第1層表示で「main だけで絞る」を可能に)
date: 2026-06-18
pr: 2121
category: feat
importance: mid
files:
- scripts/generate-coverage-gaps.mjs
- tests/coverage-gaps-generator.test.mjs
- tasks/prompts/handover_2026-06-18_coverage-gaps-hybrid-contract-done_next-session.md
tags:
- adr-0149
- coverage-gaps
- role-precision
COVERAGE_GAPS ページの役割タグを二層に分離した。第1層(ファイル由来で信頼できる・見出しの主バッジ)= ファイル名の宛先 suffix(_to_main/_to_sub/_to_drp/_to_ocr)と frontmatter target_session 由来の宛先役割(main/doc/drp/ocr/main+doc/役割未指定)。宛先 suffix を frontmatter より優先し、hook session_start_prompts.sh の inbox 振り分けと整合させる。過去 handover の sub 表記は doc に統合(ADR-0156)。冗長な値 claude-code (… DRP …) 等は最初に現れた役割語で判定。第2層(補助)= 従来のタスク文面キーワード推定(classifyTaskRole)は、宛先が未指定のときだけ (task推定 …) で添える。冒頭サマリに「宛先別 handover」行を追加。効果(実データ 23 本): 宛先別 = main 4 / doc 9 / drp 2 / ocr 2 / main+doc 1 / 役割未指定 5。drp/ocr 宛て handover が main フィルタを濁さなくなり「main だけで絞る」が効くようになった(従来は per-task 推定の未分類過多で絞れなかった)。第1層の役割導出(suffix / frontmatter / 冗長値 / 優先順位 / 未指定時の補助表示)を統合テストに追加(node --test 計 25 件 pass)。PR #2122 で、完了に伴い出典 handover の残タスク節から当該タスクを消化(ADR-0134)。生成物 docs/COVERAGE_GAPS.md は coverage-gaps-sync.yml が merge 後に再生成するため PR 非対象。
2026-06-18 — PR #2115 — feat — mid (ADR-0145 ハイブリッド契約 — handover 残タスク抽出の取りこぼしゼロ化)
date: 2026-06-18
pr: 2115
category: feat
importance: mid
files:
- scripts/lib/coverage_gaps_extract.mjs
- scripts/generate-coverage-gaps.mjs
- tests/coverage-gaps-extract.test.mjs
- tests/coverage-gaps-generator.test.mjs
- .github/workflows/adr-lint.yml
- docs/_internal/05_how-to/handover_prompt_guide.md
- docs/COVERAGE_GAPS.md
tags:
- adr-0145
- adr-0149
- coverage-gaps
- extraction-completeness
ADR-0145 ミニ改訂(PR #2097)で決定したハイブリッド契約を生成器に実装。抽出ロジックを純関数 coverage_gaps_extract.mjs に切り出し、3 tier 化した: 正準マーカー「## 残タスク(優先順)」→ 同義見出し(「次にやること」「次の一手」「残り」「残っている設計判断」「継続タスク」「未着手」「未完」等を実データ較正で吸収)→ フォールバック(抽出不能でも「未構造・要マーカー」行で必ず掲載)。entry 数が現役本数と一致しない取りこぼし時は exit 1 で CI fail(抽出層の破損検知 backstop)。--check は未構造 handover を列挙し、フォールバック率が 20% を超えたら推奨マーカーへの寄せを督促(段階施行)。同義抽出は「入れ子でない残タスク見出しを文書順に全選択」する方式で、雑務 H2 が本命 H3 を押し負かす取りこぼし(trust-science)や兄弟 H2 の脱落(conv-archive の bigquery MCP)も拾う。抽出層 fixture 20 件 + 生成器の子プロセス統合テスト 3 件を adr-lint workflow に配線(硬い保証の不変条件を PR ゲートで担保)。効果: 現役 23 本のうちページ掲載は従来 4 本(マーカー節保有のみ)→ 全 23 本(正準 8 / 同義 13 / 未構造 2)。ADR-0145 追加 KPI「現役 handover のうちページ未掲載 0 件」を達成。4 観点の敵対的レビューで取りこぼし 2 件を発見・修正済み。
2026-06-18 — PR #2102 / #2105 / #2108 — refactor — mid (ADR-0156 Phase 1+3 — ワークスペース役割名 sub→doc 統一を main 実装)
date: 2026-06-18
pr: 2105
category: refactor
importance: mid
files:
- scripts/hooks/session_start_prompts.sh
- scripts/generate-coverage-gaps.mjs
- .claude/agents/main-operator.md
- docs/adr/0156-unify-workspace-role-names-sub-to-doc.md
tags:
- adr-0156
- hooks
- workspace
ADR-0156 の main 領分を実装。Phase 1(#2102): session_start_prompts.sh の役割判定 case に集約後の素 dir doc/sub を追加し、doc クローンの role=main 誤判定を解消。Phase 3(#2105): hook の role 文字列を sub→doc 化、宛先 grep を sub/doc 両対応(doc は過去 sub_/_to_sub と新 doc_/_to_doc を受信、main は両者を除外)、生成器 generate-coverage-gaps.mjs の役割ラベルと displayTopic を両対応化、main-operator.md の境界記述を main/doc に。Impl Status(#2108): ADR-0156 を In Progress (Phase 1-3 完了 / Phase 4-5 残) に更新。残=Phase 4(doc・corrigendum)、Phase 5 と乖離予防 lint(main)。doc 側は #2103(Accepted 化)/ #2104(Phase 2)を並行実施済み。
2026-06-17 — PR #2058 / #2063 / #2064 — feat — mid (ADR-0110 PR3 — DRP 認証を CF Access service token へ)
date: 2026-06-17
pr: 2064
category: feat
importance: mid
files:
- drp/wrangler.toml
- scripts/draft_push.sh
- scripts/poll-pipeline.sh
- .github/workflows/drp-trigger.yml
- .github/workflows/drp-real-e2e.yml
- drp/test/e2e/real/toggle_test.mjs
- drp/docs/cf-access-setup.md
tags:
- drp
- cf-access
- adr-0110
ADR-0110 PR3 を実施。DRP の custom domain を decision-pipeline.bizlp.dev から drp.bizlp.dev へ一本化 (#2058)。呼び出し元スクリプト (draft_push.sh / poll-pipeline.sh) と CI の API 呼び出し (drp-trigger) を Basic から CF Access service token (CF-Access-Client-Id/Secret) へ切替 (#2063 / #2064)。real e2e (Playwright ブラウザ) は CF Access の service token がブラウザの document navigation で効かない (edge が無視し worker が Basic 401) ため workers.dev + Basic 経路を継続。残: 手順8 (workers_dev=false)・real e2e のブラウザ認証再設計・ADR-0110 本文 URL の注記。
2026-06-16 — PR (cross-workspace) — docs — mid (ADR-0143 CV 第 1 段の撤回 — sub 専属ドメインの docs 戻し)
date: 2026-06-16
pr: null
category: docs
importance: mid
files:
- docs/adr/0143-cross-validation-critical-must-two-stage-early-socratic.md
- docs/adr/0154-revert-early-rollback-stage-of-two-stage-cross-validation.md
- docs/_internal/05_how-to/adr_structure_pyramid_principle.md
- docs/_internal/05_how-to/operator_guide_langgraph.md
- docs/adr/INDEX.md
- docs/adr/adr-index.json
tags:
- adr-0143
- adr-0154
- decision-pipeline
- drp
- cross-workspace
ADR-0143 (Cross-Validation の critical×Must 判定を 2 段化し第 1 段を socratic 直後・body 前に前倒し) はパイロットで K.O.(撤退条件 FPR ≤ 5% に対し実測 40〜100%・cv_reject と FP の確信度分布が完全重複)となり、ADR-0154 で撤回・実装中止が受理された (PR #2046 merge・merge commit e109e0eb)。本変更はその撤回に伴う sub 専属ドメインの docs 戻し。① ADR-0143 の Implementation Status を Reverted 化 + 撤回注記 (Corrigendum・本文 Immutable のため決定本文は変更せず ADR-0154 を正典として参照)。② ADR-0154 の Status を Accepted (merge=受理規約)・Implementation Status を Done 化。③ 構造正典 §G-1 ③ の「CV 2 段実行」注記を除去し本番 CV 単一段の記述へ戻す。④ operator_guide §4.3.3 を受付プリゲート (ADR-0142 本番稼働分) 専用に、§7.15 を受付プリゲートの人手確認ルーブリック専用に外科整理 (0142 分は残し 0143 固有分のみ除去)。⑤ adr-index 再生成。第 1 段の本番コードは K.O. で着手前のため物理削除は N/A。残論点台帳 Q3 は ADR-0143 起票時に既に行削除済みで 0143 を指す残存記述なし (Q3 は閉じたまま・終端 = ADR-0154)。main クローンからの cross-workspace 編集 (sub の未コミット作業なしを事前確認・workspace_rules L66)。
2026-06-15 — PR #2035 — docs — mid (ADR-0150 Phase c — 「Pipeline 補強一覧」承認の所在を正典/operator_guide へ反映)
date: 2026-06-15
pr: 2035
category: docs
importance: mid
files:
- docs/_internal/05_how-to/adr_structure_pyramid_principle.md
- docs/_internal/05_how-to/operator_guide.md
- docs/adr/0150-socratic-enhancement-as-cv-justification-unify-pr-approval.md
- .claude/skills/drp-ops/SKILL.md
tags:
- adr-0150
- decision-pipeline
- drp
ADR-0150 (socratic 由来の本文補強を Cross-Validation の正当根拠と認め、承認を PR 終端へ一本化) の Phase c (docs)。Phase a (#2032: CV の BODY-ONLY を adopted-mechanism 例外付きに改修) と Phase b (#2033: PR「Pipeline 補強一覧」自動列挙 + 未チェックで merge をブロックする CI adr-reinforcement-checklist + 純粋関数 pipeline_reinforcement.ts) は本番デプロイ済み。本 PR は承認の所在の移動を正典へ反映する: 正典 §G-1 の ④受理行へ「Pipeline 補強一覧の項目単位の明示承認」を追加・§G-3 に bodyOnlyMitigation の ③審査→④受理 への権限移動を実例として明記、operator_guide §4.4 マージ前チェックリストへ補強一覧の確認・チェック手順を追加、ADR-0150 の Implementation Status を In Progress (Phase a/b 済) へ更新。あわせて Phase b の本番デプロイで失効した drp-ops Skill の target_drp_version を新デプロイ SHA へ同期 (手順は DRP の API 面に変更がなく有効)。残: adr-reinforcement-checklist を required check に登録する branch protection は web UI 作業。
2026-06-15 — PR #2022 — docs — low (DRP-382 を修正完了へ移送 — webhook 冪等化は PR #1722 で対応済)
date: 2026-06-15
pr: 2022
category: docs
importance: low
files:
- docs/_internal/02_project/BUG_tracking.md
tags:
- bug-tracking
- drp
DRP-382 (/chat/create-pr (webhookNode) の非冪等バグ) を BUG_tracking.md の未着手→修正完了へ移送。調査の結果、PR #1722 (4f7f6122・元目的は断続 401 での多段 GitHub 操作の途中再開) の resume ロジックが本シナリオ (branch/file/PR 既存での 422 詰み) を構造的に解消済みと判明 — branch 既存は catch 続行・file 既存は sha 付き更新・open PR 既存は再利用 (webhook.ts L99/L119/L182)。冪等性 unit test の追加は vitest-pool-workers の langchain 依存制約 (Phase 0) で collect 不可のため、コード精査での確認に留め回帰テスト欄に明記した。サマリー件数 28→29 / 未着手 6→5。
2026-06-15 — PR #1993 — feat — high (ADR-0146 Phase a / PR 1: 決定の早わかりを受理後生成の派生ビューにする)
date: 2026-06-15
pr: 1993
category: feat
importance: high
files:
- scripts/generate-quick-summary.mjs
- prompts/quick-summary/prompt.md
- scripts/docs-build.mjs
- .github/workflows/adr-quick-summary.yml
- tests/quick-summary.test.mjs
- .github/workflows/adr-lint.yml
- .gitignore
tags:
- adr-0146
- quick-summary
- ci
- docs-build
ADR-0146 の移行順序 (a) を実装 (全 3 PR の 1 本目)。早わかりを ADR 本文から外し、受理済み本文から claude-opus-4-8 で生成する派生ビューにする。生成器は本文 (決定/コンテキスト/影響) + frontmatter を入力に結論先行・疑問形ラベル 8 箇条以内を生成し docs/adr/.quick-summary/<id>.json へ保存 (本文 .md には書き戻さない)。docs-build は生成 JSON を読んで ADR ページ冒頭へ注入するが、本文内に早わかり節/TL;DR が残る ADR はスキップする (PR 2 で本文削除後に有効化)。CI (adr-quick-summary.yml) は main マージを引き金に確定本文から生成し PR 説明へ <!-- adr-quick-view --> 付きで掲示 (既存 ANTHROPIC_API_KEY 再利用・新規 secret なし)。プロンプトは production 外で KV push 対象外・審査パイプラインと切り離した独立方式。地雷: skip 判定は H2 以下の見出しに限定 — H1 タイトルの「早わかり」語 (ADR-0146/0138/0139/0140/0107) を誤検出すると恒久スキップになる。次 Phase: PR 2=本文 29 本削除、PR 3=再出現検査の ERROR 昇格、後始末 5 点、body_generation プロンプト調整 (KV/worker 連動)。
2026-06-15 — PR #1976 — docs — mid (週次レビュー 2026-W24 初回観測記録)
date: 2026-06-15
pr: 1976
category: docs
importance: mid
files:
- docs/_internal/06_ops/weekly_review/2026-W24.md
- .docs-nav-lint-allowlist.json
tags:
- doc-ops
- weekly-review
- sub
週次レビュー枠組み (PR #1973) の初回稼働。対象週 2026-W24 (06-08〜14) を観測・記録。実データで埋まる項目1 (skip-news 3件/誤除外0)・項目2 (早わかり)・項目5 (幽霊117件・件数ガード発火0) を記入し、項目3 (保有率)・項目4 (メタ完全性) は backfill/生成器待ちで空欄。重要観測: ADR-0146「早わかりを派生ビューへ抽出」受理により、項目2 (ADR-0138 §5.2 形骸化指標) の前提が W24 中に変化したことを検知 — 正式判定節目 (07-11) までに測り方の見直しを要する可能性。週次インスタンス (YYYY-Www.md) は生データ慣行に倣い nav 非登録とし、allowlist パターンで R1 WARN を抑制。
2026-06-14 — PR #1973 — docs — mid (DOC-OPS-33: ドキュメント運用 週次レビューの枠組み整備)
date: 2026-06-14
pr: 1973
category: docs
importance: mid
files:
- docs/_internal/06_ops/weekly_review/index.md
- docs/_internal/06_ops/weekly_review/template.md
- docs/_config.json
- docs/_internal/02_project/TODO_future.md
tags:
- doc-ops
- weekly-review
複数 ADR (0136/0138/0140/0107/0149) が個別に Confirmation で「月次集計」を要求するが、記録先が分散・統一フォーマット無し・一度も未実行だった。加えて月次では今の高頻度フェーズ(数日で ADR 受理)に追いつかないため、運用を週次へ前倒しし週次レビューの SSoT (weekly_review/) を新設。観測カレンダー(今週から観測 → ADR 規定の判定節目 2026-07-11〜 で正式判定)と週次記入テンプレートを整備し nav O.03.8/O.03.9 登録。handover 2026-06-14 残タスク「月次集計の初回」は受理直後では時期尚早だが、週次なら今週から積み上げられる。ADR の月次規定は将来 amendment 候補(運用=週次・ADR 本体は据え置き)。
2026-06-13 — PR (open) — feat — mid (ADR-0148: パイプライン生成 ADR の型付き辺・相手側逆辺・status を autofix で自動反映)
date: 2026-06-13
pr: null
category: feat
importance: mid
files:
- scripts/lib/adr_edge_autofix.mjs
- scripts/pipeline-adr-autofix.mjs
- tests/adr-edge-autofix.test.mjs
- .github/workflows/pipeline-pr-autofix.yml
- .github/workflows/adr-lint.yml
tags:
- adr-0148
- adr
- ci
ADR-0148 の実装。受理 PR ごとに手作業だった「本文 References の型付き辺 → frontmatter 転記 + 相手側 ADR の逆辺・status 書き換え」を pipeline-pr-autofix CI に組み込み、人手ゼロで ADR-0131 のグラフ衛生を満たす状態にした。
- pure module 新設 (
scripts/lib/adr_edge_autofix.mjs): References の型付き辺箇条 (- **supersedes**: ADR-NNNN (説明)) を parse。target は**edge**:直後の最初の ADR-NNNN に限定し、説明文中の別 ADR 番号 (入れ子括弧[ADR-0105/...]含む) は target に混ぜない。forward 7 種のみ拾いdepends_on・conflicts_with: なしのような非太字行は辺としない。frontmatter 転記 / 相手側逆辺追記 / supersede 時の status 系 3 点書き換え (frontmatterstatus: superseded+ 本文太字メタ Status を「Superseded by ADR-NNNN (概要・日付。元の受理 = 元文言)」へ・元文言を括弧内保持) を提供。 - orchestrator (
pipeline-adr-autofix.mjs): PR で追加された ADR を git diff で self とし、in-memory map で自己転記 + 相手側適用 → 一括書き出し。安全装置を全実装: 実在しない target はスキップ + warning / 辺宣言 0 本は無言劣化検知 warning / Status 行表記ゆれはスキップ + warning / 相手側 partner が base...HEAD で先行変更済みなら conflict 検出で exit 3 + PR コメント / 機械追記後に--check-edges --enforceを再実行し fail ならgit checkout --で全破棄して exit 5。commit メッセージ用に追記辺一覧、PR description 用に status 変更 ADR 一覧を出力。 - CI 配線:
pipeline-pr-autofix.ymlに base fetch + STATUS_CHANGED / PR_COMMENT マーカー処理を追加。adr-lint.ymlに unit test を登録。
追加調査の結論 (ADR コスト試算): 実装前の pipeline-adr-autofix.mjs / pipeline-pr-autofix.yml には失敗時ロールバック (git checkout --) は 未実装だった。本 PR で --check-edges --enforce 再実行 fail 時の全破棄として追加実装した。
ローカル検証: edge-autofix unit test 21 件 pass / 既存 autofix・edges・index・lint-rules テスト pass / 使い捨て ADR (9990/9991) での非ドライ実走で frontmatter 転記・逆辺・status 書き換え・再 enforce error 0 を確認 (検証後に削除)。
2026-06-12 — PR #1904 — refactor — mid (OCR Bench フロントを ocr/ へ移設し webapp_client から独立)
date: 2026-06-12
pr: 1904
category: refactor
importance: mid
files:
- .github/workflows/ocr-deploy.yml
- ocr/CLAUDE.md
- ocr/ocr-bench/OcrBenchApp.tsx
- 他 14 件
tags:
- ocr-bench
- clone-separation
OCR Bench フロントを webapp_client/src/ocr-bench/ → ocr/ocr-bench/ へ移設し、webapp_client から独立させた (本番デプロイ・スモーク済み。配信 html がローカル検証ビルドとバイト一致)。以後 OCR 実装は専用クローン my-gas-project-ocr/ が担当 (ocr/CLAUDE.md が正典)。ビルドは pnpm --filter ocr-bench run build:client → ocr/public/ocr_bench_shell.html を commit (CI はビルドしない)・型チェック type-check:client を merge 前ゲートに追加。OCR 変更で ui-test は発火しなくなった (webapp_client 非依存)。ついでに MODEL_SLUGS import 欠落 (モデル選択復元が常に空になる潜在バグ) を type-check:client 新設で表面化・修正。
2026-06-12 — PR #1889 — feat — mid (OCR Bench: 連続修正→「正誤確認」タブに刷新 + 表示件数既定 50/最大 100)
date: 2026-06-12
pr: 1889
category: feat
importance: mid
files:
- ocr/public/ocr_bench_shell.html
- webapp_client/src/ocr-bench/OcrBenchApp.tsx
- webapp_client/src/ocr-bench/ReviewView.tsx
- 関連 PR #1886
tags:
- ocr-bench
- ui
「連続修正」タブを「✓ 正誤確認」へ刷新。左端かつデフォルト表示タブ化 (localStorage 空のときのみ)・フィルタ 2 種追加・フォームの低信頼フィールド橙色表示。表示件数を既定 50・最大 100 に (#1886)。
2026-06-12 — PR #1880 — feat — mid (OCR Bench: 「確認した」ボタン + 確認者表示 + 未確認フィルタ)
date: 2026-06-12
pr: 1880
category: feat
importance: mid
files:
- ocr/src/index.ts
- ocr/public/ocr_bench_shell.html
- webapp_client/src/ocr-bench/RecordsView.tsx
- webapp_client/src/ocr-bench/ReviewView.tsx
tags:
- ocr-bench
- ui
正誤確認の保存を「✅ 確認した」ボタン化し、確認後は「✅ 確認済み:<ログインアドレス>」を表示。伝票一覧に確認列 +「未確認のみ」フィルタを追加。backend: SaveGroundTruth の入力者を静的 AUTH_USER → 実 authEmail に修正 (Entra ログイン経由で記録)。
2026-06-12 — PR #1877 — feat — mid (OCR Bench: 低信頼 (確定していない) 読み取りの橙色表示 + 帳票フィルタ)
date: 2026-06-12
pr: 1877
category: feat
importance: mid
files:
- ocr/src/masters.ts
- ocr/src/storage.ts
- ocr/src/summarize.ts
- docs/spec/sidebar_api.d.ts
- webapp_client/src/ocr-bench/RecordsView.tsx
tags:
- ocr-bench
- ui
伝票一覧 (RecordsView) でマスター未照合・スナップ補正・低 confidence のフィールドを橙 (#fed7aa) 表示 +「…のみ表示」フィルタを追加。低信頼判定の SoT = masters.ts の lowReliabilityFields 純関数 (単体テスト 15/15)。storage.ts の listResults/listAllResults が read-time に masters をロードして付与するため、古い結果もマスター追加分も再 run 不要で毎回反映される。
2026-06-12 — PR #1872 — chore — low (OCR Bench: 車番マスターを category 内で番号昇順に並べ替え)
date: 2026-06-12
pr: 1872
category: chore
importance: low
files:
- mas/500_import/511_ocr_bench_models.js
tags:
- ocr-bench
- master-data
CAR_NUMBER_MASTER を category 内で番号昇順に整列 (値・件数 143 不変・並べ替えのみ)。
2026-06-12 — PR #1860 — feat — mid (OCR Bench: 入力車番のナンバープレート式区切り (ハイフン等) を除去して照合)
date: 2026-06-12
pr: 1860
category: feat
importance: mid
files:
- ocr/src/masters.ts
tags:
- ocr-bench
- master-data
37-03 等のプレート式手書き車番を normalizeCarNo (ハイフン各種・長音・中点・空白を除去) で照合。真の未カバー車番が 36 → 19 件に減少 (完全一致 +16・スナップ +1)。教訓: 正規表現に全角スペース実体 (U+3000) を直書きすると ocr-deploy の no-irregular-whitespace で fail するが、\s が U+3000 を含むため文字クラスは \s で足りる。
2026-06-12 — PR #1847 — feat — mid (OCR Bench: 宇佐美伝票の照合正規化 4 件 (取引先/運転者/工事番号) + デプロイ lint 修復)
date: 2026-06-12
pr: 1847
category: feat
importance: mid
files:
- ocr/src/masters.ts
- ocr/src/prompt.ts
- ocr/src/index.ts
- 関連 PR #1838 / #1840 / #1843
tags:
- ocr-bench
- master-data
#1832 集約セッションの後続。宇佐美給油伝票のマスター照合・正規化を masters.ts/prompt.ts 中心に追加 (全て本番デプロイ済み)。
- 取引先のファイル名補完 (#1838): 取引先が空のとき、ファイル名にマスター取引先名が含まれれば補完 (
findPartnerInFilename)。マスター登録名のみ採用 - 入力車番→運転者・社員№ 逆補完 + プロンプト V8 (#1840): 入力車番が車番マスター category 2 (個人番号=社員番号と同じ) に一致し、運転者が氏名から未確定なら、運転者名・社員№を逆引き。プロンプトに「社員№欄は通常空・入力車番は個人番号でありうる」を明記
- 距離→工事番号復元 (#1843): jobCode が空/総称 (一般/個人/不明) で mileage (または候補) が工事番号マスターに完全一致 → jobCode へ復元・距離をクリア (
isExactJobCode) - デプロイ lint 修復 (#1847): #1843 が masters.ts の正規表現に全角スペース実体 (U+3000) を含み ocr-deploy の
no-irregular-whitespaceで失敗→未反映だった件を、エスケープへ統一して復旧。教訓: 正規表現の全角空白は必ずエスケープ・ローカル lint は eslintcache で見逃しうる
確定したドメイン知識: 宇佐美伝票の車番欄手書きは運転者の個人番号 (社員番号と同じ) が多く、社員№欄は基本空・運転者名から逆引き。手書きブロックは「車番(個人番号)/距離/工事番号/署名」が縦に並びモデルがフィールドを取り違えやすい。検証は worktree 隔離 wrangler dev + 単体テスト (masters 純関数を esbuild バンドル→node 実行)。ADR 不要 (社内ベンチ・独立ドメイン) の方針どおり。
2026-06-12 — PR #1832 — feat — high (OCR Bench: Vertex Doc AI 導入・宇佐美パーサ・車番マスター3体系・マスター管理タブ・連続修正整理 ほか 11 PR)
date: 2026-06-12
pr: 1832
category: feat
importance: high
files:
- ocr/src/docai.ts / ocr/src/docai-parsers.ts / ocr/src/gcp-auth.ts
- ocr/src/masters.ts / ocr/src/summarize.ts / ocr/src/prompt.ts
- mas/500_import/511_ocr_bench_models.js (車番マスター 143 番号)
- webapp_client/src/ocr-bench/MastersView.tsx / ReviewView.tsx / types.ts
- 他 (PR #1792/#1799/#1802/#1804/#1808/#1811/#1817/#1820/#1823/#1826)
tags:
- ocr-bench
- docai
- master-data
OCR Bench (独立 Worker ocr/) の機能拡張セッション。実帳票 (宇佐美給油伝票) を題材に 11 PR を本番デプロイ。主な内容:
- Vertex Doc AI Form Parser を追加 (#1792): 専用 OCR を LLM 抽出のベースライン比較軸として slug 化。Workers に無い SA 認証は JWT 署名→OAuth2 トークン交換を自前実装 (
gcp-auth.ts・jose流用)。最小権限 SA を dev プロジェクトに作成 - 帳票タイプ別テキストパーサ (#1802→#1804): Form Parser の KV 検出はレシート型で僅少だが OCR 本文に印字情報は出るため、宇佐美パーサで正規表現抽出 (抽出 2→12 項目)。CCITT 1-bit スキャンのアンカー乱れ補強・氏名 1 文字のマスター誤スナップ防止 (全モデル共通)
- プレビュー白化の修正 (#1799): CCITT スキャン PDF で pdf.js が
wasmUrl未指定により画像デコード失敗→枠だけ白抜けだった件を、Worker が/pdfjs-wasm/で WASM を自己配信して解消 - 車番マスターを 3 体系 143 番号に全面整備 (#1811): 車両台帳 (社有車 57) + 個人番号 (43・社員№と同じ) + リース/社用車 (43) を
category列付きで構造化。伝票の「車番」欄に 3 体系が混在する実態を反映 - マスター管理タブ (#1817→#1820): D1 全 5 マスターの閲覧/検索を管理者限定で追加。子タブ + 検索時は全マスター横断ヒット表示のハイブリッド UI (「この番号はどのマスターにいる?」に即答)
- 手書き入力車番のマスタースナップ (#1832): 1 桁誤読 (6665→6265 等) を、同桁 1 文字違いのマスターが唯一なら復元。曖昧/近傍なしは raw 維持・印字カード車番は完全一致のみ
- 燃料数量を単一 liters に統合 (#1823): 油種別 4 フィールド (HG/RG/軽油/灯油) を 1 つに。油種は商品名で判定。LLM の振り分け負荷を解消
- 比較ビュー/連続修正の UI 整理 (#1808/#1826): 比較ビューを管理者限定 + モデル列を運用中 3 系統に絞り込み。連続修正タブは帳票タイプ/印字手書きをヘッダー化 (印字手書きは日本語表示)・単価/明細数/通貨/摘要を非表示 (データ保持)
検証はいずれも worktree 隔離環境の wrangler dev + Playwright/単体テストで実施。ADR 不要 (社内ベンチ・独立ドメイン) の方針どおり。ocr/CLAUDE.md (nested 規約) もこのセッションで新設 (デプロイ巻き込み・SPA ビルド運用・照合マスター機密)。
2026-06-12 — PR #1813 — migration — high (ADR 事業軸の検査と恒久修正 — nav 7 主題再編 + business frontmatter キー)
date: 2026-06-12
pr: 1813
category: migration
importance: high
files:
- docs/_config.json (ADR nav 5→7 グループ再編 + prefix 再採番)
- docs/adr/*.md (139 本に business キー backfill)
- scripts/adr-index.mjs / scripts/lib/adr-lint-rules.mjs
tags:
- adr-metadata
- nav
- adr-lint
INDEX ドメイン列に DRP がほぼ出ない問題 (達希指摘) の恒久解消。原因 = nav 主題別グループ運用が ADR-0038 で停止し 0039 以降 100 本が 09.5 一括 = 全部 Corp 判定。対策 = ①全 139 本へ business: corp|mas|drp を内容ベース分類で backfill (INDEX の原本・未宣言は nav 判定フォールバック・値域 lint #24) ②nav を内容ベース 7 主題へ再編 (09.1/09.3=MAS・09.2/09.4=DRP・09.5〜09.7=Corp。番号割当を既存 business.mjs の判定に一致させ判定ロジック無改修)。新分布 = Corp 64 / DRP 44 / MAS 31。境界規約 = ADR の制度・書き方は Corp (実装が DRP にあっても)・DRP 内部実装は DRP・DRP 以外のツール (Deep Research/提案資料生成) は Corp。地雷メモ: ①prefix (A.09.G.N) 再採番で旧 prefix の文中言及は陳腐化 (履歴記録は温存・lint 非対象 = R5 は未実装) ②新規 ADR の後修正は「トリオ/nav/index + business 1 行」の 4 点に ③_config.json は JSON.stringify(,null,2)+'\n' 完全一致なので機械編集可。
2026-06-11 — PR #1803 — migration — high (ADR-0137 Phase 1: メタ 7 キーを frontmatter へ backfill + 消費者を frontmatter 読みへ一括切替)
date: 2026-06-11
pr: 1803
category: migration
importance: high
files:
- scripts/lib/adr_meta.mjs (新設)
- scripts/adr-index.mjs / scripts/lib/adr-lint-rules.mjs / scripts/lib/adr_edges.mjs
- docs/adr/*.md (138 本 backfill 901 値)
- scripts/adr-edges-migrate.mjs ほか遡及スクリプト 3 本 (削除)
tags:
- adr-lint
- adr-metadata
- adr-0137
ADR-0137 Phase 1 実装。①全 138 本へ mode/kruchten/scope/implementation_status/proposed_at/approved_at/deciders を機械複製 (存在行のみ・全値 JSON 引用符 = : /# の YAML パーサ地雷対策・gray-matter 全数パース検証済み)。②読み出し層 scripts/lib/adr_meta.mjs を新設し、adr-index / lint-rules (Mode 分岐 6 + 存在検査 4) / adr_edges を frontmatter 優先・本文フォールバック読みへ切替 (ADR_LINT_FRONTMATTER_FIRST=false で一括ロールバック = 撤退条件 1c)。status のみ本文優先の特例 (raw 注釈 = 受理 PR 番号 / residual-risks タグ / Superseded by 対象を frontmatter が保持できない。Phase 2 で置き場所を決める)。③sync lint frontmatter-meta-sync (#23・error) 新設 = 7 キーの一致 + YAML 配列禁止 (Confirmation d)。④遡及スクリプト 3 本を廃止判断のうえ削除 (再実行が #1797 全数再レビュー結果を上書きする事故リスク除去)。検証 = 索引出力が両フラグ状態で完全一致・138/138 pass・テスト 110 本 green。地雷メモ: ①メタ更新 (Status flip / Impl 更新) は今後本文と frontmatter の両方を編集 (片方だけだと #21/#23 が FAIL = 意図どおり) ②drp が adr-lint-rules → adr_meta を import するため次回 drp ビルドに新ファイルが入る (Workers に process が無くても安全な実装済み・lib 変更では drp CI 不発火) ③テスト出力の一時領域 ENOSPC 時はファイルへリダイレクトして読む。
2026-06-11 — PR #1800 — docs — mid (ADR Status×Impl 整合 — 実装完了 6 本を Accepted へ昇格 + 昇格漏れ warn lint 新設)
date: 2026-06-11
pr: 1800
category: docs
importance: mid
files:
- docs/adr/0027 / 0080 / 0105 / 0106 / 0111 / 0136 (各 -*.md)
- scripts/lib/adr-lint-rules.mjs
- docs/_internal/05_how-to/adr-lint_rules/rules/status-impl-no-stale-proposed.md
tags:
- adr-lint
- adr-metadata
INDEX の「Impl=Done なのに Status=Proposed」不整合 (代表取締役指摘) を全数調査。merge = 受理後の Status 昇格 (Accepted 化 + 承認日時) が手動運用のため取り残された 6 本 (0027/0080/0105/0106/0111/0136) を昇格し、0111 の Impl 行 (corrigendum 完了済なのに Partial) と 0080/0105 のプレースホルダー (PR pending / PR #NNN) も実態へ追従。再発防止に adr-lint status-impl-no-stale-proposed (warn) を新設 — error にしない理由 = 実装済みを後追い文書化する起案 PR (0106 型) は merge 前に必然的に Proposed×Done で CI を通過する。地雷メモ: ① lint ルール追加は adr-lint-doc-consistency が「個別ルールページ + Summary Table 行 + 集計更新」を強制する (3 点セット必須) ② 作業中に PR #1797 (辺の全数再レビュー) が merge され対象 4 ファイルの frontmatter 辺ブロックが動いた — rebase + 索引再生成で解消 (adr-index.json は並行 merge で必ず動く前提で最後に再生成)。
2026-06-11 — PR #1783 — docs — low (ocr/ に nested CLAUDE.md 新設 — OCR Bench ドメイン規約)
date: 2026-06-11
pr: 1783
category: docs
importance: low
files:
- ocr/CLAUDE.md
tags:
- claude-md
- ocr-bench
2026-06-10 OCR handover の「nested 規約が必要になったら作る」項の消化。drp/CLAUDE.md と同形式で、ocr/ 配下を触ったときだけ on-demand ロードされるドメイン規約を新設 (30 行)。収録規約: ① デプロイ — ocr/src|public|wrangler.toml|package.json を触る PR は merge = 即本番デプロイ (ocr-deploy.yml)。pnpm-workspace.yaml / turbo.json は DRP のデプロイも巻き込む共通トリガーのため、審査 run 非稼働の確認を必須化 ② SPA ビルド運用 — フロント実体は webapp_client/src/ocr-bench/、ビルド済 html (ocr/public/ocr_bench_shell.html) を commit する運用 (CI はビルドしない)・webapp_client/src を触る PR は ui-test pass 必須 ③ API 規約 — POST /api/<fn> に positional JSON 配列 (GAS google.script.run と 1:1)・日本語キー契約は docs/spec/sidebar_api.d.ts ④ 機密 — 照合マスター値 (社員名・取引先名・車番・工事番号・商品名) をコード/diff に埋め込まない (root DoD #2 の具体化)・D1 投入は seed-masters.mjs 経由 ⑤ 認証・ローカル開発 — CF Access + Basic 認証フォールバック・.dev.vars 再生成手順と keychain 名。なお CLAUDE.md は ocr-deploy.yml のトリガー対象外のため merge で本番デプロイは走らない (merge 後に発火なしを確認済)。
2026-06-11 — PR #1742 — feat — high (OCR Bench: 宇佐美給油伝票の本番運用機能群 (連続修正/プレビュー/絞り込み crop) + 実 PDF 141 伝票ベンチ実績)
date: 2026-06-11
pr: 1742
category: feat
importance: high
files:
- webapp_client/src/ocr-bench/ReviewView.tsx
- webapp_client/src/ocr-bench/RecordsView.tsx
- webapp_client/src/ocr-bench/OcrBenchApp.tsx
- webapp_client/src/ocr-bench/FileList.tsx
tags:
- ocr-bench
- review-workflow
- benchmark
実帳票 (宇佐美給油伝票 11 ページ ≒ 141 伝票) を本番でベンチ処理するための機能群と運用知見 (PR #1720→#1723→#1724→#1728→#1740→#1742、全て実機 Playwright 検証・本番デプロイ済)。グリッド分割〜横断一覧〜精度集計の基盤 (前段 PR #1700/#1705/#1707/#1710/#1717/#1721) に続く第 2 弾。
- 連続修正タブ (#1720→#1723): 伝票画像 + 読み取り結果を見ながら GT を流れ作業で確定。1 ページ 10/20/50 件のページ式・全モデル一致は自動充填・不一致はモデル候補チップで採用・フィールド選択で読み取り元 bbox をオレンジ枠表示。プレビューは先読みキャッシュ + 次ページ prefetch で即表示 (#1742)
- 全項目化 + 金額除外 (#1717→#1724): 一覧/精度集計の軸を抽出全 29 項目に拡張 (摘要は noDiff = 不一致判定/集計から除外)。宇佐美の納品書は金額の印字がないため金額系 7 列を除外 (単価は印字あり残置)
- タブ並び/連番 (#1740): 伝票一覧→連続修正→比較ビュー→精度集計の順 + 既定タブを伝票一覧に + 一覧左端に連番列
- ✂️ crop 一括適用 (#1728): crop パス (手書き montage 再抽出・Gemini 5+Claude 1 票) を実行済み帳票へ直列 + 間隔つきで一括適用。対象 slug はモデル選択追従
本番 run 実績: Gemini 3.1 Pro (高) base 137/142 成功 + ✂️ crop は手書き欠け 79 件に絞って 78 成功。累計実測 ¥1,106。地雷メモ: ① Gemini AI Studio 無料枠の日次クォータは数百 req で枯渇し「わずかに回復してすぐ枯れる」挙動 → 1 件プローブ run で回復判定 (429=未回復 / 524 等の一時エラーや成功=通る) し回復分だけ低速回収、完全リセット (PT 深夜=JST 午後) で一気に流す運用が有効。crop は 1 伝票 6 req と重く全件一括は無料枠で非現実的 → 「手書きが読めていない伝票だけ」に絞るのが定石。② Quartz (sips/プレビュー) は CCITT スキャン + CropBox の PDF を真っ白にレンダリングする (実体は正常・poppler pdftoppm -cropbox なら見える)。
2026-06-11 — PR #1722 — feat — mid (DRP: パイプライン生成 ADR PR の定番後修正 (placeholder/nav) を 3 層で恒久解消・本番デプロイ済)
date: 2026-06-11
pr: 1722
category: feat
importance: mid
files:
- drp/src/nodes/body_generation.ts
- drp/src/nodes/webhook.ts
- drp/src/nodes/nav_entry.ts
- drp/src/state.ts
- prompts/production/body-generation/prompt.md
tags:
- drp
- prompt-cicd
sub 申し送り「パイプライン生成 ADR PR の定番後修正の恒久化」の実装(再発実績: ADR-0097/0098/0133/0134)。案② body-generation 生成ルール 1 を「不足は(要追記)と明示」→「プレースホルダ語 5 種を出力しない。出せない箇所は ADR-0091(a) 形式『なぜ今出せないか + いつ確定するか』を 1 行」へ変更(prompt.md SSoT + FALLBACK 同時更新・semver 1.6.0・merge で KV 自動 push、Prompt Eval CI green)。案③ nav 自動登録の真因修正 — 既存実装が A.{番号} 形式の規約外 title を生成していたのを「直前エントリの番号プレフィックス継承 +1(A.09.5.88→89)」に修正し、nav_entry.ts(pure)+ unit テスト 3 件で規約を固定。案① PR 作成前 self-lint — 生成直後に adr-lint 同一ルール(no-placeholder-marker・adr-lint-rules.mjs 共有)で検査 → 違反時 bounded self-fix 1 回 → 未解消は PR 本文に違反一覧を明記して人間へ引き継ぐ(state.selfLintWarnings 新設)。受け入れ基準 = 次回のパイプライン生成 ADR PR が後修正ゼロで CI green(達成確認後に memory reference_pipeline_pr_adr_lint_postfix 更新を sub へ申し送り)。
2026-06-11 — PR #1716 — feat — mid (ADR-0131 初期移行 ①機械抽出: 全 132 本へ型付き辺 frontmatter 一括追記・構造的ソース 6 ペア辺化)
date: 2026-06-11
pr: 1716
category: feat
importance: mid
files:
- scripts/adr-edges-migrate.mjs
- docs/adr/ (全 132 本へ frontmatter 追記)
- tasks/prompts/main_2026-06-11_edge-migration-llm-candidates.md
tags:
- adr-0131
- migration
ADR-0131 §2 適用手順 ①機械抽出。scripts/adr-edges-migrate.mjs(監査トレイルとして残置)が全 132 本に forward 7 キーの辺ブロックを挿入(該当なしは空配列 = 移行完了確認「全数に辺ブロック存在」を充足)し、構造的ソース(Supersedes/Superseded by 欄・Status 行)を写像表で 6 ペア 12 宣言に辺化(両端同一 commit・各辺に出典コメント)。部分 Supersede→amends(0030↔0031)。対象が Superseded でない supersedes 宣言は amends に降格(0125↔0080・レビュー判断ポイント)。参照節キーワード候補 119 行は自動で書かず sub の LLM 候補化レポートへ(誤分類を機械抽出側で固定しない保守判断)。検証: --check-edges error 0(導入時の Superseded 3 本の不整合が解消)/ docs-build 676 ページ全件通過(frontmatter 重複キー地雷なし)。残: sub の候補レビュー + 受け入れ検査 → メタバックフィル 48 本 → --enforce 昇格。Stacked PR(base = #1715)。
2026-06-11 — PR #1715 — feat — mid (ADR-0107 Phase 1: 単一抽出器 adr-index.mjs → adr-index.json + INDEX.md・完全性テスト = ADR-0133 開始条件の充足)
date: 2026-06-11
pr: 1715
category: feat
importance: mid
files:
- scripts/adr-index.mjs
- docs/adr/adr-index.json
- docs/adr/INDEX.md
- docs/adr/README.md
- tests/adr-index.test.mjs
- .github/workflows/adr-lint.yml
tags:
- adr-0107
- adr-0130
- adr-0131
ADR-0107 案 A の main 実装 Phase 1。単一抽出器 scripts/adr-index.mjs が docs/adr 全 132 本を 1 パス走査し、太字メタ欄・型付き辺(adr_edges.parseEdges 共有 = ADR-0131 規約・本文からの推測抽出なし)・本文参照を adr-index.json に構造化。下流照会(RQ-098)向けに currentForm(superseded_by 鎖の終端)・requiredBy(depends_on 逆引き)・hasRollback を生成側で計算。①索引 INDEX.md(一覧 + supersede mermaid + メタ欠落警告 18 本 = バックフィル作業リスト)を自動生成し、README §15 の手書き表(31 本で停止)をポインタ化 — ADR-0130 適用 2 号として TICKETS 解消・棚卸しの起票残ゼロ(対象 20 件 = 生成器化 7 / 例外 13)。完全性テスト 7 件で ADR-0133 の監査開始条件「adr-index.json 完全性テスト green」を充足(残る条件 = ADR-0107 Accepted 化判断)。3 点セット(CI --check + scan_baseline 縮小ガード unit=ADRs)+ nav A.09.0.4。残: メタバックフィル 18 本(error 昇格前)/ 初期移行の機械抽出 / ②絞り込み / ④RAG 連携。
2026-06-11 — PR #1710 — feat — high (OCR Bench: グリッドスキャン 150 伝票規模のベンチ処理 4 機能 — 宇佐美給油伝票対応)
date: 2026-06-11
pr: 1710
category: feat
importance: high
files:
- webapp_client/src/ocr-bench/split.ts
- webapp_client/src/ocr-bench/OcrBenchApp.tsx
- webapp_client/src/ocr-bench/FileList.tsx
- webapp_client/src/ocr-bench/RecordsView.tsx
- webapp_client/src/ocr-bench/AccuracyView.tsx
- webapp_client/src/ocr-bench/CompareTable.tsx
- ocr/src/storage.ts
- ocr/src/index.ts
- docs/spec/sidebar_api.d.ts
tags:
- ocr-bench
- grid-split
- benchmark
実帳票 (宇佐美給油伝票: 1 ページに納品書 ~14 枚 × 11 ページ ≒ 150 伝票 + 手書き車番/担当者/走行距離) をベンチで処理するための 4 機能 (P1 #1700 → P2 #1705 → P3 #1707 → P4 #1710、全て実機 Playwright E2E 検証済・本番デプロイ済)。
- グリッド一括分割 (#1700): ページ単位で LLM 境界検出 →
cropPdfPageByBboxes(CropBox・原本解像度保持) で全伝票を個別 doc 化。filename 規約 =親名_pNN_rNN.pdf。実グリッド 1 ページで 14/14 検出。文書全体の単発 LLM 解析は 150 groups 規模で出力切れするためページループに分割。callClaudeForAnalyzeの max_tokens 1024→4096 - バッチ run (#1705): チェック選択 (空なら未実行全件) を並列 2 で順次実行。コスト概算 confirm・進捗・中断・失敗は選択済みにして再実行可能
- 横断一覧ビュー (#1707):
listAllResultsAPI (1 クエリ・重い raw 列は落とす) + 1 行 = 1 伝票でモデル間不一致セルをハイライト。実データで手書き車番/単価/km に不一致が集中することを確認 - assisted GT + 精度集計 (#1710): 全モデル一致フィールドを GT へ自動充填 (実伝票で 12/21 項目が自動・入力済みは上書きしない) + GT 確定 doc を母数にモデル × フィールド正解率テーブル
地雷メモ: Quartz (sips/プレビュー) は CCITT スキャン + CropBox の PDF を真っ白にレンダリングすることがある (実体は正常・poppler pdftoppm -cropbox なら見える)。切り出し PDF が「空に見える」報告はまずレンダラを疑う。バックグラウンドの gh pr checks ポーリングは keychain 断続 401 で無言死する → CI 確認は同期の gh api .../check-runs が安定 (memory no-async-notification-promise)。
2026-06-11 — PR #1703 — feat — mid (ADR-0131 Phase a: ADR 間の型付き辺の語彙 SSoT + 整合 lint を report-only で導入)
date: 2026-06-11
pr: 1703
category: feat
importance: mid
files:
- scripts/lib/adr_edges.mjs
- scripts/adr-lint.mjs
- tests/adr-edges.test.mjs
- docs/adr/templates/template.md
- .github/workflows/adr-lint.yml
tags:
- adr-0131
- adr-lint
ADR-0131(グラフ衛生・PR #1694 受理)の規律側実装 Phase a。辺 7 種 + 逆辺の語彙を scripts/lib/adr_edges.mjs に SSoT 化し(0131 §2 の表の実装写し・依存ゼロの frontmatter パーサ・本文からの推測抽出はしない)、整合検査 error 4 種(dangling / 逆辺欠落 / status 不一致 / 置換連鎖の循環)+ warning 2 種(superseded への depends_on / 本文参照の frontmatter 未反映)を adr-lint.mjs --check-edges として CI に常設。二段階施行どおり導入時は report-only(error 昇格は初期移行完了後に --enforce を付けるだけ)。新規 ADR の辺ブロック必須ゲート(--check-edges-new・「新設は即時」)は最初から error。起案テンプレに辺ブロック + 写像表ガイドを追加、unit test 12 fixture で固定。実コーパス計測 130 本 0.26 秒(Confirmation 6 ベースライン・閾値 30 秒)。移行前状態の検出 = Superseded 3 本の辺未宣言 / 本文参照未反映 延べ 693 件(初期移行の作業リスト)。残タスク: 初期移行の機械抽出スクリプト / ADR-0107 抽出器(parseEdges 共有)/ DRP 起案出力への辺ブロック追加(別 PR)/ 型判定ルールブック。
2026-06-10 — PR #1698 — feat — mid (DOC-OPS-24 完了: domains §機能一覧の生成器化 + ADR README §用語定義の glossary SSoT 化)
date: 2026-06-10
pr: 1698
category: feat
importance: mid
files:
- scripts/generate-domains-list.mjs
- scripts/doc-inventory.mjs
- docs/domains/README.md
- docs/adr/README.md
- docs/architecture/glossary.md
- .github/workflows/adr-lint.yml
tags:
- adr-0130
- doc-ops
DOC-OPS-24(#1693 群A・ADR-0130 セクション単位適用)の 2 件を完了。① docs/domains/README.md §機能一覧 を scripts/generate-domains-list.mjs で生成器化(BEGIN/END マーカー間のみ差し替える初のセクション単位生成器)。機能名は各ドメイン frontmatter title(7 ファイルに新設)・legacy_id は current-spec.md frontmatter を SSoT とし、手書き表の追従漏れ 2 件(budget-actual の dev_mas-136 / master-data の dev_mas-169)を解消。3 点セット(生成器 + adr-lint.yml --check + scan_baseline 縮小ガード unit=domains)完備。② docs/adr/README.md §用語定義(14 語の手書き表)を glossary.md SSoT 参照へ置換。置換前の突合で glossary 収録済みは SSoT のみと判明し、欠落 13 語を glossary へ追加(案件 prefix I/S/F/N/DS は docs サイト tooltip の \b 誤マッチ回避のため I-XX 等の番号表記で登録)。レジストリは domains/README.md を TICKETS → GENERATORS へ移動し棚卸し再生成(対象 20 件 = 生成器化済み 6 / 案件起票済み 1 / 例外指定 13 / 未振り分け 0)。
2026-06-10 — PR #1695 — feat — mid (ADR-0130: sub 候補リスト #1693 の棚卸し反映 — セクション単位 7 件振り分け + DOC-OPS-24/25 起票)
date: 2026-06-10
pr: 1695
category: feat
importance: mid
files:
- scripts/doc-inventory.mjs
- docs/_internal/06_ops/index_catalog_inventory.md
- docs/_internal/02_project/TODO_future.md
tags:
- adr-0130
- doc-ops
- sub-collab
sub の下調べ (#1693・本文埋め込み手作業一覧の候補 3 群) を棚卸しへ反映。collectTargets を「レジストリ登録 = 対象」に統一し、ファイル名パターン非一致のセクション単位対象が棚卸しに載るよう拡張。群A (docs メタデータ由来 2 件) は DOC-OPS-24 起票 + TICKETS、群B (GAS コード由来 9 件) はスコープ外を明文化し codegen 是非を DOC-OPS-25 起票、群C (SoT・スナップショット・履歴 5 件) は理由付き例外指定。棚卸しは対象 20 件 (生成器化済み 5 / 案件起票済み 2 / 例外指定 13 / 未振り分け 0)。main↔sub の役割分担 (sub = 意味判定の下調べ / main = レジストリ編集・起票) の初回実運用例。
2026-06-10 — PR #1691 — feat — mid (OCR Bench Phase 3: カスタムドメイン + CF Access(Entra) JWT 検証 — コード側完了)
date: 2026-06-10
pr: 1691
category: feat
importance: mid
files:
- ocr/src/access.ts
- ocr/src/index.ts
- ocr/wrangler.toml
- ocr/docs/cf-access-setup.md
tags:
- ocr-bench
- phase-3
- cf-access
OCR Bench の Phase 3 (Basic 認証 → カスタムドメイン + CF Access/Entra ID) のコード側対応 (主 PR #1689、退行復旧 #1691。両方本番デプロイ・実機 curl 確認済)。
- Access JWT 検証 (#1689):
ocr/src/access.ts新設 —Cf-Access-Jwt-Assertionを jose で検証 (JWKS/RS256・iss・aud・exp。鍵は 6 週間自動ローテーションのため固定保存せず kid 解決)。認証ミドルウェアは二段構え —ACCESS_TEAM_DOMAIN/ACCESS_AUDsecret 設定済み + JWT ありなら Access 検証 +ALLOWED_EMAILS_CSV照合、それ以外は Basic 認証フォールバック。secret 投入まで挙動不変 (デプロイ先行で安全)。jose は ocr 直接依存 (catalog 化すると pnpm-workspace.yaml 変更で DRP デプロイが走るため回避) - カスタムドメイン:
ocr-bench.bizlp.devを custom_domain ルートで追加 (bizlp.dev ゾーンは既存・DNS/証明書は deploy 時自動作成を確認) - 残ユーザー作業: Zero Trust 有効化 → Entra アプリ登録 → IdP 登録 → Access アプリ作成 →
wrangler secret put×3。手順書 =ocr/docs/cf-access-setup.md
地雷メモ: wrangler は routes を定義すると workers.dev を自動無効化する (#1689 で ocr-bench.t-saitoh.workers.dev が 404/error 1042 化し、GAS 移行案内ページ mas/300_ui/302_spa_bridge.js のリンクが死んだ)。フォールバック維持には workers_dev = true の明示が必要 (#1691 で復旧)。将来 workers.dev を閉鎖する際は GAS 案内 URL を ocr-bench.bizlp.dev へ更新してから。また並行セッションとの同一クローン branch 切替衝突が再発 (memory background-agent-branch-bundling 実例 3) — 復旧後は共有 checkout に触れず一時 git worktree で PR を作成した。
2026-06-10 — PR #1690 — feat — mid (DOC-OPS-23: docs/index.md 全ドキュメント目次を生成器化 — ADR-0130 適用 5 号)
date: 2026-06-10
pr: 1690
category: feat
importance: mid
files:
- scripts/generate-docs-index.mjs
- scripts/lib/scan_baseline.mjs
- docs/index.md
- scripts/doc-inventory.mjs
- .github/workflows/adr-lint.yml
tags:
- adr-0130
- doc-ops
- lint
ADR-0130 棚卸し (PR #1687) で唯一の生成器化候補だった docs/index.md を生成器化 (期限 2026-12 に対し前倒し完了)。scripts/generate-docs-index.mjs が _config.json nav 90 グループから俯瞰マップを生成 (階層 = group 番号導出 / 代表ページ = README → 先頭 → 先頭サブグループ / 概要 = 冒頭 best-effort 抽出)。旧手書き版と行構造完全一致を確認。3 点セット (CI --check + 走査範囲明文化 + scan-baseline 縮小ガード 10%) を完備し、棚卸しレジストリを TICKETS → GENERATORS へ移動 (生成器化済み 5 件)。scan_baseline.mjs は単位語 (files/groups) を引数化 (後方互換)。
2026-06-10 — PR #1687 — feat — mid (ADR-0130 規律側実装 — 機械ゲート lint + 走査範囲縮小ガード + 棚卸しリスト + 既存ページ振り分け完了)
date: 2026-06-10
pr: 1687
category: feat
importance: mid
files:
- scripts/doc-inventory.mjs
- scripts/lib/scan_baseline.mjs
- scripts/prompt-catalog.mjs
- docs/_internal/06_ops/index_catalog_inventory.md
- .github/workflows/adr-lint.yml
- docs/_internal/02_project/TODO_future.md
tags:
- adr-0130
- lint
- doc-ops
ADR-0130 (PR #1677) の Confirmation 節が約束した機械的強制 3 点を期限 (受理 +1 ヶ月 = 2026-07-10) 内に実装。
- 機械ゲート (Confirmation 2・追加可否判定 = 可):
scripts/doc-inventory.mjs --check-new-pagesを adr-lint.yml に配線。PR で新規追加された 索引/カタログ 系ファイル名パターンの .md がレジストリ (GENERATORS / TICKETS / EXCEPTIONS) 未登録なら FAIL。限界 (ファイル名偽装・セクション追記は検知不能) はスクリプト冒頭に注記 - 走査範囲縮小ガード (Confirmation 3): 共通ヘルパー
scripts/lib/scan_baseline.mjsを新設し prompt-catalog と doc-inventory に組込み。生成物のscan-baseline行と比較して前回比 10% 以上の減少で FAIL。意図的縮小は--accept-reduction="根拠"のみ受理 (根拠が diff に残る)。走査ルート縮小の無音欠損 (prompt-catalog 実測 225 本不可視) への対策 - 棚卸しリスト (Confirmation 4):
docs/_internal/06_ops/index_catalog_inventory.mdを生成器ベースで新設し CI で drift 検査。対象 14 件の振り分けも完了 — 生成器化済み 4 / 案件起票済み 2 (ADR README §15 → ADR-0107、docs/index.md → DOC-OPS-23 新規起票) / 例外指定 8 (JTBD 一覧 = SoT 3 件、ハイブリッド 3 件、本文ページ 2 件) / 未振り分け 0。ハイブリッド判定の揺れは DOC-OPS-22 Review After (2026-12) の再評価入力
教訓: 実装中に並行セッションのブランチ切替で commit が相手ブランチに乗る事故が発生 (memory background-agent-branch-bundling 実例 2 として記録)。復旧 = detach → cherry-pick → branch -f 分離。予防 = branch 確認と commit を同一 Bash コール内で実行。
2026-06-10 — PR #1685 — feat — high (OCR Bench: Phase 1c 完了 + 後続改善 + GAS 版退役 — Worker 移行完結)
date: 2026-06-10
pr: 1685
category: feat
importance: high
files:
- ocr/src/masters.ts
- ocr/src/vote.ts
- ocr/src/index.ts
- ocr/scripts/seed-masters.mjs
- webapp_client/src/ocr-bench/OcrBenchApp.tsx
- mas/300_ui/302_spa_bridge.js
tags:
- ocr-bench
- phase-1c
- migration-complete
OCR Bench の Worker 移行が完結 (関連 PR: #1672 → #1674 → #1676 → #1685、全て本番デプロイ済)。
- Phase 1c (#1672): 501 stub だった 6 エンドポイントを GAS SoT (mas/500_import/510・511) から移植。crop-pass は Gemini 5 サンプル (temperature 0.4-0.8 分散) + Claude Sonnet 1 票の field 単位多数決 (
vote.ts)。マスター照合は D1 化 —ocr_masterテーブル +seed-masters.mjsが GAS ファイルから直接投入 (機密値を diff に入れない / DoD #2)。EMPLOYEE_MASTER をプロンプト動的注入し、取引先/社員№逆引き/工事番号/商品名/車番→機種を run・crop 結果に正規化適用。未投入時は graceful fallback - PDF プレビュー (#1674): Worker は PDF サーバ側画像化非対応 (422) のため、
getDocBlob→ PDF.js クライアント描画の 2 段フォールバックに変更。GAS 経路不変 - クロップモンタージュ R2 永続化 (#1676): run セッション内のメモリ保持だったモンタージュ (実際に model が見たもの) を
montages/<docId>/<slug>へ保存、新 APIgetCropMontagesでリロード後も表示可能に。帳票切替時の他帳票モンタージュ残留バグも解消 - GAS 版退役 (#1685): stale だった
mas/templates/ocr_bench_shell.html(2.9MB) を削除し、?view=ocr_bench_spaは allow-list 判定後に移行案内ページ (Worker URL) を返す。mas/500_import/51*.jsは残置 (511 = マスター seed の SoT)。merge で GAS prod 自動デプロイ済・dev/prod とも実機確認済
残課題: GPT-4o の PDF→画像化のみ (クライアント側レンダリング vs 有償 Images API の判断待ち)。
地雷メモ: doGet の SPA 委譲は view が _spa suffix の時だけ (?view=ocr_bench は HitL ページに落ちる従来仕様)。clasp push の未反映疑いは clasp pull でリモートと byte 突合するのが確実 (今回 87 ファイル一致で silent-skip を除外できた)。
2026-06-10 — PR #1669 — chore — mid (OCR Bench: ブラウザ実機確認完了 + 本番デプロイ + deploy workflow 追加)
date: 2026-06-10
pr: 1669
category: chore
importance: mid
files:
- .github/workflows/ocr-deploy.yml
tags:
- ocr-bench
- deploy
OCR Bench 独立 Worker (ocr/) の handover 手順 1・6 を完了。①Playwright によるブラウザ実機確認 — Basic 認証 (無認証 401 / 認証 200)・React マウント・fetch-bridge の認証自動付与 (Authorization 明示付与は不要と確定)・実帳票 PDF の upload→run→比較表描画まで全 PASS (Claude 3 種 + Gemini 2 種成功、GPT-4o は PDF 直送非対応の既知エラーを正しく捕捉)。②初回手動 wrangler deploy で本番投入 (ocr-bench.t-saitoh.workers.dev) し本番疎通も検証済。③ocr-deploy.yml を追加 — main push (paths: ocr/**) で lint→type-check→deploy、共有 pnpm-lock.yaml は DRP 巻き込み防止のため監視対象外 (deploy-worker.yml と同方針)。既知の地雷: ✂️ crop 列とプレビューが空のままなのは Phase 1c 未実装 (cropPass/getDocBlob/getDocPageImage が 501 stub) による想定どおりの挙動でバグではない。Basic 認証が「通らない」報告は 2 回ともブラウザ入力値の問題で、keychain 値の curl 検証 (200) → pbcopy 渡しで解決した。
2026-06-10 — PR #1642 — chore — mid (ADR-0115 知識レイヤー: 月次セルフチェック初回実走 + drift 是正)
date: 2026-06-10
pr: 1642
category: chore
importance: mid
files:
- docs/_internal/05_how-to/agent_knowledge_layers.md
- .claude/rules/gas.md
- .claude/rules/docs.md
- drp/CLAUDE.md
- webapp_client/CLAUDE.md
tags:
- adr-0115
- adr-0129
- knowledge-layers
- self-improvement
ADR-0115 §4 の月次セルフチェック(①層重複 ②staleness ③auto-memory 索引行数 ④tie-breaker ⑤リリースノート確認)を 初回実走。規約制定(2026-06-04)以降、実行痕跡が無く=自己修復機構が一度も回っていなかった。検出した drift を「根本+重大のみ」是正:
- 誤コメント訂正:
.claude/rules/{gas,docs}.mdと nested CLAUDE.md(DRP / webapp)冒頭の「Phase a/b は二重定義=root にも残存・無害/root スリム化は別 PR」は誤陳述だった。ADR-0129 で root スリム化は完了済みで当該 section は root に残っていない(単一所在)。実態に修正。 - §8 台帳訂正: ユーザースコープ依存インベントリの adr-kit 行は「存在しない」と断言していたが、
.claude/skills/adr-kit/references/(bizlink-domain.md/langgraph-adrkit-boundary.md)が実在(SKILL.md 不在で Skill 化されず・gitignore で非 tracked)。実態に訂正。 - auto-memory 整理(ユーザースコープ・本リポ外のため diff 対象外): 索引が 50 件上限を超過(63 件)し、③索引行数チェックが回っていなかったことが露見。重複 3 クラスタを統合(
git-workflow-discipline← always-use-pr + branch-per-fix + wait-before-merge + pull-before-push /deploy-sequence/clipboard-auto-output)+ 完了済み 4 件をarchive/へ退避し 63 → 56 件。50 ちょうどには未達。crossval 系など独立価値・相互参照の多いメモリの損失を避けたため。 - 規約見直し課題(残): ADR-0115 §4 の「索引 50 件上限・TTL 90 日」は活発期の実態にタイトすぎる疑い。上限値の引き上げ or TTL 主導アーカイブへの運用変更を、発散 4 つ ADR(知識の粒度・配置の正典化)と同じ文脈で別途検討する。
次回トリガー: 翌月(2026-07)の月次、または Claude Code リリースノートでロード挙動・メモリ仕様の変更を検知した時(§2 強制改訂トリガー)。スコープ外(記録のみ・後日): reference 型のパス直参照の安定化 / prompt_*.md の gitignore grandfathering 解消 / root CLAUDE.md の B2→B3→B5 手順 1 行の層移送 / 月次セルフチェックの自動化(lint・schedule)。
2026-06-09 — PR #1623 — feat — mid (ADR-0129 KPI-7: path-scoped ロードの静的 lint + ローカルログ解析ゲート)
date: 2026-06-09
pr: 1623
category: feat
importance: mid
files:
- scripts/adr0129-rules-loading-lint.mjs
- scripts/adr0129-loadlog-check.mjs
- tests/adr0129-rules-loading-lint.test.mjs
- tests/adr0129-loadlog-check.test.mjs
- .github/workflows/adr0129-rules-loading-lint.yml
- docs/_internal/05_how-to/hooks_setup.md
tags:
- adr-0129
- ci
- hooks
- cross-workspace
ADR-0129 KPI-7(issue #1619)の自動検知ゲート。PR #1618 の InstructionsLoaded ロードログの上に、path-scoped ロードの無音失効を 2 段で守る。実 claude は CI で回さない(CLI 認証未確認・flaky・CI の claude バージョンは開発者のものと別)。①CI 静的 lint(adr0129-rules-loading-lint.mjs・PR ゲート)= gas.md の paths: 健全性(ベース dir 実在の forward + GAS レイヤーのカバー漏れ検知の reverse)+ InstructionsLoaded フック配線 + instructions_loaded_log.sh 実在/実行ビットを機械検証。secret 不要・内部退行を確実に FAIL。②ローカル/定期ログ解析(adr0129-loadlog-check.mjs)= .claude/logs/instructions_loaded.log の load_reason=path_glob_match 実績を確認し dev の実 version での実ロードを間接検証。純粋バリデータを分離し node --test 17 件。擬似失効再現(paths から 400_domain 除外 → reverse FAIL)を確認。外部 version 退行は KPI-11 人手再検証 + ②が担当。
2026-06-09 — PR #1614 — feat — mid (ADR-0119 Phase D-2: 週次 evidence SHA/パス git 実在検証 + Phase D 完了)
date: 2026-06-09
pr: 1614
category: feat
importance: mid
files:
- scripts/adr0119-evidence-verify.pure.mjs
- scripts/adr0119-evidence-verify.mjs
- tests/adr0119-evidence-verify.test.mjs
- .github/workflows/adr0119-evidence-verify-cron.yml
- docs/adr/0119-introduce-code-grounded-review-to-review-pipeline.md
tags:
- adr-0119
- drp
- ci
- crossval
ADR-0119 Phase D 後半。evidence pack に記載された commit SHA とファイルパスの git 実在を週次 scheduled CI が機械検証する(git cat-file -e "<sha>^{commit}" と "<sha>:<filePath>")。CV ノード(worker)は git 履歴を持たない(non-goal)ため、起案者が自分で記入し通過させる経路の利益相反を機械検証で構造的に抑制する(§Confirmation の Policy Alignment 対応)。不在は malformed-sha / commit-not-found / file-not-found に分類し GitHub Issue を起票。stale 反映は issue 起票のみ(worker は git 実行不可・KV は read-only で書き換えない)。checkout は fetch-depth: 0。node --test 10 件 + git cat-file smoke + 実機 DRY_RUN で確認。これにより ADR-0119 の Phase 0/B/C-flip/D が出揃い Implementation Status を Done に更新(D-1 #1613 と合わせ継続監視を自動化)。
2026-06-09 — PR #1613 — feat — mid (ADR-0119 Phase D-1: 週次 verify_in_code 解消率アラート)
date: 2026-06-09
pr: 1613
category: feat
importance: mid
files:
- scripts/adr0119-resolution-rate.pure.mjs
- scripts/adr0119-resolution-rate-report.mjs
- tests/adr0119-resolution-rate.test.mjs
- .github/workflows/adr0119-resolution-rate-cron.yml
tags:
- adr-0119
- drp
- ci
- crossval
ADR-0119 §Confirmation の継続監視自動化(Phase D 前半)。週次 scheduled CI が remote D1 (decision-pipeline-telemetry) を SELECT で集計し、verify_in_code 解消率(Σ crossval_evidence_demoted_count / Σ crossval_verify_in_code_count・過去 7 日)が KPI ④ の 30% を下回ったら GitHub Issue を自動起票する。分母フィルタ(週次 <5 件でスキップ・累積 ≤10 件で初回判定保留)+ ロールアウト猶予(累積 demoted が一度も >0 になるまで=evidence 降格機構が未行使の間は保留)で誤報を抑制。判定の純粋ロジックは adr0119-resolution-rate.pure.mjs に分離し node --test 8 件で境界を固定。D1 アクセスは read-only(SELECT のみ)・worker src 不変のため本番デプロイ trigger には非該当。前例 prompt_regression_cron.yml に設計・secret・issue 書式を揃える。実機 DRY_RUN で集計(過去 7 日: 分母 68 / 分子 0 = 0%)を確認。Phase D 後半(evidence SHA/パスの git 機械検証)は別 PR。
2026-06-09 — PR #1603 — fix — high (ADR-0119 Phase C-flip 本番稼働 + evidence 動的注入 hotfix・DRP-0382)
date: 2026-06-09
pr: 1603
category: fix
importance: high
files:
- drp/src/nodes/cross_validation.ts
- drp/src/nodes/crossval_loopbreaker.ts
- drp/src/evidence.ts
- drp/src/state.ts
- drp/src/workflows/gate_runner.ts
- drp/src/queues/pipeline_consumer.ts
- drp/migrations/migrate-v10-crossval-evidence-demoted.sql
- prompts/production/cross-validation/prompt.md
tags:
- adr-0119
- drp
- crossval
- cross-workspace
ADR-0119 Phase C-flip を本番稼働。verify_in_code × 非stale evidence を満たす CV 却下を降格する仕組み (PR #1600) を導入し、回帰修正 hotfix (PR #1603) で確定。設計: isRejectingVerdict (pure・FN=0 SSoT) を crossval_loopbreaker.ts に追加し CV revise filter と extractRejectingTitles で共有 (demoted = verifyInCode && evidenceResolved・staleness は述語に入れず clock 非依存)。evidence を PipelineState へ配線し gate_runner.loadStaleAnnotatedEvidence を Queue consumer と Workflows の mergedInput 両方へ注入 (CV ノードは IO-free)。telemetry crossval_evidence_demoted_count を 6 touchpoint + migrate-v10 (remote D1 適用済) + CI seed glob に追加。事故と収束 (DRP-0382): #1600 は (a) evidence-resolution 指示を CV system プロンプトへ静的に載せた結果 golden #11 が baseline FN 0/5→5/5 に回帰、(b) git checkout HEAD~0 の detach→amend→push で修正前コミットを本番デプロイ。#1603 で evidence 指示を添付時のみ userMsg へ動的注入へ変更し FN 0/5 復帰・05:02Z に正版デプロイ。実害ゼロ (露出 14 分間に実審査 run 0 件)。教訓は memory crossval-static-prompt-drift / verify-pushed-sha に記録。
2026-06-05 — PR なし — docs — mid (ADR-0120 本番切替に EDD 外部設計 + operator_guide を追従)
date: 2026-06-05
pr: null
category: docs
importance: mid
files:
- docs/_internal/03_decisions/decision_pipeline/layers/30_external/api_specification.md
- docs/_internal/03_decisions/decision_pipeline/layers/30_external/openapi.yaml
- docs/_internal/03_decisions/decision_pipeline/layers/30_external/state_machine.md
- docs/_internal/05_how-to/operator_guide_langgraph.md
tags:
- adr-0120
- drp
- cf-workflows
- cross-workspace
ADR-0120 本番切替 (Workflows・2026-06-05 21:45 JST) に L3 外部設計を追従。api_specification: 実行基盤 2 経路注記・base info 行・503 (fail-loud) エラー・/debug/workflow-trigger 追加 (19 ルート化)・§4 を Workflows/Queue 契約に再編。openapi.yaml: 503 (RunStartFailed)・/debug/workflow-trigger path・engine フィールド (RunsQueuedResponse / PipelineSessionState)。state_machine: State 図と status/watchdog を engine 非依存に明記し retry/失敗終端・キャンセル機構を engine 別に併記。operator_guide §7.13 に「切替実施済み (4 週監視中)」状態注記。出典は drp/src/index.ts 実装を実査。
2026-06-05 — PR #1489 — fix — low (ADR-0120 c-3 corrigendum 第 2 項: アラート通知先を Google Chat webhook に汎用化)
date: 2026-06-05
pr: 1489
category: fix
importance: low
files:
- drp/src/ops/running_alert.ts
- drp/src/llm/gateway.ts
- drp/wrangler.toml
tags:
- adr-0120
- drp
通知先を Slack #ops-alert → Google Chat の ops-alert スペース webhook に汎用化 (Workspace 運用に整合)。secret 名 OPS_ALERT_SLACK_WEBHOOK → OPS_ALERT_WEBHOOK。{"text"} POST 互換のため Slack webhook URL でも動く。ADR-0120 §Corrigendum 第 2 項として記録。
2026-06-05 — PR #1487 — feat — mid (ADR-0120 Phase c-3: running instance リアルタイムアラート — 1h cron + Google Chat 通知)
date: 2026-06-05
pr: 1487
category: feat
importance: mid
files:
- drp/src/ops/running_alert.ts (新設)
- drp/src/index.ts (scheduled handler)
- drp/wrangler.toml ([triggers] crons 1h)
- drp/src/workflows/instance_status.ts
tags:
- adr-0120
- drp
- cf-workflows
ADR-0120 決定 5 (盲点 7)。同時 running instance 数 >20 (env RUNNING_ALERT_THRESHOLD で上書き可) を 1h cron で監視し ops-alert へ webhook 通知 (通知先は #1489 で Google Chat に汎用化)。計数機構は ADR 文面の Analytics Engine から Workflows REST API count に変更 (2026-06-05 代表取締役承認・ADR-0120 §Corrigendum に追記)。secret (WORKFLOWS_READ_API_TOKEN / OPS_ALERT_WEBHOOK — #1489 で改名) 未投入の間は running_alert_skipped_no_token / running_alert_no_webhook ログで監視無効が観測可能。有効化手順 = operator_guide §7.13。
2026-06-05 — PR なし — test — high (ADR-0120 本番ステージング検証 PASS — 本番切替ゲート通過)
date: 2026-06-05
pr: null
category: test
importance: high
files:
- docs/_internal/03_decisions/decision_pipeline/layers/70_verification/staging_verification_adr0120_2026-06-05.md (検証記録・恒久化)
tags:
- adr-0120
- drp
- cf-workflows
- staging
実 Workflows runtime での本番ステージング検証 (main 実施・2026-06-05): ①並列 3 run 完走 ②step retry 自然発生 → 完了済み step 再実行ゼロを実測 (撤退条件②の冪等性を実環境確認) ③キャンセル ≤1s abort + instance Terminated + telemetry 二重書込なし ④キャンセル後課金 = in-flight 1 呼出の gateway 側自然完走 ~30.5 秒のみ (§5.2 許容範囲内)。本番切替 (WORKFLOW_ENTRYPOINT_ENABLED=true) の前提ゲート PASS 判定。残 = 切替の運用アクション + アラート secret 投入 + 切替後 4 週監視。検証記録は I.03.0.16 として恒久化。
2026-06-05 — PR #1484 — feat — mid (ADR-0120 Phase c-2: instance status API アダプタ層 + CI 週次フィールドアサート)
date: 2026-06-05
pr: 1484
category: feat
importance: mid
files:
- drp/src/workflows/instance_status.ts (新設・アダプタ層)
- drp/scripts/assert_workflows_status_api.mjs (新設)
- .github/workflows/drp-workflows-api-assert.yml (新設・週次)
- drp/src/index.ts
tags:
- adr-0120
- drp
- cf-workflows
ADR-0120 Phase c-2 (決定 4・盲点 5 緩和)。Workflows instance status API への依存を単一アダプタ層 instance_status.ts に集約し、取得フィールドの型・存在チェックを CI で週次アサート (API 仕様変更の無音破壊を検知)。EDD への API 表面追従 (Phase b の session/cancel engine フィールド・/session/cancel-finalize 等の openapi.yaml / api_specification / state_machine 反映) は Phase c 完了 = 本番切替時の docs 反映にまとめて実施 (積み残しでなく意図的な合流・本エントリで埋もれ防止)。
2026-06-05 — PR #1483 — docs — high (ADR-0122 受理: 提案資料生成パイプラインを Slide-IR(JSON) ベースで構築)
date: 2026-06-05
pr: 1483
category: docs
importance: high
files:
- docs/adr/0122-proposal-generation-pipeline-build-slide-ir-json-based.md (新設)
- docs/_config.json (nav A.09.5.83)
tags:
- adr-0122
- slide-gen
- drp
.md 原稿 + 会社紹介 PPTX テンプレ → ブランド一致 .pptx を Slide-IR(JSON) 中間表現で生成する決定 (Standard・CV 一発通過 46/50・merge = 受理。2026-06-02 の goalpost ループは ADR-0109 fix で解消済を実証)。LLM は layout 選択・要約のみ・OOXML は決定的コード担当・CJK <a:ea> を XPath アサートで配布前検出。通過後修正 = §コスト試算復元 (7 人週内訳・個人名→職位置換) + 現状ベースライン記録要件 (段階 1 開始前必須) + テナント層条件 (Jr 2 週間レビュー可否チェック + 運用オーバーヘッド年間実測)。DOC-OPS-16 完結。実装 = main 領分 (renderer 確定 PoC が最初・7〜14 人週)。
2026-06-05 — PR #1481 — test — mid (ADR-0120 Phase c-1: Workflows 経路の mocked e2e ハーネス + CI 毎 PR ゲート化)
date: 2026-06-05
pr: 1481
category: test
importance: mid
files:
- drp/test/e2e/workflows/run_scenarios.mjs (新設)
- drp/test/e2e/workflows/mock_llm.mjs (新設)
- .github/workflows/drp-test.yml
- drp/test/e2e/README.md
tags:
- adr-0120
- drp
- cf-workflows
ADR-0120 Phase c-1。Workflows 経路 (PipelineRunWorkflow) の mocked e2e ハーネスを新設し CI 毎 PR ゲートに配線。残 = kill/retry 注入 + ステージング検証ゲート + 本番 flag ON。
2026-06-05 — PR #1474 — docs — high (ADR-0121 受理: 審査パイプライン製品化に Phase 0+1 限定で go)
date: 2026-06-05
pr: 1474
category: docs
importance: high
files:
- docs/adr/0121-productize-decision-review-pipeline-for-phase-0-1.md (新設)
- docs/_config.json (nav A.09.5.82)
tags:
- adr-0121
- productization
- drp
Decision Pipeline 製品化の go/no-go (proposal PR #1378 §8 次アクション 2 の帰結)。Phase 0 (実績ダッシュボード/デモ素材/営業資料 3.5 人日) + Phase 1 (1 社 PoC・出口 = 実起案 10 件 + 継続意思) に限定して go・Phase 2/3 は別 ADR・週 1 人日キャップ・PoC 候補期限 2026-09 末 (Standard・47/50 一発通過・merge = 受理)。通過後修正 = §コスト試算 H2 化 + テナント層条件 3 件 (撤退条件 #8 法務レビュー = Phase 1 開始ブロッカー / KPI 5 Jr 引き継ぎ文書化 / 自社側ロックイン回収 = Phase 2 ADR 必須入力) + Review After 2026-12 月初。
2026-06-05 — PR #1476 — feat — high (ADR-0120 Phase b: 入口 feature flag 切替 + キャンセル強化 + gateProgress idempotency)
date: 2026-06-05
pr: 1476
category: feat
importance: high
files:
- drp/src/index.ts (入口 flag 分岐 + fail-loud 503)
- drp/src/do/pipeline_session.ts (/session/cancel-finalize + seq 照合)
- drp/src/workflows/pipeline_run_workflow.ts (AbortSignal 伝播)
- drp/src/workflows/gate_runner.ts (seq 導出純粋関数)
- drp/src/llm/gateway.ts ほか (計 8 ファイル)
tags:
- adr-0120
- drp
- cf-workflows
ADR-0120 Phase b・本番デプロイ済み。① 入口切替 feature flag: /chat/start?async=true・/runs は WORKFLOW_ENTRYPOINT_ENABLED=true で PIPELINE_RUN_WORKFLOW.create() (instance id = sessionId)、既定 (未設定) は従来 Queue enqueue で挙動不変。切替は wrangler secret put (デプロイ不要・即時 rollback)・create 失敗は fail-loud 503 (決定 5)・session に engine 記録。② キャンセル 3 層 (決定 3): instance terminate 併用 + DO /session/cancel-finalize (complete/error と race しない条件付き終端) + step 内 1 秒 polling + AbortSignal の in-flight LLM HTTP 即中断 (課金停止)。Queue engine は不変。③ gateProgress idempotency (決定 3): gateId+seq (init=0/running=奇数/done=偶数の決定的導出) で DO が適用済み seq 以下を破棄 — step retry/replay の重複・巻き戻り排除。seq なし patch (Queue consumer) は無条件適用。④ 本番 ON は Phase c ステージング検証 (並列 3 run・LLM 429・DO 競合・キャンセル後課金計測) 通過後のみ (撤退条件)。運用手順 = operator_guide §7.12。
2026-06-05 — PR #1480 — docs — mid (DRP 外部設計 EDD-002/EDD-005 の集中整備 — 関連 7 PR バッチ記録)
date: 2026-06-05
pr: 1480
category: docs
importance: mid
files:
- docs/_internal/03_decisions/decision_pipeline/layers/30_external/data_definitions.md (EDD-002)
- docs/_internal/03_decisions/decision_pipeline/layers/30_external/external_interfaces.md (EDD-005 新設)
- docs/_internal/03_decisions/decision_pipeline/layers/00_entry/document_catalog.md
- docs/_config.json
tags:
- adr-0117
- drp
- edd
別セッション (sub) による EDD 集中整備 7 PR のバッチ記録 (最新 #1480 を主とし関連 = #1468/#1471/#1473/#1475/#1477/#1479)。EDD-005 外部 I/F 一覧の新設 (#1468) に加え、EDD-002 データ定義書を D1 全カラム定義表 (56 カラム・schema.sql + migrate-v2〜v8 のコード実査で正典化 #1471) → 値の例 (実 run 169 件から採取 #1473) → KV/DO/Queue 封筒の値の例 + 連番列 (#1475) → 型と上限の共通規則注記 (#1477) → PK/FK/NN フラグ列分離 (#1479) → デフォルト値列 (#1480) の順で増強し「データ定義書の核」を完成。
2026-06-05 — PR #1464 — docs — mid (受理済み ADR 7 本の Status drift 解消 + 0112 HITL marker 補正)
date: 2026-06-05
pr: 1464
category: docs
importance: mid
files:
- docs/adr/0112-docs-build-incremental-build.md (HITL marker + accepted-with-residual-risks タグ)
- docs/adr/0113〜0117・0119 (Status Accepted 化 + 承認日時 — PR #1463)
tags:
- adr-status
- hitl
- residual-risks
handover #1461 指摘の Status 積み残し対応 (関連 PR #1463 を主作業として参照)。#1463 で受理 PR の merge 実績が検証できた 7 本 (0112〜0117/0119) を一括 Accepted 化 + 承認日時記入 (0115/0116 は accepted-with-residual-risks タグ併記)。#1464 はその取りこぼし補正: 0112 は手動 escalate 起票 (PR #1401・CV 4 連続 goalpost) で残余リスク節を持つのに <!-- HITL-RATIFIED-RESIDUAL --> marker が無く plain Accepted 扱いになっていたため、marker + タグを 0115/0116 と同形式で追記 (residual-risks-status-tag lint の双方向整合・Gate 2 corpus は先頭 40 行のみ参照のため Status タグが downstream への唯一のシグナル)。教訓: 手動 escalate 起票時は marker 添付を忘れやすい (自動 escalate は付与される・0112 で実証)。対象外 = 0110 (実機検証待ち) / 0111 (受理記録なし) / 0118 (PR #1443 open) / 0120 (管轄セッション衝突回避)。adr-lint 120/120 pass。
2026-06-05 — PR #1470 — feat — high (ADR-0120 Phase a-2: PipelineRunWorkflow — durable execution 本体・dormant デプロイ)
date: 2026-06-05
pr: 1470
category: feat
importance: high
files:
- drp/src/workflows/pipeline_run_workflow.ts (新設)
- drp/src/index.ts (POST /debug/workflow-trigger)
- drp/wrangler.toml (workflows binding)
- drp/src/workflows/gate_runner.ts
- drp/src/queues/pipeline_consumer.ts (他 8 ファイル)
tags:
- adr-0120
- drp
- cf-workflows
ADR-0120 Phase a-2。PipelineRunWorkflow (Cloudflare Workflows) を 1 step.do = 1 gate で実装し本番へ dormant デプロイ (入口未接続・WORKFLOW_TRIGGER_ENABLED 未設定 = 404 で既存 queue consumer 経路に影響なし)。検証は POST /debug/workflow-trigger (Basic auth・dry_run 既定 true) — ① mock early-reject ② 実 LLM Light 全 10 gate 完走 4.7 分 ③ schemaVersion 不一致 → 10.6 秒 failed 終端の 3 経路を実機確認済み (検証手順 = operator_guide §7.11)。残: Phase c (e2e + kill/retry 注入 + ステージング検証ゲート)。Phase b は PR #1476 で完了 (2026-06-05)。
2026-06-05 — PR #1467 — feat — mid (ADR-0120 Phase a-1: checkpoint 基盤 + ADR-0116 Superseded 化)
date: 2026-06-05
pr: 1467
category: feat
importance: mid
files:
- drp/src/checkpoint/envelope.ts (新設)
- drp/src/checkpoint/do_checkpoint_saver.ts (新設)
- drp/src/workflows/gate_runner.ts (consumer から抽出)
- drp/test/ (checkpoint_envelope / do_checkpoint_saver / gate_runner)
- docs/adr/0116 (Status: Superseded by ADR-0120)
tags:
- adr-0120
- adr-0116
- drp
- cf-workflows
ADR-0120 Phase a-1。checkpoint envelope (schemaVersion 付き) + DO-backed BaseCheckpointSaver + gate 実行ロジックの gate_runner 抽出 (queue consumer から分離・Workflow と共用可能に)。ADR-0116 (gate 単位 chunk 化) を Superseded by ADR-0120 に転換 (§Phase 0 調査記録は 0120 の決定根拠として参照継続)。
2026-06-05 — PR #1462 — docs — mid (ADR-0120 受理: Decision Pipeline 実行基盤を Cloudflare Workflows へ移行)
date: 2026-06-05
pr: 1462
category: docs
importance: mid
files:
- docs/adr/0120-migrate-decision-pipeline-to-cf-workflows-durable-execution.md (新設)
tags:
- adr-0120
- drp
- cf-workflows
Decision Pipeline の実行基盤を Cloudflare Workflows へ移行し durable execution (チェックポイント・リトライ・タイムアウト管理) をプラットフォームに委譲する決定 (Standard・merge = 受理)。HITL 追補としてテナント層条件 4 件 + Review After + §コスト試算 H2 復元を含む。ADR-0116 の自前 chunk 化アプローチを置き換える (Phase a 実装 = PR #1467/#1470)。
2026-06-05 — PR #1459 — docs — low (DRP draft title への mode サフィックス禁止を規約化)
date: 2026-06-05
pr: 1459
category: docs
importance: low
files:
- .claude/skills/drp-ops/SKILL.md
- docs/_internal/05_how-to/operator_guide_langgraph.md
tags:
- drp
- drp-ops-skill
KV draft の title に (Standard) 等の mode サフィックスを含めない規約を drp-ops Skill + operator_guide に明文化 (mode は triage が判定・深度指定は modeOverride・title 表記はアンカーになるため)。
2026-06-05 — PR #1458 — feat — mid (adr-lint: references-section ルール — §参照のテンプレ正規構造を機械強制)
date: 2026-06-05
pr: 1458
category: feat
importance: mid
files:
- scripts/lib/adr-lint-rules.mjs
- tests/adr-lint-rules.test.mjs
- docs/_internal/05_how-to/adr-lint_rules/rules/references-section.md (新設)
- docs/_internal/05_how-to/adr-lint_rules.md
- docs/_config.json
tags:
- adr-lint
ADR-0019 以降の Standard/Critical ADR に §参照 (References) または §関連 ADR セクションを機械強制する第 20 ルール references-section を追加 (0001〜0018 は grandfather・Light mode は免除)。
2026-06-05 — PR #1460 — docs — mid (ADR-0117 Phase 2: DRP 外部設計 4 分冊 + NFR + テスト計画/設計の sub 分担)
date: 2026-06-05
pr: 1460
category: docs
importance: mid
files:
- docs/_internal/03_decisions/decision_pipeline/layers/30_external/ (api_specification / openapi.yaml / data_definitions / prompt_io_contracts / state_machine 新設)
- docs/_internal/03_decisions/decision_pipeline/layers/20_system/nonfunctional_requirements.md (新設)
- docs/_internal/03_decisions/decision_pipeline/layers/70_verification/ (test_plan / test_design 新設)
- docs/_internal/03_decisions/decision_pipeline/layers/20_system/system_requirements.md (verified-by 全割当)
- docs/_internal/03_decisions/decision_pipeline/README.md (§8.1 図3 / §12.4 / §12.5-12.6 / テスト行を抽出・リンク化)
tags:
- adr-0117
- drp
- strangler-fig
ADR-0117 Phase 2 (sub 主体 3.0 人日)。外部設計層 30_external/ を新設し EDD-001〜004 (API 仕様 + openapi.yaml / データ定義 / プロンプト I/O 契約 / 状態遷移仕様) を採番、20_system/ に NFR-001〜008、70_verification/ にテスト計画書 + テスト設計書 (TC-U/TC-G/TC-E/TC-MK 系列採番) を新設。SR-003/005/007〜011 の verified-by 未割当を解消。内容整合指標 2 件 (OpenAPI↔実 API 型 / プロンプト仕様↔nodes) は突合可能な構造で文書化し CI 化は main 申し送り (test_plan §4)。strangler-fig は同一コミット抽出・README 702→約 560 行。発見ギャップ (main 申し送り): policy-alignment の production プロンプトファイル欠落 (実効 SSoT が inline fallback = ADR-0085 と同型の監査 gap)。残 = catalog の Should 優先度 P2 行 (ビジネスフロー図 / UC 一覧 / 画面設計 / C4 L1 / ランブック等) + Phase 3。
2026-06-04 — PR #1454 — docs — mid (ADR-0116 Phase 0 spike ②③: chunk 化は公式 checkpoint API で成立・案C 統合障壁は想定より小)
date: 2026-06-04
pr: 1454
category: docs
importance: mid
files:
- docs/adr/0116-redesign-decision-pipeline-chunking-to-avoid-consumer-kill.md
tags:
- adr-0116
- drp
ADR-0116 Phase 0 spike ②③ の結果を §Phase 0 調査記録に追記。gate 単位 chunk 化は LangGraph 公式 checkpoint API (MemorySaver 互換) で成立し、案C (CF Workflows 統合) の統合障壁は想定より小。本調査記録は ADR-0120 (CF Workflows 全面移行) の決定根拠として参照継続される (0116 Superseded 化後も)。
2026-06-04 — PR #1453 — docs — low (ADR-0116 Phase 0 調査記録 ①⑤⑥: state サイズ実測・DO コスト試算・案C migration 粗見積もり)
date: 2026-06-04
pr: 1453
category: docs
importance: low
files:
- docs/adr/0116-redesign-decision-pipeline-chunking-to-avoid-consumer-kill.md
tags:
- adr-0116
- drp
ADR-0116 Phase 0 調査記録 ①⑤⑥ (state サイズ実測・DO storage コスト試算・案C migration 粗見積もり) を追記。
2026-06-04 — PR #1452 — feat — mid (ADR-0114 main 領分: Tier A 状態 staleness + 引用ブロック smoke test を CI 配線)
date: 2026-06-04
pr: 1452
category: feat
importance: mid
files:
- scripts/tier-a-header-lint.mjs (新設)
- scripts/docs-build.mjs (--only 部分ビルドフラグ)
- .github/workflows/docs-nav-lint.yml
- docs/adr/0114 (§コスト試算へ確定値附記)
- docs/_internal/05_how-to/writing-guide.md (§7.1 実装済み化)
tags:
- adr-0114
- docs-lint
ADR-0114 main 領分 (followups handover Step 2) の実装。T1: Tier A ページの「状態 = Production × 最終 commit 183 日超」を CI 警告 (checkout fetch-depth: 0 で日付取得)。T2: Tier A 7 ページを部分ビルドし、レンダリング済み HTML に必須 4 項目 (状態/コード/基盤決定/変更履歴) の存在をアサート = FAIL (ビルドツール更新による同時崩壊の検知・§決定 5)。フルビルドが ~10 分かかるため docs-build.mjs に --only prefix フィルタを追加し Tier A のみ ~5 秒で検査。適用保留 2 ページ (corporate-tax/project-accounting) は §1 未展開を info skip。(c) 実行環境 = GitHub Actions で確定し試算 0.25 人日どおり → ADR-0114 §コスト試算へ附記、writing-guide §7.1 の「実装完了まで人手検認で代替」を実装済みに更新。教訓: 初回検証で stale な _site/ artifact を読み偽 FAIL 4 件 — smoke は必ず fresh partial build とペアで実行する設計にした。
2026-06-04 — PR #1451 — docs — mid (ADR-0117 Phase 1: DRP ドキュメント層別再編 must-have の sub 担当 6 項目)
date: 2026-06-04
pr: 1451
category: docs
importance: mid
files:
- docs/_internal/03_decisions/decision_pipeline/layers/00_entry/id_conventions.md
- docs/_internal/03_decisions/decision_pipeline/layers/00_entry/glossary.md
- docs/_internal/03_decisions/decision_pipeline/layers/00_entry/document_catalog.md
- docs/_internal/03_decisions/decision_pipeline/layers/10_business/business_requirements.md
- docs/_internal/03_decisions/decision_pipeline/layers/20_system/system_requirements.md
- docs/_internal/03_decisions/decision_pipeline/README.md
- docs/adr/templates/template.md
tags:
- adr-0117
- drp
- strangler-fig
ADR-0117 Phase 1 must-have 8 項目のうち sub 担当 6 項目を実装。layers/ 配下に入口層(ID 規約 + L1〜L4 分類ガイド / DRP 用語集 / 9 層×41 文書カタログ索引)・BR-001〜005・SR-001〜011(ゲート毎 1)を新設し、README を 749→701 行にハブ化(§3〜5/§7 を同一コミットで抽出・リンク化、移行前スナップショットは docs/_internal/archive/ に保存)。ADR テンプレに Covers:/Constrains: トレーサビリティフィールドを追加。残 = main 分担 2 項目(CI lint orphan 検出 + PR テンプレ L1-L4 チェック。lint 仕様の正典は id_conventions.md §2.4)。
2026-06-04 — PR #1449 — docs — mid (個人名表記の全量改修 — 達希 → 代表取締役 / アカウントアドレス)
date: 2026-06-04
pr: 1449
category: docs
importance: mid
files:
- docs/** tasks/** (185 ファイル・~950 箇所)
- docs/_internal/05_how-to/writing-guide.md (§8 禁止事項に規約追加)
- drp/src/company_policy.md ほかテスト fixture 3 件
tags:
- naming-convention
- cross-workspace
代表取締役指示 (2026-06-04): ドキュメント内の個人名「達希」を全量改修。職位が適切な箇所 (指示・判断・観測・レビューの主体・散文) → 「代表取締役」/ アカウントが適切な箇所 (起案者・Deciders・author 等のメタデータ欄) → [email protected]。例外 2 件は意図的に温存: 500_import/502_bank_importer.js と 800_ops/808_migration_i24.js のコメント・メッセージ内「立替精算_齋藤達希」「振込先名(例: 齋藤達希)」は実データの値を説明する記述のため実データと一致させる。writing-guide §8 に表記規約を明文化 (今後の新規記述に適用)。corpus.json 2 件 (docs-search-worker / rq-eval) と test fixture (author 欄) も追従。検証: docs-nav-lint / adr-lint 118/118 / decision-pipeline 76 テスト全 pass。
2026-06-04 — PR #1446 — fix — mid (Cross-Validation「毀損ロジック」の日本語化 + golden eval FN=0 検証 + drp-ops に eval 手順)
date: 2026-06-04
pr: 1446
category: fix
importance: mid
files:
- prompts/production/cross-validation/prompt.md
- drp/src/nodes/cross_validation.ts
- .claude/skills/drp-ops/SKILL.md
tags:
- decision-pipeline
- prompt
代表取締役指示「既存ロジックが英語になってしまう問題も解決して」(sub handover) への main 対応。CV 差し戻しレポートの「毀損ロジック」列 (reasoning) が英語のままだった根因 = Gate 1 にはある [Language] 節が cross-validation プロンプトにだけ無かった。production + inline fallback の両方に [Language] 節を挿入 (semver 1.1.0→1.2.0)。golden eval (Cloud Run gateway・26 cases) で FN=0 / FP=0 / accuracy 100% を実証してから投入 — [Language] 節は undermines 判定に影響しないことを確認済み。あわせて drp-ops Skill に「Cross-Validation golden eval」節を新設 (Cloud Run + keychain MASTER key の確立手順・Docker/ローカル gateway は起動しない・.dev.vars の罠 2 つ)。KV へは main merge の prompt_eval.yml が自動 push。
2026-06-04 — PR #1436 — docs — mid (failure_patterns #44: worker デプロイが in-flight 審査 run を kill + CLAUDE.md ガード追加)
date: 2026-06-04
pr: 1436
category: docs
importance: mid
files:
- docs/_internal/06_ops/failure_patterns.md
- CLAUDE.md
- tasks/prompts/main_2026-06-04_adr0114-0115-mas380-followups.md
tags:
- decision-pipeline
- deploy
- claude-md
PR #1431 merge の自動デプロイ (deploy-worker.yml, 12:05 UTC) が実行中の審査 run (drp-layered-docs-architecture 再投入) の consumer invocation を kill → 再配信は isInflightRedelivery ガードで ack-skip → EC-3 watchdog が idle 1200s で error 終端 (12:26, telemetry 記録あり = watchdog は設計どおり機能)。merge = 即本番デプロイの配線に対し実行中 run との排他がない構造を failure_patterns #44 として教訓化し、CLAUDE.md Workflow 節に「worker src PR の merge 前に審査 run 実行中でないかユーザーに確認」を追加。構造解消は queue-consumer-gate-chunking ADR (審査 pass 済・PR 起票待ち)。あわせて followups handover に Step 1 (PR #1420)・Step 3 (PR #1426) の完了を追記。
2026-06-04 — PR #1435 — docs — mid (ADR-0115 sub 実装: 知識レイヤページ + drp-ops Skill + drift 修正 + 棚卸し)
date: 2026-06-04
pr: 1435
category: docs
importance: mid
files:
- docs/_internal/05_how-to/agent_knowledge_layers.md (新設・nav I.05.0.25)
- .claude/skills/drp-ops/SKILL.md (新設・リポスコープ Skill 第 1 号)
- docs/adr/README.md
- scripts/deep_research_meta_prompt.md
- CLAUDE.md
- README.md
- docs/_internal/02_project/BUG_tracking.md
tags:
- adr-0115
- knowledge-layers
ADR-0115 (PR #1423 受理) の sub 領分実装。①知識レイヤページ新設 (6 層責務表 + 書き分け決定表 + ユーザースコープ依存インベントリ + 実害 4 件の層別トレース表 + ベースライン記録)。発効判定: 層定義欠如起因 3 件 ≥ 2 で正式発効。②drp-ops Skill 新設 — staleness lint S1/S2/S3 ローカル pass・draft フラグなし (main の lint PR #1426 実装済みで Confirmation 7 条件成立)。③drift 修正 3 件: adr/README.md の adr-kit 参照 → drp-ops 付け替え (adr-kit はユーザースコープにも実体なしと実査確定) / prompt_*.md 3 件の位置づけはインベントリに収載 / meta prompt 保存先記述を実慣行へ同期 [cross-workspace]。④CLAUDE.md: Progress tracking「sub も対象」+ 書き分け 5 行要約 (159 行 ≤ 200 目安)。⑤sub auto-memory 棚卸し: 行番号参照除去 4 ファイル・解決済み 2 件削除 (clasp33 疑義/mermaid)・重複索引統合 1 (force-push 旧記載も更新)・索引 52→49 件 (≤50 上限)。⑥実害③ (外部書込承認の拡大解釈) は層定義欠如以外が原因のため COM-0381 起票 (クローズ期限 2026-07-04・恒久対処の hooks 拡張は main 領分)。⑦README に docs/知識レイヤページへの導線追加。
2026-06-04 — PR #1431 — feat — mid (Gate 1 盲点レポートの文体規則追加 + gate1-pm/judge SSoT 欠落解消)
date: 2026-06-04
pr: 1431
category: feat
importance: mid
files:
- prompts/production/gate1-da/prompt.md
- prompts/production/gate1-pm/ (新設)
- prompts/production/gate1-judge/ (新設)
- drp/src/nodes/socratic.ts
tags:
- decision-pipeline
- prompt
代表取締役指摘「盲点の記述がわかりにくい」(sub handover PR #1428) への main 対応。Gate 1 の DA/PM/Judge 3 プロンプトに [Writing style] 節を追加 — title は「(状況)すると、(具体的に何が起きるか)」の一文形式 (コロン前振り・体言止め・抽象語のみ禁止、60 字目安)、evidence は最大 3 文で核心先頭、suggested_action は動詞始まり。副産物として gate1-pm / gate1-judge の prompts/production/ SSoT 欠落を解消 (meta.yaml + output_schema.json 新設、semver 1.0.0。gate1-da は 1.1.0→1.2.0)。socratic.ts の fallback 3 本を production と一字一句同期 (機械検証済) + 同期運用コメント追加。graph 分岐・閾値・出力スキーマ変更なしのため ADR 不要 (dedupe は run 内 title 比較のみで挙動不変)。KV へは main merge の prompt_eval.yml が自動 push (手動 push 不要)。注: socratic.ts は温度をハードコード (DA 0.95/PM 0.8/Judge 0.2) し loadLlmParams 未使用のため、新設 meta の llm_params は記録のみ (KV :params は inert)。文体の実機確認は次回審査 run で実施。
2026-06-04 — PR #1424 — docs — low (BUG_tracking: MAS-361 の §2 stale 残留行を削除)
date: 2026-06-04
pr: 1424
category: docs
importance: low
files:
- docs/_internal/02_project/BUG_tracking.md
tags:
- tracking-consistency
MAS-361 (73_bs_plan 売掛金 sStr 境界条件) は PR #509 (commit d32cfa16, 2026-05-07) で修正済み・§1 に完了記録があるにも関わらず、§2 (未修正・調査中) に同一行が stale 残留していた二重掲載を解消。§2 を 5件→4件に訂正し、修正状況サマリーも実カウント (26/4/30) へ更新。引き継ぎ書の「GAS 側未修正バグ 4 件」は実際には MAS-297 / MAS-303 / MAS-362 の 3 件 (+ cosmetic MAS-358)。
2026-06-04 — PR #1422 — docs — mid (案件 ID prefix を領域別に分離 — MAS-371〜380 を DRP-/COM- へリナンバー)
date: 2026-06-04
pr: 1422
category: docs
importance: mid
files:
- docs/_internal/02_project/BUG_tracking.md
- docs/_internal/06_ops/changelog.md
- docs/_internal/05_how-to/operator_guide_langgraph.md
- docs/adr/0089, 0101, 0111, 0112 ほか tasks/prompts 6 件
tags:
- id-numbering
- cross-workspace
案件 ID prefix の領域別分離(代表取締役指示・2026-06-04): MAS-NNN が「リポ全体の汎用連番」に成り崩れ、DRP (Decision Pipeline) のバグや共通基盤案件まで MAS を冒認していた。prefix を MAS-(管理会計 GAS)/ DRP-(Decision Pipeline)/ COM-(認証・docs サイト基盤など共通横断) の 3 本立てに分離し、既存の MAS-371〜380 を prefix 振替方式(番号維持) でリナンバー — DRP-371/374/375/376/377/378/379/380 + COM-373(MAS-372 は案件未割当のため欠番のまま、MAS-370 以前は grandfather。380 は本 PR 作業中に PR #1417 で起票されたため合流時に振替)。番号空間は全 prefix 共有の連番を維持(次 = 381)し重複採番を排除。BUG_tracking §3 の採番ガイドを改定(旧「BUG-NNN」表記の自己矛盾も解消)し、git コミットメッセージ内に残る旧 ID 用のリナンバー対応表を新設。マージ済み PR (#1398/#1402/#1405/#1411/#1417) のタイトルは gh pr edit で新 ID へ更新。
2026-06-04 — PR #1415/#1416/#1418/#1420 — fix/feat — high (残課題バッチ: tooltip clip / 採番時予防 / 実 LLM e2e 機械化 / chat escalate 起票不能)
date: 2026-06-04
pr: 1420
category: fix
importance: high
files:
- templates/page.html
- drp/src/nodes/numbering.ts
- .github/workflows/drp-real-e2e.yml
- drp/src/nodes/crossval_loopbreaker.ts
tags:
- decision-pipeline
- docs-site
- ci
残課題 4 件の一括消化 (時系列): ① PR #1415 (COM-373) docs サイトの表内 glossary tooltip clip を hover 時 fixed 配置への動的切替で解消 (Playwright 実 hover 検証済)。② PR #1416 (DRP-377) numbering gate が open PR の予約 ADR 番号を考慮して採番 (fail-open + adr-lint duplicate の二段構え、numbering_pure.ts 切り出し + 8 テスト)。③ PR #1418 (ADR-0111 フォローアップ) 実 LLM e2e の機械化 — 契約/chat ハンドラ変更 PR で CI 自動実行 (real-llm-e2e job)・隔週 scheduled・workflow_dispatch リリースゲート。real/ スクリプト 2 本を DRP-379 分離ボタン UI へ追従。導入 PR 自身の CI で実 e2e が本番に対し ok:true ×2 を確認 (self-validation)。ADR-0111 corrigendum 追記。④ PR #1420 (DRP-380) chat 経路の escalate で slug/採番がスキップされ「PR 作成」ボタンが 400 になるバグ修正 — DRP-371 修正で chat loop-breaker が初発火した先の未配線 (session 23dc778e 実発生)。ガード dryRun !== true 化 + buildEscalateAcceptMessage で経路別メッセージ出し分け (虚偽「起票しました」解消)。あわせて DRP-376 残課題① (invocation 上限の gate 単位 chunk 化) の ADR 起案 draft を作成 (KV 投入は判断待ち)。
2026-06-04 — PR #1411 — fix — mid (DRP-379: 審査開始/キャンセルを分離ボタン化 — 誤連打の即キャンセル事故を防止)
date: 2026-06-04
pr: 1411
category: fix
importance: mid
files:
- drp/public/chat.html
- drp/test/e2e/ui/chat_state_machine.spec.ts
- docs/adr/0101-pipeline-cancel-in-flight-review.md
tags:
- decision-pipeline
- chat-ui
DRP-379 修正: ADR-0101 の単一トグルボタン (開始⇄停止) は誤連打 (ダブルクリック) で 1 打目の審査開始直後に 2 打目がトグル化済みボタンを踏んで即キャンセルになる事故が実運用で発生 (代表取締役観測・変更指示)。#cancel-btn (独立 type="button"・審査中のみ表示) を新設し協調キャンセル/キャンセル予約/リロード復元停止を移設、審査中は #start-btn を disabled「審査中…」に (二重 submit 防止・重複起動の主防御はサーバ 409 排他で不変)。ADR-0101 へは corrigendum 方式で「単一トグル」撤回を追記 (決定本文不変)。副次効果: キャンセルが type=button 化したことで DRP-375 の formNoValidate 回避策が構造的に不要となり撤去。e2e は分離ボタン状態機械で全面更新 + 誤連打回帰テスト新設 (ダブルクリック → cancel 0 件・start 1 回)、11/11 pass。
2026-06-04 — PR #1405 — fix — mid (DRP-378: 中間結果パネルの要否判定「判定: - / モード: -」ギャップを解消)
date: 2026-06-04
pr: 1405
category: fix
importance: mid
files:
- drp/src/queues/pipeline_consumer.ts
- docs/adr/0089-decision-pipeline-progressive-streaming-per-gate.md
tags:
- decision-pipeline
- progressive-streaming
DRP-378 修正: ADR-0089 corrigendum (2026-05-30) の既知ギャップ — chat UI「審査中の中間結果」パネルの要否判定が常に 判定: - / モード: -。triage は preGraph (非ストリーミング) 実行のため streaming ループの patchPartial が捕捉できず、main graph の triage ノードは needsAdr 設定済で {} を返し空 partial が書き込まれていた (2026-06-04 の全 run で partial:triage={} を実測・デプロイ退行ではない)。修正: ①consumer の pre 解決点で patchPartial('triage', ...) を明示書込 (early-reject でも判定理由を表示) ②extractGatePartial('triage') は needsAdr 不在の空出力で null を返し streaming ループの {} 上書きを防止 ③ADR-0089 corrigendum に解消を追記 (socratic は ADR-0071 で main graph 移動済みのため現存ギャップは triage のみだった)。実機確認は次回 chat run。
2026-06-04 — PR #1402 — fix — high (DRP-371: chat UI 経路の draftId 欠落で loop-breaker 無言無効を修正)
date: 2026-06-04
pr: 1402
category: fix
importance: high
files:
- drp/src/index.ts
- drp/src/queues/pipeline_consumer.ts
- drp/public/chat.html
- drp/test/e2e/ui/draft_binding.spec.ts
tags:
- decision-pipeline
- loop-breaker
DRP-371 修正: chat UI 起点の全審査で ADR-0109 goalpost loop-breaker が構造的に発火不能だった (escalate KPI 常時 0・無言)。真因はサーバ側 — chat UI は元から draft_id を送信していた (active-draft-id hidden input) が、/chat/start handler が受領せず session state の draftId が常に欠落 → telemetry NULL → 履歴クエリ (WHERE draft_id) が原理的に不可能。修正: ①サーバで draft_id 受領 (DRAFT_ID_RE 検証) → DO state 伝播 + triggerSource: 'web-ui' 明示 (経路識別の「推定」を解消) ②consumer の loop-breaker スキップ時に crossval_loopbreaker_skipped 警告ログ (safety 機構の無言無効化を可視化) ③UI 防御 — 紐付け draft ID の可視チップ + ✕ 解除ボタン (stale 紐付け事故防止) + active-draft-id/active-draft-retroactive の localStorage 永続化 (リロードで履歴連続性が切れる逆方向 stale も解消)。mocked-route e2e 3 本追加 (draft_binding.spec.ts)、e2e 10/10・unit 46/46 pass。残: draft 未ロードの直書き起案は draft_id なし (チップ非表示で可視) — 原稿ハッシュ代替キーは見送り。あわせて BUG_tracking の DRP-374 を §1 修正完了へ移動 (実機検証合格: 並走 3 run で後発 2 run が queued 370s 超を通過し完走・watchdog-timeout 新規 0)。
2026-06-04 — PR #1399 — docs — mid (test-tc.mjs 転写プロンプト陳腐化を既知化 — triage 検証の正は tools/triage-eval)
date: 2026-06-04
pr: 1399
category: docs
importance: mid
files:
- docs/_internal/03_decisions/decision_pipeline/README.md
- docs/_internal/03_decisions/decision_pipeline/prompts/01_triage.md
tags:
- decision-pipeline
- prompt-drift
DRP Triage 単体テスト (triageOnly) 実施時に発見した未追跡の改修漏れを docs 側で既知化。test-tc.mjs 内の転写プロンプトは 2026-05-12 の作成以降未更新で、「迷ったら厳しめ(上位モード)」の旧ルールのまま — 本番 SSoT / inline fallback は 2026-05-14 (dc5350f) と 2026-06-02 (ADR-0102 ① semver 1.2.0) に「Standard を既定値」へ改修済。同期規約 (DRP README §9.1) が「production prompt.md + 設計 doc の同一 PR 更新」のみ規定し、test スクリプト内の第 3 の転写が対象外だったのが構造要因。対応: ① DRP README §12 テスト表に「triage 分類検証の正は tools/triage-eval/eval.ts (SSoT 直読み・golden 26・FN=0 ゲート)」と陳腐化注記を明記、② prompts/01_triage.md 検証観点の旧文言 2 行を現行ルールに同期 (v0.4 — v0.3 実装同期の取りこぼし)。
- main 申し送り:
test-tc.mjsの転写プロンプトを SSoT 読込化、または triage 部分を退役してtools/triage-eval/に一本化。同スクリプトのSCORING_SYSTEM転写も 2026-05-12 のままのため gate4-scoring SSoT との drift を同時点検推奨。いずれもコード変更 = main 領分。
2026-06-04 — PR #1398 — fix — high (DRP-374: queued watchdog の queue 待ち誤検知を解消 = 閾値 30 分 + 回復ガード)
date: 2026-06-04
pr: 1398
category: fix
importance: high
files:
- drp/src/do/session_watchdog.ts
- drp/src/queues/pipeline_consumer.ts
- drp/test/session_watchdog.test.ts
- docs/_internal/05_how-to/operator_guide_langgraph.md
tags:
- decision-pipeline
- watchdog
DRP-374 真因確定 + 修正: telemetry D1 実測で起票時の仮説 1 を確定 — session 906aafc2 の enqueue (06:22:23) と先行 run 82e46bff の開始 (06:22:24) が 1 秒差で、実効直列 consumer (max_batch_size=1) の正常な順番待ち (8.3 分) を QUEUED_STUCK_MS=300s watchdog が取りこぼしと誤検知して error 終端。さらに配達された message を R4 終端ガードが ack-skip し永久不実行 (遅延=死の合せ技)。修正は二段構え: ① QUEUED_STUCK_MS 5 分→30 分 (worst-case 1 run 占有 ~25 分をカバー)、② R4 ガードに回復路 — error.gate='queue_pickup' (= consumer 未着手が確定している誤検知) は ack-skip せず通常実行へ回復 (純粋関数 isRecoverableQueuedTimeout()、完走 telemetry が INSERT OR REPLACE で偽 error 行を上書き)。トレードオフ: ADR-0103「取りこぼし即検知」は 30 分へ後退 (誤検知による run 喪失の実害が上回る)。max_concurrency 引き上げは numbering 重複採番の再導入リスクで見送り。consumer_timeout (running 由来) は gate 部分実行済みのため回復対象外。
2026-06-04 — PR #1375〜#1383 — feat — high (Web UI CI テストの 2 層標準化 = ADR-0111 + queue 再配信バグ修正)
date: 2026-06-04
pr: null
category: feat
importance: high
files:
- drp/test/e2e/ui/
- drp/src/contracts/chat_api_contract.ts
- .github/workflows/drp-test.yml
- docs/adr/0111-webui-ci-test-two-tier-mocked-e2e.md
tags:
- decision-pipeline
- testing
- cross-workspace
Web UI CI テストを 2 層構成に標準化 (ADR-0111・main 実装): ① PR #1375 mocked-route ブラウザ e2e (test/e2e/ui/, Playwright page.route() で全 API モック・LLM/Worker 不要・CI 実測 1m16s〜24s) を毎 PR ゲート化 (ui-e2e job)。実 LLM full-run (test/e2e/real/, 2-4 分・課金) は on-demand 温存。② PR #1376 e2e が導入当日に発見したバグ修正 (復元セッション + フォーム空で停止トグル無反応 → 16 分) が Queues consumer invocation 上限を超え complete 書込後・ack 前に kill → at-least-once 再配信が running を素通りして全 gate 3 周再実行 (通過 result が差し戻し result に上書き・課金 ~3 周・telemetry 0 行)。formNoValidate 迂回、DRP-375)。③ PR #1377 CLAUDE.md 変更時テスト表に chat.html 行追加。④ PR #1383 mock drift の機械ゲート — サーバ/モック共有の応答契約 chat_api_contract.ts (型のみ・依存ゼロ) を双方 satisfies + CI type-check:e2e で毎 PR 強制 (導入時に既存モックの非現実 2 件を即検知)。ADR は審査初回 CV 差し戻し → #1383 実装後の再投入で通過 (42/50 Standard)・PR #1386 merge。⑤ PR #1382 queue 再配信バグ修正 (DRP-376): フル 10 gate (isInflightRedelivery() (running + updatedAt 20 分鮮度) で ack-skip。残課題 2 点 (invocation 上限超え構造 / kill 時 telemetry 喪失) は BUG_tracking DRP-376 に記録。docs 反映: docs/operations/testing/03_webui_e2e.md 新設 (SSoT = test/e2e/README.md への参照 + 使い分け判断基準)。
2026-06-04 — PR #1390/#1391 — fix — mid (ADR-0110 二重採番の解消とガード)
date: 2026-06-04
pr: null
category: fix
importance: mid
files:
- docs/adr/0111-webui-ci-test-two-tier-mocked-e2e.md
- scripts/adr-lint.mjs
tags:
- adr
- decision-pipeline
numbering gate が open 中の ADR PR を考慮せず main の docs/adr/ だけで採番するため、並行起案で ADR-0110 が二重発行 (webui-ci ADR と CF Access token ADR)。PR #1391: 後発の webui-ci ADR を ADR-0111 へリナンバー (先着 PR #1364 = CF Access token が 0110 を保持)。PR #1390: 再発防止として adr-lint に [duplicate-adr-number] ルール追加 (同一番号 2 本以上で CI fail = 防壁)。根本対策 (numbering gate の open PR 予約番号考慮) は未対応 → DRP-377 として BUG_tracking §2 に記録 (main 担当)。
2026-06-04 — PR #NNN — docs — mid (DRP-374 起票: queue consumer pickup stall + ADR-0110 OQ 追補 + 旧 PR 整理)
date: 2026-06-04
pr: null
category: docs
importance: mid
files:
- docs/_internal/02_project/BUG_tracking.md
- tasks/prompts/main_2026-06-04_queue-consumer-pickup-stall.md
- docs/adr/0110-swap-decision-pipeline-basic-auth-to-cloudflare-access-token.md
tags:
- decision-pipeline
- bug
- cross-workspace
🐛 DRP-374 起票 (sub 発見・真因調査は main): draft docs-incremental-build の審査 run (session 906aafc2) が queued のまま consumer に pickup されず EC-3 watchdog が idle 300s で error 終端・審査未実施 (rejection_reason_code='watchdog-timeout')。watchdog 自体は正常発火で、根本側の pickup 不全が未特定。同時間帯の並走 run 完了から「並行度 1 × キュー順番待ちの stuck 誤判定」が有力仮説。真因仮説 3 案 + 調査ポイント: tasks/prompts/main_2026-06-04_queue-consumer-pickup-stall.md。採番ガイドを次=DRP-375 に更新。併せて同日: PR #1364 (ADR-0110) に Open Questions 節を追補 (OQ-1: Access service token の *.workers.dev 直下適用可否=カスタムドメイン前提の実機検証 / OQ-2: 緊急スイッチ→IP allowlist 一時切替へ再設計推奨) + adr-lint 定番 2 件後修正 (コスト試算 H2 化・「要追記」除去)。旧 OPEN PR を整理: #1278 close (06-04 handover #1385 で代替) / #791 close (main 領分・stale)。
2026-06-04 — PR #NNN — docs — mid (DRP-371 起票: chat UI 経路 draftId=null で loop-breaker 無効)
date: 2026-06-04
pr: null
category: docs
importance: mid
files:
- docs/_internal/02_project/BUG_tracking.md
- tasks/prompts/main_2026-06-04_chatui-draftid-loopbreaker-bug.md
tags:
- decision-pipeline
- bug
- cross-workspace
🐛 DRP-371 起票 (sub 発見・実装は main): chat UI (web-ui) 経路が src/index.ts:120 で draftId: null をハードコードしており、telemetry の draft_id が NULL → pipeline_consumer.ts の goalpost loop-breaker が state.draftId ガードで無言スキップ。draft crossval-systemic-fix の審査で実発生 (2026-06-04: 2 連続 CV 却下 × 盲点全入替なのに escalate PR 不起票)。chat UI 起点の全審査で ADR-0109 Part2/4 (bounded rounds escalate) が発火不能。GET /audit/runs 実測で 06-04 run 全件 draft_id=None を確認。修正方向 3 案 + 検証手順を handover tasks/prompts/main_2026-06-04_chatui-draftid-loopbreaker-bug.md に整理。併せて同 draft は ADR-0109 と重複記録のため KV から取り下げ (DELETE 204)。BUG 採番ガイドの stale 記載 (次=MAS-298) を MAS-372 に更新。
2026-06-03 — PR #1352〜#1357 — feat — high (ADR-0103 入口統一 案C′ + EC-3 watchdog + MVP 卒業)
date: 2026-06-03
pr: 1357
category: feat
importance: high
files:
- drp/src/triage/shared_triage.ts
- drp/src/do/session_watchdog.ts
- docs/adr/0103-unify-pipeline-entry-enqueue-polling.md
- docs/_internal/03_decisions/decision_pipeline/mvp_exit_criteria.md
tags:
- decision-pipeline
- adr-0103
- mvp-graduation
Decision Pipeline の入口統一 (ADR-0103) を 案 C′ (shared triage module) で実装し MVP 卒業 (EC-1〜6 全充足) を達成。当初の採択案 (chat も即 enqueue 化) は Phase A-4 で案 C′ に方針転換 — 入口は /chat/start (Web UI 同期 triage 維持) と /runs (CI) の 2 つのまま、triage 派生フィールド整形 (chat 応答 / session cache / consumer DO result / telemetry) を src/triage/shared_triage.ts に集約して drift を構造解消 (EC-2 / #1353)。即時応答性 (ADR-0066) と ADR-0094 Phase B は supersede せず維持。EC-3 (Queue silent failure) は入口統一と独立した既存ギャップとして per-session DO alarm watchdog で別途解消 (#1354 実装 / #1355 probe / #1356 early-reject telemetry)。関連 PR: #1352 (ADR-0103 A-4+Accepted) / #1353 (EC-2 shared triage) / #1354 (EC-3 watchdog) / #1355 (watchdog probe) / #1356 (web UI early-reject telemetry) / #1357 (MVP 卒業記録)。
2026-06-03 — PR #1348 — fix — mid (Cross-Validation golden 厳格化)
date: 2026-06-03
pr: 1348
category: fix
importance: mid
files:
- drp/test/datasets/cross-validation/golden.jsonl
tags:
- decision-pipeline
- cross-validation
- adr-0109
Cross-Validation の golden eval ラベル #11/12/13/18 を false → true に厳格化訂正 (FP=0 / FN=0)。審査ポリシーを「具体的緩和機構 (具体設計 / Confirmation fitness function / 撤退条件) を要求し、①計画・言及のみ / ②単なるコスト計上・関連記述 / ③未採択 option 参照 / ④目的再定義による回避 / ⑤concrete-but-partial は addressed と認めない」と固定化。ADR-0109 Part1 ライフサイクル整合バーの判定基準を golden で回帰テスト化したもの。
2026-06-03 — PR #NNN — docs — low (DOC-OPS-18 テーマ② KV 投入)
date: 2026-06-03
pr: null
category: docs
importance: low
files:
- docs/_internal/02_project/TODO_future.md
tags:
- doc-ops
- decision-pipeline
- auth
DOC-OPS-18 (RQ-085 認証衛生) のテーマ② = Decision Pipeline の内部 Basic 認証 → Cloudflare Access service token を起案。起案者生テキスト (operator §4.1 形式・checkTriageGate Standard/Critical とも blocked 0) を作成し KV /drafts へ投入 (id=pipeline-basic-auth-to-cf-access-token, POST 201)。TODO_future の DOC-OPS-18 を「②投入済・代表取締役の審査 run 待ち / 残③未起案」に更新。3 モデル一致 (RQ-085 #3) を根拠とし、sub audit API 疎通の正規化も兼ねる。
2026-06-03 — PR #1351 — docs — low (Triage 処理フローチャート追加)
date: 2026-06-03
pr: 1351
category: docs
importance: low
files:
- docs/_internal/03_decisions/nodes/01_triage.md
tags:
- decision-pipeline
- triage
- mermaid
nodes/01_triage.md §5.1 に triageNode() 内部分岐の mermaid 処理フローチャートを追加。冪等チェック → short-circuit → LLM 判定 → consistency override → is_adr_worthy → 起案前ゲート (ADR-0088 cost / ADR-0091 3 ルール) → needsAdr 確定、の各分岐と差戻し時の triageRejectKind (not-adr-worthy / pre-gate-block) を可視化。緑=pass / 赤=reject の classDef 付き。client-side mermaid 描画 (PR #1247) で表示。
2026-06-03 — PR #1350 — docs — mid (Triage ノード doc を実装追従)
date: 2026-06-03
pr: 1350
category: docs
importance: mid
files:
- docs/_internal/03_decisions/nodes/01_triage.md
tags:
- decision-pipeline
- triage
- adr-0102
- adr-0095
Triage ノード設計ドキュメント (nodes/01_triage.md) を現行 triage.ts / gate0-triage プロンプトに追従。処理フロー (short-circuit / 起案前ゲート / RejectKind) は追従済だったが §5 判定ルールが ADR-0102・lint-governance 修正前のままだった点を是正。
- §5 判定ルールを 6→7 ルールに更新: ADR-0102 の 排他的除外リスト (Pipeline ノード/ゲート変更・triage 基準変更・telemetry スキーマ変更等を強制 Standard) を追加。rule 3 に lint/CI ガバナンス=ADR 対象の明示 (false-negative 修正)、rule 7 に整合性ルール (is_adr_worthy×mode) を追加。
- §5 short-circuit に閾値
TRIAGE_SHORT_CIRCUIT_MAX_CHARS(既定80・"0"無効) / Grapheme 計数 / ADR 識別子パターンを追記。 - §11 弱点に排他的除外リスト・lint-governance false-negative・short-circuit FP 監視を追加。§13 設計ログに ADR-0088 精度改善 / 0094 / 0095 / 0102 / lint-governance 修正を追記、末尾「実装更新 (2026-06-03)」節を新設。
- §9 edge snippet を実装の
s?.needsAdrに修正。
2026-06-03 — PR #1347 — docs — mid (Cross-Val Part4 / ADR-0109 docs 追従)
date: 2026-06-03
pr: 1347
category: docs
importance: mid
files:
- docs/_internal/03_decisions/decision_pipeline/README.md
- docs/_internal/05_how-to/operator_guide_langgraph.md
- docs/_config.json
tags:
- decision-pipeline
- cross-validation
- adr-0109
- telemetry
Cross-Validation 過剰審査 根本治療 Part4(ADR-0109 / bounded rounds) の本番反映を README / operator_guide に追従。実装 PR #1335(ADR本体) / #1342(trailing-contiguous) / #1339(dry_run ガード) / #1343(telemetry v8)。
- escalate 挙動の訂正: PR #1315 で「escalate は
rejectedのまま・新終端状態ではない」と記述したが、Part4 でrejected=falseで PR 起票(slug+numbering+webhook 実行 + 本文に「Known Limitations / Escalated Residual Risks」節 + HITL マーカー)に変更。人間の merge=受理 / close=却下 が最終終端。sequence・state 図・凡例・ASCII 詳細図を訂正。 - loop-breaker を trailing-contiguous(非隣接却下は連続数に数えない)+ round-cap(
CROSSVAL_ROUND_CAP既定3)に更新。同一盲点の持続却下は cap より優先で reject 温存(FN=0)。 - フィーチャーフラグ表に
CROSSVAL_ROUND_CAP追加。telemetry マイグレーション履歴に v4〜v8(crossval escalate 4 列)を追記。 - ADR-0109 を README 関連 ADR リスト + nav(A.09.5.71)に登録(main がファイルのみ追加で nav 未登録だった)。
- Part5(多モデル多数決 verify)は negative result で本番未統合(
--verify診断のみ温存 / PR #1345)と明記。
2026-06-03 — PR #NNN — docs — low (DOC-OPS-14 解決マーク)
date: 2026-06-03
pr: null
category: docs
importance: low
files:
- docs/_internal/02_project/TODO_future.md
tags:
- doc-ops
- adr-lint
- verification
DOC-OPS-14 (adr-lint scope-meta / confirmation-section の新規 ADR 再発防止) を ✅ 解決にマーク。main 側で body-generation prompt に systemic fix 2 点 (① Scope メタ出力、② ## Confirmation H2 強制) が deploy 済みであることを sub ローカルで検証: prompts/production/body-generation/prompt.md に両指示 (adr-lint ルール名明記) を確認、新規 ADR-0105/0106 が後修正なしで pass、node scripts/adr-lint.mjs docs/adr/ が 107/107 pass (100%)。以後 sub の手動遡及は不要。
2026-06-02 — PR #1333 — docs — mid (ADR-0107 起票: ADR 情報資産化)
date: 2026-06-02
pr: 1333
category: docs
importance: mid
files:
- docs/adr/0107-adr-asset-index-cross-view-dependency-graph.md
- docs/_config.json
tags:
- adr
- knowledge-asset
- cross-workspace
ADR が 107 本に達したのを受け、情報資産としての活用機構を設計する ADR-0107 (Proposed/Standard) を起票。全 107 本を 1 パス分析した実データ (孤立 0 本・最多被参照 ADR-0036:46 / Scope 欠落 48 本) を Context の根拠にした。決定は「単一抽出器 → adr-index.json (SSoT) → 自動カタログ / メタデータ横断ビュー / 依存グラフ / RAG エクスポートの 4 出力」で、prompt-catalog.mjs (ADR-0106) の自動生成・--check 型を ADR に転用する同型設計。実装 (scripts/**・CI) は workspace_rules マトリクス上 main 専属のため [cross-workspace] ハンドオフとし、本 PR は sub 担当の設計 ADR + nav 登録のみ。adr-lint PASS / docs-nav-lint 0 FAIL 確認済。
2026-06-02 — PR #NNN — docs — low (旧letter系spec改名 repoint・第4弾)
date: 2026-06-02
pr: null
category: docs
importance: low
files:
- docs/implementation/legacy-dev/*.md (12 ファイル)
tags:
- docs-hygiene
- link-check
- legacy
ドキュメント健全化・第4弾。dev_F-/dev_S-/dev_N- 系 spec は消滅でなく dev_mas-NNN_<同一suffix> へ改名済みと判明。内容 suffix の unique 一致で 36 件を改名先へ repoint (dev_F 33 + dev_S 2 + dev_N 1、曖昧 0)。broken-internal-link 54→26。残 26 (ambiguous README/01_triage/index、テンプレ placeholder XXXX/dev_mas-NNN/dev_{ISSUE_ID}、番号ごと消滅 dev_mas-357/200/140/052/050/041、削除済み task_F/gemini_review、slug-drift dev_mas-078/014) と broken-anchor 97 は実体無し or 個別判断要で保留 (捏造回避)。link-check 累計 1532→26 (-98%)。
2026-06-02 — PR #NNN — docs — low (アンカー切れ補正・第3弾)
date: 2026-06-02
pr: null
category: docs
importance: low
files:
- docs/**/*.md (目次アンカー 8 ファイル)
- docs/architecture/use_cases.md
tags:
- docs-hygiene
- link-check
- anchor
ドキュメント健全化・第3弾。(1) /_internal/TODO_future.md の絶対パスリンク 2 件を移動先 (_internal/02_project/) へ是正。(2) 切れた目次アンカーのうち「リンク文字列が見出しと一致 + その見出しが文書内で一意」のものだけ 34 件を正しい slug へ自動補正 (重複見出し・テキスト不一致は誤補正回避のため保留)。broken-internal-link 56→54 / broken-anchor 131→97。残 (内部 54: 削除済み dev_F 系 spec / ambiguous README / テンプレ placeholder、アンカー 97: 短ラベル目次 SUMMARY 等 / 削除済み見出し) は実体が無い or 個別判断が必要で保留 (捏造回避)。
2026-06-02 — PR #NNN — docs — low (legacy リンク一括是正・第2弾)
date: 2026-06-02
pr: null
category: docs
importance: low
files:
- docs/**/*.md (188 ファイル・旧構造参照リンク)
- .github/docs-link-check-allowlist.json
tags:
- docs-hygiene
- link-check
- legacy
ドキュメント健全化・第2弾 (Task3)。再編前の旧構造を指す壊れリンクを「docs 内に唯一の同名ファイルが在れば移動先へ repoint、無ければ捏造せず保留」の安全規則で 1375 件一括是正 (188 ファイル)。例: ../dev/X→implementation/legacy-dev/X、../prd.md→architecture/prd.md、TODO_future.md→_internal/02_project/。repoint で旧アンカーが新ファイルに無い 30 件は # を除去 (有効 3 件は保持) し broken-anchor を増やさず。CLAUDE.md (リポ root・docs サイト外・repoint 不可) は link-check allowlist に 1 パターン登録。結果 broken-internal-link 1532→56 (−96%)。残 56 は削除済み dev_F 系 spec / ambiguous (README) / テンプレ placeholder で実体が無く保留 (捏造回避)。broken-anchor 131 は据置 (別途)。
2026-06-02 — PR #NNN — docs — low (リンク健全化 + nav 登録)
date: 2026-06-02
pr: null
category: docs
importance: low
files:
- docs/_config.json
- docs/**/*.md (ADR 参照リンク 48 ファイル)
tags:
- docs-hygiene
- link-check
- nav
ドキュメント健全化・第1弾。(Task1) 壊れた ADR 参照リンク 111 件を「ADR 番号→実在ファイルへの相対パス再計算」で一括是正 (深さ違い + スラッグ違いの両方。例 0033-decision-pipeline-model-selection → 実在 -llm-model-upgrade)。テンプレ placeholder (XXXX-title.md) は意図的なので除外。(Task2) 未登録だった ADR 0097〜0106 を nav (arc42.09.5 group, A.09.5.59〜68) に一括登録し orphan 警告を解消。broken-internal-link 1532→1431。検証: nav-lint 0 FAIL / JSON valid / catalog・frontmatter 整合。残: legacy-dev 等の旧構造参照リンク (別途・第2弾)。
2026-06-02 — PR #NNN — docs — mid (ADR-0042 拡張)
date: 2026-06-02
pr: null
category: docs
importance: mid
files:
- docs/adr/0106-extend-prompt-management-catalog-archive-patterns.md
tags:
- adr
- prompt
- prompt-management
プロンプト管理・第4弾 (ADR-0042 追補)。案B/A/C (PR #1326 で実装済) を正式な決定として ADR-0106 に記録。ADR-0042 (Accepted・イミュータブル) を拡張する新規 ADR として、(1) 索引カタログの自動生成 SSoT、(2) 実行済み one-shot の status: archived + nav 除去 + allowlist 抑止、(3) 設計パターン集の蒸留、を Standard Mode + Q42 MCDA で正式化。Implementation Status: Done (PR #1326)。ADR-0105 規約 (TL;DR + 初出グロス) 準拠。RULES 107/107 pass / terminology 0 warn。
2026-06-02 — PR #NNN — docs — mid (案C パターン集)
date: 2026-06-02
pr: null
category: docs
importance: mid
files:
- docs/_internal/05_how-to/prompt_patterns.md
- docs/_config.json
- scripts/prompt-catalog.mjs
tags:
- prompt
- prompt-management
- patterns
プロンプト管理・第3弾 (案C: ノウハウ蒸留)。prompt_patterns.md を新規作成し、このリポの実プロンプト (triage/scoring/parallel_review/operator/RQ メタプロンプト/dev_spec テンプレ) から「効いた中身の型」を 6 種 + 共通則に蒸留。外部 BP (RQ-044) / 運用 (lifecycle_guide) / 規約 (lint_rules) / 索引 (catalog) と重複させず、自リポ由来の設計型に特化。ADR-0105 規約 (TL;DR + 初出グロス) 準拠・94 行。nav (I.05.0.23) 登録、カタログは meta 文書を収集対象外に (patterns/catalog 除外)。
2026-06-02 — PR #NNN — docs — mid
date: 2026-06-02
pr: null
category: docs
importance: mid
files:
- docs/_internal/03_decisions/decision_pipeline/*_prompt.md (25本)
- docs/_config.json
- .docs-nav-lint-allowlist.json
- scripts/prompt-catalog.mjs
- docs/_internal/06_ops/prompt_catalog.md
tags:
- prompt
- prompt-management
- archive
プロンプト管理・第2弾 (案A: 実行済み one-shot のアーカイブ)。one-shot プロンプト 25本を対応 ADR のマージ状況と照合し、全 25本が Accepted ADR に対応=実行済みと確認。ファイルは移動せず status: archived に更新し、nav (_config.json) から 22本を除去 (R4 接頭辞連番を 3件振り直して整合維持)、.docs-nav-lint-allowlist.json にアーカイブ済みプロンプトのパターンを追加して orphan 警告を抑止。カタログを archived 表示対応に拡張し再生成 (📦 済 25本)。検証: nav-lint 0 FAIL / frontmatter 0 違反 / catalog --check 整合 / broken link 回帰0。
2026-06-02 — PR #NNN — docs — mid (案B カタログ)
date: 2026-06-02
pr: null
category: docs
importance: mid
files:
- scripts/prompt-catalog.mjs
- docs/_internal/06_ops/prompt_catalog.md
- docs/_config.json
- package.json
tags:
- prompt
- catalog
- prompt-management
プロンプト散在問題 (67本散在・nav 圧迫・ノウハウ分析不可) の改善・第1弾 (案B: カタログ索引)。RQ-044/ADR-0042 の調査・方針は Type 1 本番のみ厳格管理で、Type 3・one-shot は最小管理のまま散在していた。scripts/prompt-catalog.mjs (自動生成・--check で CI 整合確認可) で docs 配下 65 本を Type 別 (設計5/調査29/one-shot25/テンプレ3/その他3) に索引化し prompt_catalog.md (nav 登録) に集約。one-shot の「実行済みアーカイブ候補」を可視化 (現状 frontmatter 明示は2本のみ=status 未更新が大半という課題も顕在化)。次段: 案A (実行済み退避) / 案C (ノウハウ蒸留) / ADR-0042 追補。
2026-06-02 — PR #1322 (merged) — docs — mid
date: 2026-06-02
pr: null
category: docs
importance: mid
files:
- docs/_internal/03_decisions/decision_pipeline/README.md
- docs/_internal/05_how-to/operator_guide_langgraph.md
- docs/_internal/03_decisions/nodes/01_triage.md (他 nodes 02-11)
- docs/_internal/03_decisions/decision_pipeline/phase2a_design.md (他 設計docs 3 本)
tags:
- adr-0105
- decision-pipeline
- terminology
- readability
ADR-0105 の用語 Tier 規約を意思決定パイプライン関連ページ 16 本に適用 (可読性改善)。各ページ冒頭に専門語ゼロの TL;DR を追加し、Tier 1/2 の専門語 (Triage/Socratic/DA/PM/Judge/Cross-Validation/Self-Consistency/HITL/DLQ/slug/webhook 等) のプロ―ズ初出に 原語〔和訳〕 を併記。冗長な英単語のみ和語化 (step→ステップ 等)。
- 対象: README / operator_guide_langgraph / nodes 01-11 / phase2a_design / phase3_parallel_review_design / mvp_exit_criteria / migration_overview。プロンプト類・ADR 本文・RQ は除外 (LLM 入力・イミュータブル原則のため)。
- 不変保証: 図 (mermaid)・コードブロック・
<pre>・frontmatter・ファイルパス・関数名・固有名詞・URL・ADR/PR 番号・数値・しきい値・表データは一切変更せず、情報の削除・意味変更なし (numstat balanced + byte 差分で検証)。 - 検証: docs-nav-lint 0 FAIL / docs-link-check 編集対象ファイル発の broken link は baseline 23 = 現行 23 で回帰ゼロ。退役 docs (phase2a / migration_overview) は TL;DR で「履歴記録」と明示。
- 並列サブエージェント 5 体で適用、親が全差分をレビュー後コミット。
2026-06-02 — PR #NNN — docs — mid
date: 2026-06-02
pr: null
category: docs
importance: mid
files:
- docs/adr/0105-adr-terminology-tier-and-source-language-preservation.md
- docs/architecture/glossary.md
- docs/adr/templates/template.md
- docs/_internal/05_how-to/writing-guide.md
- scripts/lib/adr-lint-rules.mjs
- scripts/adr-lint.mjs
- tests/adr-lint-rules.test.mjs
tags:
- adr
- glossary
- terminology
- adr-lint
ADR の IT 用語・英単語の可読性改善。ADR-0105 で専門語を 3 階層 (Tier 0 IT 一般教養 / Tier 1 プロジェクト固有 / Tier 2 専門フレーム) に分類し、原語温存+初出グロス 原語〔和訳〕 を規約化 (LLM の意味解像度・glossary 突合・コード参照を保つため日本語オンリー翻訳は不採用)。
- glossary 拡充: CBA / Kruchten Type / triage / Socratic / fitness function / corrigendum / consumer lag / 用語 Tier / 初出グロス を追加。
- テンプレ/ガイド:
template.mdに冒頭 TL;DR スロット + 用語 Tier 注記、writing-guide.md§3.6 に用語規約を追加。 - lint:
adr-lint.mjs --check-terminologyを新設 — glossary 未登録 + 初出グロスなしの大文字略語を warn 検出 (filenum ≥ 105 限定・Tier 0 allowlist + 列挙ラベル除外・warn のみ exit 0)。pure helperfindUndefinedTermsをadr-lint-rules.mjsに集約 (RULES backstop と同じ pure/CLI 分離)。test 9 件追加 (計 53 pass)。
2026-06-02 — PR #1315 — docs — mid
date: 2026-06-02
pr: 1315
category: docs
importance: mid
files:
- docs/_internal/03_decisions/decision_pipeline/README.md
- docs/_internal/05_how-to/operator_guide_langgraph.md
tags:
- decision-pipeline
- cross-validation
- socratic
- feature-flag
decision-pipeline の Cross-Validation 過剰審査 systemic fix 3 部 (実装 PR #1303 / #1305 / #1311) を README / operator_guide に追従。コード変更なし (sub ドキュメント同期)。
- Part1 (#1305):
cross_validationをライフサイクル整合バー化 — 実装時にしか検証できない前提 (決定性・実コスト減・CI 挙動等) は本文に この risk を防止/検出する具体的緩和機構 (具体設計 / Confirmation / 撤退条件) があればundermines=false。単なる言及・コスト計上は addressed と認めない。prompts/production/cross-validation/SSoT 新設で inline-only 監査 gap (ADR-0085) 解消。SSoT 一覧に cross-validation を追加。 - Part2 (#1311): goalpost loop-breaker — Cross-Val 却下が 2 連続以上 + 却下盲点が毎回「移動」したら自動 reject せず HITL escalate (
crossValidationEscalatedフラグ + 人手 Accept/迂回 推奨)。rejectedのまま flag/メッセージを付与する挙動 (新終端状態ではない) で sequence・state 図に反映。CROSSVAL_LOOPBREAKER既定 ON。 - Part3 (#1303): socratic の視点選択を決定化 (原稿内容シードの FNV-1a+mulberry32 PRNG) — 同一原稿→同一 3 視点→Cross-Val 収束。
SOCRATIC_DETERMINISTIC既定 ON。 - README にフィーチャーフラグ (環境変数) 表 + パイプライン初の CI unit test (
crossval_loopbreaker.test.ts) 行を追加。
2026-06-01 — PR #1283 — docs — low
date: 2026-06-01
pr: 1283
category: docs
importance: low
files:
- docs/_config.json
- docs/_internal/03_decisions/decision_pipeline/mvp_exit_criteria.md
tags:
- adr
- nav
- rq-085
sub doc-hygiene Task B + C。
- Task B (ADR-0104 反映):
_config.jsonの RQ-085 prompt nav 文言を「認証 ADR 群 ADR-0096+」→「ADR-0104 ほか」に修正 (0096 は chat email autofill で別件、GAS/clasp 認証の正式 ADR は 0104)。mvp_exit_criteria.mdの auth-secret 行にテーマ①=ADR-0104 完了 / 残②③=DOC-OPS-18 backlog を追記。 - Task C (nav グループ分離・案A): customer_insight グループ
internal.01.0を「顧客インサイト・RQ管理」→「顧客インサイト」(JTBD/ペルソナ 4 件) に純化し、末尾に新グループinternal.01.7 RQ管理を新設して research_questions / research_prompts を移設。末尾新設のため既存 01.1〜01.6 (108 ページ) は繰り下げ不要。docs-nav-lint 0 FAIL。
2026-06-01 — PR #1282 — docs — low
date: 2026-06-01
pr: 1282
category: docs
importance: low
files:
- docs/_internal/02_project/TODO_future.md
tags:
- link-fix
- ci-hygiene
- markdown-link-check
TODO_future.md の stale 相対リンク 100 件 (218 箇所) を一括修正。legacy-dev / spec の swap 移設で壊れていたリンクを移設後の実在パスに更新し、Check Markdown links CI が TODO_future 編集のたび落ちる根本原因を解消。
../dev/<name>.md→../../implementation/legacy-dev/<name>.md../spec/<name>.md→../../architecture/<name>.md- 全リンク先の実在を検証済 (真に dead なものは 0)。
docs/_internal/02_project/配下のため../../でdocs/直下に到達。
2026-06-01 — PR #1281 — docs — mid
date: 2026-06-01
pr: 1281
category: docs
importance: mid
files:
- docs/adr/0104-gas-clasp-deploy-auth-org-internal-oauth-client.md
- docs/_internal/02_project/TODO_future.md
tags:
- adr
- rq-085
- auth
- clasp
auth-secret-consolidation-strategy KV draft の扱いを確定。RQ-085 認証統合の単一 ADR(Cross-Validation Critical 38/50 差戻し)を 3 分割した方針に基づき、テーマ①「失効しない GAS/clasp デプロイ認証」を迂回 ADR (ADR-0104) として遡及記録した。
- ADR-0104 遡及起案: 決定① OAuth client の組織 Internal 化は 2026-06-01 実機完了(野良 External
gen-lang-client-...→ 組織配下bizlp-gas-accounting-devの Internal client、devclasp push88 ファイル成功・検証済)のため Status: Accepted。決定② clasp v3 ADC キーレス化 PoC は後段ゲート・任意(Not Started)。Standard mode・adr-lint pass。 - 残テーマ backlog 化: ②pipeline Basic 認証→Cloudflare Access Service Token / ③静的 secret 単一ソース化 + GitHub OIDC/WIF キーレス化 + pre-flight 検知 を TODO_future DOC-OPS-18 に追加(いずれも job-blocking でない衛生課題)。
- KV クリーンアップ: 元 KV draft
auth-secret-consolidation-strategy(廃案・審査対象外)を DELETE 済。正典素材はdocs/research/rq-085-*.mdに保持。
2026-06-01 — PR #1274 — docs — mid
date: 2026-06-01
pr: 1274
category: docs
importance: mid
files:
- docs/_internal/03_decisions/decision_pipeline/prompts/01_triage.md
- docs/_internal/03_decisions/decision_pipeline/prompts/02_scoring.md
- docs/_internal/03_decisions/decision_pipeline/prompts/03_socratic.md
- docs/_internal/03_decisions/decision_pipeline/prompts/04_consistency.md
- docs/_internal/03_decisions/decision_pipeline/prompts/05_parallel_review.md
- docs/_internal/03_decisions/decision_pipeline/README.md
tags:
- decision-pipeline
- doc-drift
- prompt-design
handover follow-up #2: 公開中の decision_pipeline/prompts/0X_*.md(Type 3 設計ドキュメント)5 件が、同期済み nodes/*.md および現行実装から大きくドリフトしていたため全面同期(3 グループ並列監査 → 削除でなく同期)。
- 03_socratic: 旧「Socratic 問診(最大 3 問・
pass=false差戻し・gemini-flash)」を DA/PM/Judge 盲点検出エンジン(ADR-0071, claude-sonnet, 常にsocraticPass=true・差戻しなし) に全面改稿。出力blindSpotFindings。旧 TC-S01〜S03 撤去。 - 05_parallel_review: 3 モデル名 Gemini Flash/Claude Sonnet/GPT-4o → gemini-pro / claude-opus / gpt-o3、出力
strengths/concerns/suggestions→annotations[](quote 紐付き)、Promise.allSettled+ 全失敗時 fail-open。 - 04_consistency: claude-sonnet → claude-opus、ADR 取得を GraphQL 一括 + KV キャッシュ(TTL 1h)、temperature=0.4/seed=42、Supersedes 3/4 桁両対応。
- 01_triage: Dify→LangGraph、判定ルール「既定 Standard」+ rule 6 整合性 + メタ ADR ガイダンス、起案前ゲート(ADR-0095 short-circuit / ADR-0088 コスト / ADR-0091 3 ルール)を追記。レビュー構成の Perplexity/GPT-4o 誤記是正。
- 02_scoring: 入力源を body_generation 後の
state.adrBodyに、差戻しをrejectedフラグに、claude-opus +reasoning_effort+ Self-Consistency サンプリング(ADR-0056)を追記。 - README: Gate 3 モデル名 3 箇所 + Gate 2 モデル名を現行値に(歴史記録は「当時→現行」注記で保持)、SSoT 表を実態に是正(gate1 は da/pm/judge をロード・gate1-socratic は死蔵 / gate3 は inline 構築で production prompt.md 未参照)。
- main 申し送り: (a)
prompts/production/gate3-parallel-review/prompt.mdを annotations スキーマへ同期 or 撤去、(b)gate1-socratic/prompt.md死蔵ファイル整理、(c)test-tc-socratic.mjsを盲点検出向けに移行。いずれもコード/prompts/production/配下(sub 読み取り専用)。
2026-06-01 — PR #1247, #1261 — fix — mid
date: 2026-06-01
pr: 1247
category: fix
importance: mid
files:
- scripts/docs-build.mjs
tags:
- docs-site
- mermaid
- cross-workspace
関連 PR: #1247 (client-side mermaid.js 描画) / #1261 (RQ-061 取引フロー図の mermaid 構文エラー整形)。
ドキュメントサイトの mermaid 図が未描画だった問題 (renderer.code 未定義 + mermaid.js 未読込で約 23 ファイルが mermaid フェンスをコードブロックのまま表示) を解消。main 担当分・sub 反映。
- #1247:
scripts/docs-build.mjsに client-side mermaid.js を組み込み、mermaid フェンスをビルド時にレンダラへ橋渡しして図描画されるよう修正。 - #1261: RQ-061「GPT 取引フロー図」の mermaid 構文エラーを整形し、描画不可を解消。
- sub 側の追跡: handover で 2 セッション積み残しとなっていた「mermaid 解決の changelog 記録」を本エントリで完了 (機能は main で解決済、運用ログのみ未記録だった)。memory
project_docs_mermaid_not_renderedは解決済化済。
2026-06-01 — PR #1231 — fix — high
date: 2026-06-01
pr: 1231
category: fix
importance: high
files:
- .github/workflows/deploy.yml
tags:
- gas-deploy
- clasp
- ci
- cross-workspace
GAS デプロイ CI を復活 (直近 60 回連続で失敗していた prod push を解消。main 担当分・sub 反映)。
- 真因 (2 点): ①
CLASPRC_JSON(clasp 認証) の失効、②CLASP_SCRIPT_ID_PRODsecret の stale 化 — secret 設定日が.clasp.prod.jsonの scriptId 修正コミット (2026-04-14, 末尾…Bm_4へ変更) より前で旧 prod scriptId を保持 → push がRequested entity was not found(404)。両者を.clasp.prod.json/ 動作中の~/.clasprc.jsonから再同期して解消。 - deployment ID secret 登録:
CLASP_DEPLOYMENT_ID_{DEV,PROD}をscripts/deploy.shのハードコード値 (=clasp deployments実在 ID) に合わせて登録し deploy 段を有効化。 - deploy.yml trigger 限定 (PR #1231):
paths-ignore→ GAS 実体 allowlist (000_infra/**〜900_test/**,templates/**,appsscript.json,.clasp.{dev,prod}.json) +workflow_dispatch。非 GAS 変更 (drp/**等) で prod push が誤発火していた問題を停止。 - 監査結論 (課題 C): clasp 3.3.0 の
cp .clasp.${ENV}.json .clasp.json方式は正しく機能 (cp dev→dev / cp prod→prod を実証)。「push:prodが dev を push していた」懸念は再現せず=監査問題なし。 - 検証: dev CI green → prod CI green、prod Web アプリ deployment を
…@17 → …@19に更新。
2026-05-29 — PR #1135 — feat — high
date: 2026-05-29
pr: 1135
category: feat
importance: high
files:
- prompts/production/body-generation/prompt.md
- prompts/production/body-generation/prompt.meta.yaml
- prompts/production/gate1-da/prompt.md
- drp/schema.sql
- drp/migrate-v3-gate-timings.sql
- drp/migrate-v3-verdicts.sql
- drp/src/audit/types.ts
- drp/src/audit/persistence.ts
- drp/src/queues/pipeline_consumer.ts
- .github/workflows/deploy-worker.yml
tags:
- decision-pipeline
- telemetry-v3
- prompt-slim
- ci-fix
関連 PR: #1125 (body-generation slim) / #1129 (gate1-da prompt files) / #1130 (ADR-0086) / #1131 (ADR-0087) / #1134 (gate-timings 実装) / #1135 (verdicts 実装)。
2026-05-29 後半: Telemetry v3 schema 移行完了 (gate_timings 構造化 + cross_validation_verdicts カラム、ADR-0086 / 0087)。本番 D1 マイグレーション (migrate-v3-gate-timings.sql / migrate-v3-verdicts.sql) 適用済 + 既存 31 レコードを per-gate ms カラムにバックフィル成功。Worker version 883edb57-fbc4-4651-a5ec-c24e8d94139c。body-generation prompt を v1.2.0 に slim 化 (139→113 行、-32% tokens 想定) し KV active を 1.2.0 に切替済、月次 cost 削減効果を 1〜2 週間 telemetry で観測予定。CI auto-deploy を pnpm セットアップ順序 + lint の 2 段階で修復。gate1-da prompt files を canonical 化 (ADR-0085 補完、lint MISSING 解消)。
2026-05-28 — PR #1086 — feat — high
date: 2026-05-28
pr: 1086
category: feat
importance: high
files:
- drp/src/audit/types.ts
- drp/src/audit/persistence.ts
- drp/src/queues/pipeline_consumer.ts
- drp/migrate-v2.sql
- drp/schema.sql
tags:
- decision-pipeline
- adr-0082
- telemetry
Telemetry スキーマ v2 を導入。D1 telemetry_records テーブルに trigger_source / mode_override / dry_run / draft_id / node_metrics の 5 カラムを追加し、pipeline_consumer から state 由来の値を記録する。schema_version を 'v1' | 'v2' に拡張し v1 レコードは新カラム NULL の後方互換。マイグレーション: npx wrangler d1 execute decision-pipeline-telemetry --file=migrate-v2.sql。
2026-05-28 — PR #1087 — feat — high
date: 2026-05-28
pr: 1087
category: feat
importance: high
files:
- drp/src/llm/gateway.ts
- drp/src/llm/json_utils.ts
- drp/src/nodes/parallel_review.ts
- drp/src/nodes/triage.ts
- drp/src/nodes/consistency.ts
- drp/src/nodes/policy_alignment.ts
tags:
- decision-pipeline
- adr-0081
- resilience
LLM 呼び出し耐障害性を確立。全 ChatOpenAI インスタンスに maxRetries=3 (exponential backoff) を付与し、parallel_review を Promise.all → Promise.allSettled に変更 (1 モデル失敗で全滅しない、最低 1 成功で通過)。新設の safeParseLlmJson<T>() ヘルパーで code fence strip + try-catch + structured error log を実装し、triage / consistency / policy_alignment の JSON.parse を置換。
2026-05-28 — PR #1088 — feat — mid
date: 2026-05-28
pr: 1088
category: feat
importance: mid
files:
- drp/src/nodes/scoring.ts
- drp/src/llm/prompt_loader.ts
tags:
- decision-pipeline
- adr-0084
- scoring
- kv-config
Gate 4 スコアリング閾値を KV に外部化。loadThresholds(env) を prompt_loader.ts に追加し、KV キー bizlp:prompts:gate4-scoring:thresholds から {Light, Standard, Critical} を取得する。未設定時のフォールバックは {Light:35, Standard:40, Critical:45}。一時的な閾値変更 (例: ガード緩和) を再デプロイなしで実施可能。
2026-05-28 — PR #1089 — feat — mid
date: 2026-05-28
pr: 1089
category: feat
importance: mid
files:
- drp/src/nodes/consistency.ts
tags:
- decision-pipeline
- adr-0083
- caching
Gate 2 整合性チェックの ADR 一覧キャッシュを導入。fetchAdrSummaries の先頭で DRAFTS_KV._cache:adr-summaries を確認し、cache hit 時は GitHub REST + GraphQL 呼出をスキップ。cache miss 時のみ取得 + TTL=3600s でキャッシュ。手動無効化は DELETE /drafts/_cache:adr-summaries。
2026-05-28 — PR #1090 — feat — high
date: 2026-05-28
pr: 1090
category: feat
importance: high
files:
- drp/src/nodes/triage.ts
- drp/src/nodes/socratic.ts
- drp/src/nodes/scoring.ts
- drp/src/nodes/consistency.ts
- drp/src/nodes/policy_alignment.ts
- drp/src/nodes/cross_validation.ts
tags:
- decision-pipeline
- adr-0085
- adr-0042
- prompt-lifecycle
ADR-0042 Prompt KV Lifecycle を全ノードに適用完了。各ノードの SYSTEM_PROMPT を FALLBACK_PROMPT にリネームし loadPrompt(env, '<id>', FALLBACK_PROMPT) 呼出に置換。対象 KV ID (8 種): gate0-triage / gate1-da / gate1-pm / gate1-judge / gate2-consistency / gate4-scoring / policy-alignment / cross-validation。parallel_review は動的テンプレートのためスコープ外 (今後の課題)。
2026-05-28 — PR #1091 — fix — high
date: 2026-05-28
pr: 1091
category: fix
importance: high
files:
- drp/src/nodes/socratic.ts
tags:
- decision-pipeline
- adr-0071
- constitution
ADR-0071 Phase 1 補完: Socratic Node の Devil's Advocate に CONSTITUTION_PERSPECTIVES (22 観点) からランダム 3 観点を選択するロジックを組込み。選択された観点は constitution_perspectives_selected イベントとしてログ記録 (再現性確保)。loadPrompt で取得した DA プロンプトに [Constitution] セクションを append する形で結合。
2026-05-28 — Pipeline 自動化サイクル初実施
Pipeline 成熟度分析で特定した 9 改善案のうち、Pipeline 自身の審査を通過したものを実装。POST /runs (ADR-0064) を介した「Pipeline 自身に審査させる → 通過したら PR 自動作成 → 実装する」サイクルを初めて完遂し、ADR-0081〜0085 (5 ADR) + ADR-0071 Phase 1 補完 (PR #1086-1091, 6 実装 PR) を main にマージ。学びは lessons_learned.md を参照。
2026-05-26 — PR #1010 — feat — high
date: 2026-05-26
pr: 1010
category: feat
importance: high
files:
- drp/src/state.ts
- drp/src/nodes/scoring.ts
- prompts/production/gate4-scoring/prompt.meta.yaml
- docs/adr/0056-decision-pipeline-llm-temp-sampling-stage-hybrid-strategy.md
tags:
- decision-pipeline
- adr-0056
- self-consistency
ADR-0056 Phase 4 (最終) 完了。Gate 4 Scoring を N=5 Self-Consistency 多数決採点に拡張。Promise.allSettled() で 5 回並列 LLM 呼出し → mean/stdDev/majorityPass 集計。State に scoringSamples, scoringMean, scoringStdDev 追加。N=1 は後方互換、成功数過半数未満は single-sample fallback。Implementation Status → Done。
2026-05-26 — PR #1009 — feat — mid
date: 2026-05-26
pr: 1009
category: feat
importance: mid
files:
- drp/src/llm/gateway.ts
- drp/src/nodes/scoring.ts
tags:
- decision-pipeline
- adr-0056
ADR-0056 Phase 3 完了。createLlm / createLlmWithEffort / createOSeriesLlm 全ファクトリに seed? 引数を追加。logLlmCall() に seed フィールド追加で構造化 audit log 出力。
2026-05-26 — PR #1008 — feat — mid
date: 2026-05-26
pr: 1008
category: feat
importance: mid
files:
- drp/src/llm/prompt_loader.ts
- drp/src/nodes/body_generation.ts
- drp/src/nodes/triage.ts
- drp/src/nodes/socratic.ts
- drp/src/nodes/consistency.ts
- drp/src/nodes/parallel_review.ts
- drp/src/nodes/slug.ts
- drp/src/nodes/policy_alignment.ts
- scripts/prompt-kv-push.mjs
tags:
- decision-pipeline
- adr-0056
ADR-0056 Phase 2 完了。各ノードの LLM temperature/seed を prompt.meta.yaml の llm_params ブロックに外出し。loadLlmParams() で KV 優先 → fallback のフェイルセーフ取得。prompt-kv-push.mjs に :params KV push 対応を追加。
2026-05-26 — PR #1005 — feat — mid
date: 2026-05-26
pr: 1005
category: feat
importance: mid
files:
- drp/src/nodes/socratic.ts
- drp/src/nodes/parallel_review.ts
- docs/adr/0056-decision-pipeline-llm-temp-sampling-stage-hybrid-strategy.md
tags:
- decision-pipeline
- adr-0056
- temperature
ADR-0056 Phase 0+1 完了。Status を Proposed → Accepted に変更し、Phase 1 の temperature 値を修正 (socratic T=0.7、parallel_review T=0.5)。ADR §4.1 に「実装制約」列を追加: claude-opus は LiteLLM で T drop (API に送信されない)、scoring (Gate 4) は Extended Thinking 使用のため T=1 固定。§5.4 に policy_alignment node を追加。残り Phase 2-4 は別 PR で段階実装予定。
2026-05-26 — PR #986, #997 — feat — mid
date: 2026-05-26
pr: 986, 997
category: feat
importance: mid
files:
- scripts/adr-lint.mjs
- docs/adr/0043-establish-jtbd-granularity-definition-standard.md
- docs/adr/0041-enforce-type-first-process-for-documentation.md
- docs/_internal/01_discovery/research_prompts/RQ-001_prompt.md
- docs/_internal/01_discovery/research_prompts/RQ-033_hiring_strategy_prompt.md
- 他 8 件
tags:
- adr-0043
- adr-0041
- doc-ops-09
ADR-0043 PR-α 完了 (PR #986): adr-lint.mjs --check-jtbd-ref サブコマンド追加。業務ドメイン RQ 10 件に jtbd: frontmatter 遡及付与 (JTBD-001/002)。ADR-0043 Implementation Status → Done。DOC-OPS-11 (メタ/ツール系 RQ 用 JTBD 起案) を将来課題として記録。
DOC-OPS-09 完了 (PR #997): adr-lint.mjs --check-template-exists サブコマンド追加。docs/_meta/templates/<type>.md の存在を検証。180 files 対象 / 83 OK / 97 WARN (テンプレート未定義 type)。Phase 1 は全 WARN (exit 0) で CI 非ブロック。ADR-0041 Implementation Status → Done。
2026-05-26 — PR #980, #988, #989, #990 — feat — high
date: 2026-05-26
pr: 980, 988, 989, 990
category: feat
importance: high
files:
- drp/src/do/pipeline_session.ts
- drp/src/queues/pipeline_consumer.ts
- drp/src/index.ts
- drp/wrangler.toml
- drp/public/chat.html
- .github/workflows/drp-trigger.yml
tags:
- decision-pipeline
- adr-0066
- cloudflare-queues
ADR-0066 (async Queues + DO) Phase A0-A4 全完了。/chat/start?async=true で Cloudflare 524 timeout を回避する非同期パイプライン実行を実装。PipelineSessionDO で状態管理、Consumer Worker が buildGraph().invoke() を実行し DO に結果保存。Web UI に Async mode チェックボックス + exponential backoff polling を追加 (PR #989)。CI trigger workflow drp-trigger.yml を GitHub Actions に追加 (PR #990)。DLQ (pipeline-queue-dlq) + max_retries=3 で失敗メッセージ管理。?async=true は opt-in (default は従来の sync 維持)、6 ヶ月後 default 切替予定。
2026-05-20 — PR #873 — feat — high
date: 2026-05-20
pr: 873
category: feat
importance: high
files:
- docs/architecture/glossary.md
- docs/_config.json
- docs/SUMMARY.md
- docs/architecture/prd.md
- docs/_internal/biz/financial_metrics_guide.md
tags:
- glossary
- arc42-ch12
- ssot
- hybrid
arc42 ch.12 の SSoT 用語集を新設 (案 C Hybrid)。docs/architecture/glossary.md に 6 カテゴリ約 43 用語 (データアーキ / 処理パターン / 会計・経理 / 財務指標 / bizlp 経営フレーム軸 / その他) を集約し、arc42.12_glossary_用語集 nav group の予約状態 (pages: 0) を解消。既存 3 doc (SUMMARY.md §1.9 / prd.md §A / financial_metrics_guide.md §12) には SSoT link を追記し文脈付き定義を残置。PR #874 の SUMMARY/index swap 後に rebase で index.md §1.9 への注記を SUMMARY.md §1.9 側へ振り替えて merge。CI の adr-lint --check-frontmatter (ADR-0039 Phase 4-b) を pass させるため frontmatter に id: glossary 追加で再 push。
2026-05-20 — PR #863〜#874 — refactor — high
date: 2026-05-20
pr: 874
category: refactor
importance: high
files:
- scripts/docs-build.mjs
- templates/page.html
- docs/SUMMARY.md
- docs/index.md
tags:
- docs-sidebar
- breadcrumb
- ui
- usability
docs サイトのサイドバー UI / ページ表示を大規模リファクタ。PR #863 で NS letter 短縮表示 + page link kebab スタイル + indent +10px ルール + 日本語前 <br> 改行 + page link 太字化。PR #871 で全 483 ページ h1 上に breadcrumb (パンくず) を追加 (1 階層 uppercase + 2/3 階層 kebab、" > " 区切り)。PR #872 で ADR ページ title 末尾の (Standard) / (Critical) / (Light) を frontmatter で別管理されているため strip。PR #874 で docs/SUMMARY.md と docs/index.md の中身を swap (英語的 semantic 整合: Summary=landing, Index=TOC)。scripts/docs-build.mjs に displayGroupName / displayPageTitle / breakBeforeJapanese / buildBreadcrumb / stripModeIndicator を追加。
2026-05-20 — PR #856〜#870 — feat — high
date: 2026-05-20
pr: 870
category: feat
importance: high
files:
- docs/_internal/05_how-to/adr-lint_rules.md
- docs/_internal/05_how-to/adr-lint_rules/rules/
- scripts/adr-lint-doc-consistency.mjs
- .github/workflows/adr-lint-doc-consistency.yml
- docs/adr/0054-bizlp-lint-rule-reference-establish-document-structure.md
- docs/_config.json
tags:
- adr-0054
- adr-lint
- ssot
- progressive-disclosure
- x5-migration
ADR-0054 (bizlp Lint Rule Reference 文書構造の確立) を全 Phase で完結。docs/_internal/05_how-to/adr-lint_rules.md を 14 rule (error 12 / warn 2 / 3 category) の SSoT 化。PR #856 Phase 1 (skeleton + Summary Table + 2 rule Detail) → PR #864 Phase 2a (frontmatter + §5.x 並び替え + ADR-0054 §2.2 corrigendum v3.1: severity warning→warn) → PR #865 Phase 2b (残 12 rule Detail、637 行で 500 行 error 閾値超過) → PR #866 Phase 2c (案 X5 移行: 14 rule を adr-lint_rules/rules/<id>.md 個別ファイル分離、main 134 行に縮小) → PR #867 Phase 3 (scripts/adr-lint-doc-consistency.mjs + CI workflow 新設、§6.5 検証手段 1-3 を機械化) → PR #868 Done 確定 → PR #870 nav 登録漏れ fix (14 rule を internal.05.10_adr-lint-rules で nav 登録、404 解消)。
2026-05-20 — PR #858〜#862 — feat — high
date: 2026-05-20
pr: 862
category: feat
importance: high
files:
- docs/adr/0055-bizlp-doc-nav-prefix-refactor-to-folder-number-based.md
- docs/_config.json
- scripts/docs-nav-lint.mjs
tags:
- adr-0055
- nav-prefix
- mcda
- q42
- lint-rule
ADR-0055 (bizlp doc nav prefix を親フォルダ番号ベースに刷新) 完結。docs/_config.json 全 469 entries を <NS>.<group_number>.<page_index> 形式 (NS = A=arc42 / I=internal / O=ops / M=meta) へ一括変換。scripts/docs-nav-lint.mjs に R4 prefix-group-consistency rule を追加し、prefix の数字部分が所属 group の数字部分と機械整合することを CI で検証。判断基準は ADR-0050 の Q42 5 軸 + WSM + K.O. criterion を適用 (採択案加重和 0.969 vs 案 X3 0.831)。PR #858 起案 (Proposed → Accepted) → PR #861 全件変換 + R4 lint → PR #862 Implementation Status を Done に確定。
2026-05-19 — PR #857, #859, #860 — refactor — mid
date: 2026-05-19
pr: 860
category: refactor
importance: mid
files:
- docs/adr/0031-allow-retroactive-kruchten-type-addition-partial-supersede-adr-0030.md
- docs/adr/0035-decision-pipeline-chat-ui-add-local-draft-json-load-button.md
- docs/adr/0036-add-confirmation-section-to-adr-template-fitness-function.md
- docs/adr/0037-decision-pipeline-add-serverside-draft-staging-lifecycle.md
- docs/adr/0045-organize-docs-internal-document-management-policy.md
- docs/adr/0052-decision-pipeline-ui-retroactive-validation-mode-create-pr.md
- docs/_config.json
- docs/_internal/01_discovery/customer_insight/ref_smb_solo_accountant_jtbd_hypotheses.md
tags:
- nav-cleanup
- filename-kebab-case
- adr-0055-prep
nav 構造クリーンアップ 3 件。PR #857 で docs/adr/ 日本語ファイル名 6 件 (ADR-0031/0035/0036/0037/0045/0052) を英語 kebab-case に統一 (git mv で履歴保持)。PR #859 で Category A nav 再編 14 件 — ops.02_playbooks を分割 / internal.05_how-to + internal.06_ops + meta.01_templates を新設 / arc42.07_deployment を充填。PR #860 で Category B 構造分割 8 件 — internal.03.0 を adr-reviews と pipeline-overview に分割 / prompts/ 5 件をサブ group 化 / ref_smb_solo_accountant_jtbd_hypotheses.md を customer_insight/ に git mv。ADR-0055 (nav prefix 刷新) の前段クリーンアップ。
2026-05-18 — PR #816, #820, #822, #819 — docs — mid
date: 2026-05-18
pr: 816
category: docs
importance: mid
files:
- docs/adr/0050-synthesis-standard-template.md
tags:
- decision-pipeline
- retroactive-validation
ADR-0050 (Synthesis 標準テンプレート) Retroactive Validation 完了 — Pipeline 自己審査の第一適用例 (Gate 4 v1 40/50 差し戻し → v2 47/50 通過 → Status: Accepted、PR #816 / #820 / #822 + KV 投入プロンプト #819)。(decision_pipeline/README.md ヘッダーの「直近変更」から移設・2026-06-03)
2026-05-15 — PR #754 — docs — mid
date: 2026-05-15
pr: 754
category: docs
importance: mid
files:
- docs/_internal/research_prompts/RQ-045_internal_docs_organization_synthesis.md
- docs/_internal/research_questions.md
- docs/_internal/research_prompts/README.md
- docs/_config.json
- docs/_internal/changelog.md
tags:
- rq-045
- adr-0043
- synthesis
RQ-045 Synthesis(3モデル統合)を作成し ADR-0043 起草インプットを完成。Claude / Gemini / GPT 完全合意: _internal/ 維持 + how-to/ runbooks/ research/ agents/ の4サブディレクトリ + YAML frontmatter 必須 + AGENTS.md〜60行 + 実行プロンプトを .claude/skills/ に分離。分岐点の整理と移行ステップ(S1〜S8)も記述。次: ADR-0043 起草。
2026-05-15 — PR #750 — feat — high
date: 2026-05-15
pr: 750
category: feat
importance: high
files:
- prompts/production/gate1-socratic/
- prompts/production/gate2-consistency/
- prompts/production/gate3-parallel-review/
- prompts/production/gate4-scoring/
- docs/_internal/prompt_lifecycle_guide.md
- docs/_internal/decision_pipeline/README.md
- docs/_config.json
tags:
- adr-0042
- prompt-lifecycle
- type1-prompt
- cloudflare-kv
ADR-0042 の Gate 1-4 プロンプトを prompts/production/ へ Type 1 移行。prompt_lifecycle_guide.md を新規作成し、ADR-0042 並列レビューの未対処事項(緊急 KV ロールバック手順・KV/git 乖離復旧フロー)を補完。各 Gate の prompt.meta.yaml は semver 1.0.0・評価閾値 0.85 で統一。golden.jsonl の整備は D+60(2026-07-14)目標。
2026-05-15 — PR #750 (追記) — docs — mid
date: 2026-05-15
pr: 750
category: docs
importance: mid
files:
- docs/_internal/research_prompts/RQ-045_internal_docs_organization_result_claude.md
- docs/_internal/research_prompts/RQ-045_internal_docs_organization_result_gemini.md
- docs/_internal/research_prompts/RQ-045_internal_docs_organization_result_gpt.md
- docs/_internal/research_questions.md
- docs/_internal/research_prompts/README.md
- docs/_config.json
tags:
- rq-045
- docs-internal-organization
- adr-0043-prep
RQ-045(docs/_internal/ 組織化ベストプラクティス)の3モデル並列調査結果を保存。Claude / Gemini Deep Research / GPT Deep Research の各 PDF をマークダウン化。3モデルとも _internal/ 維持 + Diátaxis サブディレクトリ + YAML frontmatter 必須を推奨。ADR-0043 起草インプット完成。
2026-05-14
- fix(pipeline): Cloudflare Workers サブリクエスト上限超過を修正 (PR #706)
- wrangler.toml に subrequest_limit = 1000 を追加
- consistency.ts: ADR 個別 fetch → GitHub GraphQL 一括取得に変更 (39 → 2 subrequests)
2026-05-12 — PR #TBD — docs — high
date: 2026-05-12
pr: null
category: docs
importance: high
files:
- docs/_internal/research_prompts/RQ-040_dev_organization_paradigm_synthesis.md
- docs/_config.json
tags:
- research-prompt
- rq-040
- synthesis
- adr-021-candidate
- use-case-slice
- walking-skeleton
- now-next-later
- dual-view
- markdown-vs-linear
- wardley-mapping
RQ-040 Synthesis 起案 — Gemini と Claude 両回答の論点突合 + bizlp 採択方針提示: PR #593 でマージされた両エンジン回答を論点ごとに突き合わせる正式な比較ドキュメントを新設。8 セクション構成: ①TL;DR / ②完全一致部分 (採用根拠 = Walking Skeleton + Now-Next-Later + UC スライス、不採用 = SAFe / WSJF / Outcome-Driven / 厳密 DDD、失敗パターン Top 5 共通指摘) / ③相違点 1: 進捗管理ツール (Linear or Notion 移行 vs Markdown 維持) → Claude 案 (Markdown 維持) 推奨 + 6 ヶ月再評価条項 / ④相違点 2: 二重ビュー (1 軸統合 vs 2 軸維持) → Claude 案 (2 軸維持で役割分担) 推奨 ADR-0010 との整合性が決定打 / ⑤相違点 3: Wardley Mapping (四半期評価 vs 補助的) → Claude 案 (補助的扱い) 推奨 ADR 起案時の任意分析ツールに格下げ / ⑥ADR-0021 起案骨格 (Title / Status / Context / Decision 6 項目 / Consequences / Reversibility / 撤退条件 / Alternatives Considered 6 案) / ⑦Caveats / ⑧関連ドキュメント。bizlp 採択方針は 3 件すべて Claude 案寄りだが、これは bizlp の既存制約 (ADR-0010 / 既存メモリ「GitHub Issues 移行保留」/ 1 人開発のツール慣れ) との整合性による判断であり、Gemini 案が誤りではなく適用文脈が異なる点を Caveats に明記。次工程: 本 synthesis を Decision Pipeline (POST /draft) に投入 → Triage / Socratic / Scoring / Consistency / Parallel Review を通過させて **ADR-0021「開発組織化パラダイムの採用」**として自動 PR 化、マージ後に usecase_dev_mapping.md / todo_master_tables.md / prd.md / product_overview.md の改修 PR を起案、Walking Skeleton 対象 UC (UC-2 資金調達準備 / UC-4 ランウェイ対応のいずれか) で End-to-End スライス 1 本を 900_test/901_test_runner.js でテスト合格まで通す。docs/_config.json に C.1.2.24 として nav 登録。
2026-05-12 — PR #593 (RQ-040 起案 + 両エンジン回答) — docs — mid
date: 2026-05-12
pr: 593
category: docs
importance: mid
files:
- docs/_internal/research_prompts/RQ-040_dev_organization_paradigm_meta_prompt.md
- docs/_internal/research_prompts/RQ-040_dev_organization_paradigm_prompt.md
- docs/_internal/research_prompts/RQ-040_dev_organization_paradigm_result_gemini.md
- docs/_internal/research_prompts/RQ-040_dev_organization_paradigm_result_claude.md
- docs/_config.json
tags:
- research-prompt
- rq-040
- dev-paradigm
- use-case-slicing
- use-case-2.0
- now-next-later
- walking-skeleton
- roadmap
- audit-requirement
- gemini-deep-research
- claude-research
- parallel-research
RQ-040 起案 + Gemini Deep Research + Claude Research 両方の回答受領 — 開発組織化パラダイム調査: 代表取締役の問題提起「実装の優先度や進捗が見えにくくなった、業務ユースケース単位での実装にしたい」を受け、Gemini Deep Research + Claude Research に並行投入する研究プロンプト 2 ファイルを起案、両エンジンの回答を受領。メタプロンプト + 本体プロンプト: Q1〜Q7 で (Q1) UC スライス仮説の評価 / (Q2) 代替パラダイム 11 種 (DDD Bounded Context / Capability Map / Value Stream / Walking Skeleton / Now-Next-Later / WSJF / Outcome-Driven / JTBD / Story Mapping 等) / (Q3) ハイブリッド戦略 / (Q4) 業界事例 / (Q5) 進捗可視化ツール / (Q6) 業務塊テスト / (Q7) リリース戦略を網羅。アウトプット要件として TL;DR / 比較表 / 採択推奨 + 代替 Top 3 / 既存ドキュメント改修プラン / 6 ヶ月ロードマップ / 失敗パターン Top 5 / 業界事例 URL 10 件以上を明記、採点ルールで断言調・一般論への逃避を減点対象とした。Gemini 回答の核心: User Story Mapping (Walking Skeleton) + Now/Next/Later Roadmap + Wardley Mapping のハイブリッド採用を推奨。回避すべき代替 Top 3 = Outcome-Driven / WSJF・SAFe 系 / 厳密 DDD。失敗パターンは「Markdown 二重メンテ地獄」「場当たり DDL 変更」「Feature Flag 負債化」等。既存ドキュメント改修プラン: usecase_dev_mapping.md / todo_master_tables.md のステータス管理を即時 DEPRECATED 化し Linear or Notion に単一データベース化を提言。Claude 回答の核心: Use Case Slice (Use-Case 2.0 / Jacobson 2016 ACM) × Walking Skeleton × Now/Next/Later の 3 層ハイブリッド。回避すべき代替 Top 3 = Shape Up (1 人だと Betting Table 不成立) / SAFe・LeSS・DAD 完全採用 / Outcome-Driven (PM ≡ Engineer ≡ CEO で計測コスト過大)。Gemini との最大の相違: Claude は 二重ビュー (UC × 技術カテゴリ) を維持 し、UC = リリース・テスト・追跡可能性の単位 / 技術カテゴリ = コード配置単位、として役割分担を明文化推奨。Markdown 表のまま拡張 (slice_id / walking_skeleton_status / now_next_later の 3 列追加) で十分とし、Linear / Notion 移行は不要と判断 (Linear 自身が ~50 名前後の運用規模)。GAS 固有: QUnitGS2 主軸 + 関数命名規約 (test_UC1S01_*) で Gherkin 等価実装、Cucumber.js は gas-fakes 経由で GitHub Actions 外部実行が将来オプション。両エンジン一致の核: ① Walking Skeleton / Now-Next-Later / UC スライスの基本方針は完全一致 / ② Outcome-Driven Roadmap・WSJF・SAFe 完全採用は両者ともに不採用 / ③ 失敗パターンとして「監査要件と Outcome 計測の相性最悪」「Markdown / バックログ二重メンテナンス」「Feature Flag 負債化」「6 分制限超過」を共通指摘。主な相違: ① Wardley Mapping (Gemini 推奨 / Claude は補助的) / ② Linear / Notion 移行 (Gemini = 移行推奨 / Claude = MD 維持で十分) / ③ Use Case Slice の学術根拠の精度 (Claude は Use-Case 2.0 / Jacobson 2016 ACM の一次引用 + テストケース必須要件、Gemini は Cockburn / Cohn / Patton ベースで網羅) / ④ DDD の扱い (Gemini = ボイラープレート肥大化で完全回避、Claude = 1 人だと過剰だが 400_domain 配下で要素引用可) / ⑤ 失敗パターン Top 5 のうち「Later ゴミ箱化」を Claude 単独で指摘。残り: 両回答を _synthesis.md で突合し、ADR-0021 候補「開発組織化パラダイムの採用」として正式化判断 (Decision Pipeline 経由)。docs/_config.json に C.1.2.20〜C.1.2.23 として nav 登録 (3・4 ファイル目は Gemini / Claude 結果)。
2026-05-12 — PR #596 — feat — high
date: 2026-05-12
pr: 596
category: feat
importance: high
files:
- drp/src/nodes/parallel_review.ts
- drp/src/nodes/webhook.ts
- drp/src/state.ts
- drp/src/llm/gateway.ts
- drp/src/graph.ts
- docs/_internal/decision_pipeline/prompts/05_parallel_review.md
- docs/_internal/decision_pipeline/phase3_parallel_review_design.md
- docs/_internal/decision_pipeline/README.md
- docs/_config.json
tags:
- decision-pipeline
- langgraph
- phase-3
- gate-3
- parallel-review
- all-phases-completed
- adr-019
- cross-workspace
Decision Pipeline Phase 3 (Gate 3 並列レビュー) 実装完了 — 全フェーズ完了: ADR-0019 のフェーズ計画における Phase 3 を本番投入し、Decision Pipeline の全ゲート (Triage / Socratic / Scoring / Consistency / Parallel Review) が稼働。src/nodes/parallel_review.ts で 3 モデル並列レビューを実装 (Promise.all、LangGraph グラフ分岐は使用しない設計判断 — グラフ可視化煩雑化 / State チャネル 3 倍化 / 合流ノード追加を回避)。モデル役割分担: Gemini Flash = ビジネスインパクト / アーキテクチャ整合性 / 長期負債リスク、Claude Sonnet = 論理的一貫性 / 問題定義と決定のつながり / 撤退条件の現実性、GPT-4o = 技術的実現可能性 / コスト試算 / 完了条件の検証可能性。情報提供型ゲートとして位置付け (差戻しなし) — Phase 1〜2c の 4 段差戻しゲート (Triage / Socratic / Scoring / Consistency) で起案品質は既に担保されているため、Phase 3 は PR 本文へのレビュー転記に専念し、レビュー LLM のハルシネーション差戻し事故 / 意見不一致解決ロジック / TC 9 通り整備のコストを回避。エラー耐性: 各モデルのエラーは個別 catch で吸収 → 残りモデルの結果で PR を生成しパイプライン継続 (LLM プロバイダ単独障害でも ADR 起案が止まらない)。グラフ最終形は triage → socratic → body_generation → scoring → consistency → parallel_review → slug → numbering → webhook。src/nodes/webhook.ts で 3 モデルのレビュー結果を指定セクションとして PR 本文に転記 (ビジネス → 論理 → 技術 の順で並列表示し、レビュアーの頭の切替コストを最小化)。設計メモ新設: docs/_internal/decision_pipeline/phase3_parallel_review_design.md で「なぜ差戻しなし」「なぜ Promise.all (vs LangGraph 分岐 / 直列 / Cloudflare Queues 非同期)」「なぜ 3 モデル + その役割」「エラー処理ポリシー (3 モデル全失敗でもパイプライン継続する根拠)」「テスト戦略 (YAGNI で TC を敢えて作らない判断 + 運用後の TC-P01〜P03 整備指針)」を SSoT 化。プロンプト原本: prompts/05_parallel_review.md v1.0 が src/nodes/parallel_review.ts の system prompt SSoT。README.md 更新: アーキテクチャ図に parallel_review node 組込 / 「未実装の Gate」セクション削除 / 「全フェーズ完了」一覧表追加 (Phase 1 / 2a' / 2b / 2c / 2 / 3 各 PR 番号付き)。docs/_config.json: F.6.2.3 として phase3_parallel_review_design.md を nav 登録。次の投資領域: ADR 事後評価ループ (ADR-0020 §決定 #4 で予告 / ADR-0021 候補) / Phase 3 レビュー品質モニタリング / 02_scoring.md の根拠注記 / MAS 案件起票フローへの応用 (RQ-040 進行中)。
2026-05-12 — PR #591 — feat — high
date: 2026-05-12
pr: 591
category: feat
importance: high
files:
- drp/src/nodes/socratic.ts
- drp/src/state.ts
- drp/src/llm/gateway.ts
- drp/src/graph.ts
- drp/public/index.html
- drp/test-tc-socratic.mjs
- docs/_internal/decision_pipeline/prompts/03_socratic.md
tags:
- decision-pipeline
- langgraph
- phase-2b
- gate-1
- socratic
- stateless
- adr-019
- cross-workspace
Decision Pipeline Phase 2b (Gate 1 Socratic 問診) 実装完了 — 方式A (ステートレス) 採用: ADR-0019 のフェーズ計画における Phase 2b を本番投入。src/nodes/socratic.ts で gemini-flash による起案ドラフトの情報充足チェックを実装。不足項目があれば最大 3 問を返して END で差戻し、起案者がフォームに追記して再送する一巡フローで成立。設計判断: Durable Objects / セッション保持を使わないステートレス方式 (方式A) を採用 — /draft への単発再送で対話を成立させる最小設計。方式B (Workers + Durable Objects によるチャット型) は将来 /chat エンドポイント追加で移行可能。State に socraticPass / socraticQuestions 追加 (src/state.ts)、LLM Gateway に MODELS.socratic = 'gemini-flash' 追加 (src/llm/gateway.ts)、グラフは triage → socratic → body_generation → scoring → consistency → slug → numbering → webhook に再ワイヤリング (src/graph.ts)。UI 反映: public/index.html で Socratic 差戻し時の質問リスト表示 + STEP_MSGS 更新により、起案者は補完すべき項目を即座に把握可能。自動テスト: TC-S01〜S03 全合格 (drp/test-tc-socratic.mjs)。プロンプト + テストケース原本は docs/_internal/decision_pipeline/prompts/03_socratic.md に SSoT 化。残フェーズ: Phase 3 (並列レビュー) のみ未着手 — Phase 2b / 2c の運用実績 1 ヶ月程度を見てから着手判定。
2026-05-12 — PR #589 — feat — high
date: 2026-05-12
pr: 589
category: feat
importance: high
files:
- drp/src/nodes/consistency.ts
- drp/src/nodes/webhook.ts
- drp/src/state.ts
- drp/src/llm/gateway.ts
- drp/src/graph.ts
- drp/test-tc-consistency.mjs
- docs/_internal/decision_pipeline/prompts/04_consistency.md
- docs/_config.json
tags:
- decision-pipeline
- langgraph
- phase-2c
- gate-2
- consistency
- adr-019
- cross-workspace
Decision Pipeline Phase 2c (Gate 2 過去 ADR 整合性) 実装完了: ADR-0019 のフェーズ計画における Phase 2c を本番投入。src/nodes/consistency.ts で GitHub API 経由で docs/adr/*.md を並列取得し、claude-sonnet で起案ドラフトとの Conflict / Supersede 関係を判定。CONFLICT 検出 + 起案ドラフトに supersede 宣言なしの場合は END で差戻し。グラフは triage → body_generation → scoring → consistency → slug → numbering → webhook に再ワイヤリング (src/graph.ts)。State に consistencyVerdict / consistencyDetail フィールドを追加 (src/state.ts)、LLM Gateway に MODELS.consistency = 'claude-sonnet' を追加 (src/llm/gateway.ts)。PR 本文 (src/nodes/webhook.ts) に Gate 2 整合性セクションを挿入し、レビュアーが過去 ADR との関係を即座に確認可能に。プロンプト + テストケース原本は docs/_internal/decision_pipeline/prompts/04_consistency.md に SSoT 化 (TC-C01〜C05 を末尾に同梱)。自動テスト: node drp/test-tc-consistency.mjs で TC-C01〜C05 全合格。adr-kit との棲み分け: LangGraph 側 Gate 2 = 起案時の門番 (PR 化前にブロック)、adr-kit:lint Consistency ゲート = オーナーレビュー時の補強 (Accepted 直前の最終チェック) — 2 段構えで多段化。docs/_config.json に F.6.2.1 として nav 登録。残フェーズ: Phase 2b (Socratic) / Phase 3 (並列レビュー) のみ未着手。
2026-05-12 — PRs #555〜585 — feat — high
date: 2026-05-12
pr: 585
category: feat
importance: high
files:
- drp/
- drp/litellm/masking.py
- drp/litellm/test_masking.py
- drp/litellm/deploy-cloudrun.sh
- drp/test-tc.mjs
tags:
- decision-pipeline
- langgraph
- cloudflare-workers
- litellm-gateway
- cloud-run
- masking
- adr-019
- cross-workspace
LangGraph TS Decision Pipeline Steps 1〜8 実装完了・本番稼働: ADR-0019 で決定した移行先 (LangGraph TS + Hono on Cloudflare Workers + LiteLLM Gateway on Cloud Run + GitHub Actions) で E2E ADR 自動起案パイプラインを構築。Phase 1 で Dify から移植した Triage v0.2 / Scoring v0.1 を LangGraph node として再実装し、node drp/test-tc.mjs で TC-01〜07 を全自動実行可能に。実測結果: Triage 5/5 一致 (is_adr_worthy / mode 全 5 ケース合格)、TC-06 (雑なドラフト) = 3/50・pass=false ✓、TC-07 (高品質ドラフト) = 45/50・pass=true ✓ (Dify Phase 1 と同一スコア)。LiteLLM Gateway: pre-call マスキング callback (litellm/masking.py) を追加し、scriptId / OAuth トークン / 金額 / 取引先名を [MASKED:<種別>] に置換してから LLM (OpenAI / Gemini / Claude) へ送信。ユニットテスト 10/10 合格。Cloud Run メモリ上限を 512Mi → 1Gi に引き上げ (masking.py 追加後の OOMKill を解消)。本番 URL: https://decision-pipeline.t-saitoh.workers.dev/。PRs #555〜#585 で段階的にリリース。
2026-05-11 — PR #TBD — chore — mid
date: 2026-05-11
pr: null
category: chore
importance: mid
files:
- scripts/adr-lint.mjs
- docs/_internal/decision_pipeline/langgraph_migration/lint_baseline.md
tags:
- adr-lint
- decision-pipeline
- langgraph-migration
- adr-019
ADR lint スクリプト追加: scripts/adr-lint.mjs を新設し、ADR ファイル形式の自動検証を実装。5 ルール (numbered-header / context-section / decision-section / no-placeholder / min-length) で既存 ADR 全件をスキャンし、19/19 = 100% pass を確認 (結果は lint_baseline.md に記録済)。LangGraph パイプラインの CI gate および adr-kit Skill から呼び出す前提で、決定パイプラインの品質ガードを多段化。
2026-05-08 — PR #TBD — docs — mid
date: 2026-05-08
pr: null
category: docs
importance: mid
files:
- docs/adr/README.md
- docs/adr/0019-drp-migration.md
tags:
- adr-019
- adr-readme
- decision-pipeline
- dify-retired
- langgraph-migration
ADR 運用ガイドを ADR-0019 整合に更新: docs/adr/README.md の「起案フロー」セクションを Dify ベースから移行期注記版(現状=手動起票 / 将来=LangGraph TS + Hono on Cloudflare Workers + adr-kit 自動化)に書き換え。既存 ADR 一覧を 010-019 まで追記(ADR-0010〜0018 は旧形式のため Mode は推定値、新規 ADR は ADR-0019 形式メタデータブロックで起案する旨を明記)。関連ドキュメント節を「現行(LangGraph 移行設計)」と「退役対象(履歴として残置)」に分離し、langgraph_migration/ と adr_skill_setup/ を現行側へ追加。テンプレ説明を「LangGraph 実装後も _template.md を参照(ADR-0019 決定 3 / canonical-seven-section 不採用)」に更新。併せて ADR-0019 自身の Status: Proposed → Accepted / 承認日: - → 2026-05-08 を手動補正(main マージ済 #530 だが GitHub Actions 自動化が Phase 2a 未着手で未動作のため)。退役対象 Dify 系設計書 6 本への退役マーク追加は main session 担当のまま据え置き。
2026-05-08 — PR #TBD — docs — high
date: 2026-05-08
pr: null
category: docs
importance: high
files:
- docs/adr/0019-drp-migration.md
- docs/_internal/research_prompts/RQ-038_adr_skill_architecture_result.md
- docs/_internal/decision_pipeline/langgraph_migration/migration_overview.md
- docs/_internal/decision_pipeline/langgraph_migration/main_workspace_checklist.md
- docs/_internal/adr_skill_setup/bizlink-domain.md
- docs/_internal/adr_skill_setup/langgraph-adrkit-boundary.md
- docs/_internal/adr_skill_setup/migration_mapping.md
- docs/_config.json
tags:
- adr-019
- decision-pipeline
- langgraph-migration
- adr-kit
- dify-retired
- litellm-gateway
- cloud-run
- rq-038
ADR-0019 起案 + Phase 0a 下準備: Decision Pipeline を LangGraph TS + Hono on Cloudflare Workers + LiteLLM Gateway に移行 (Dify 退役) + adr-kit を補完ツールとして導入 + 既存 _template.md / ADR-0001〜0018 は不変更 の 3 点を同時決定。3 プロバイダ並行運用 (GPT / Gemini / Claude) のため LiteLLM Gateway を GCP Cloud Run にホスティング (Vertex AI と同 Project / GCP Secret Manager で API キー集中管理 = 監査要件適合)。Cloudflare Workers Paid plan ($5/月) 必須を ADR 内で明文化。LangGraph 側は OpenAI 互換 SDK 1 本に統一し pre-1.0 breaking changes リスクを Gateway で隔離。Gemini Deep Research レポート (RQ-038) を構造化転記し ADR-0019 から参照。main session 用の LangGraph 実装手順書 (main_workspace_checklist.md) と Dify 既存設計書 6 本の処遇対応表 (migration_overview.md) を sub workspace で先行作成。adr-kit セットアップ素材 3 ファイル (bizlink-domain.md / langgraph-adrkit-boundary.md / migration_mapping.md) をステージングし、main session で .claude/skills/adr-kit/references/ へコピー予定。docs/_config.json に ADR-0019 のみ nav 登録 (RQ-038 / 内部設計メモは Plan で scope 外指定)。方針経緯: 当初 Dify + adr-kit 棲み分け案を策定 → Dify CI/CD 完全化が DSL API 非公式で困難と判明 (Issue #24087 / #27795 open) → ユーザー決定で LangGraph TS 完全移行に転換 (Phase 2a 未着手のため並行稼働期間なし)。Dify Phase 1 投資 (Triage v0.2 / Scoring v0.1) は LangGraph node に手作業移植 (半日〜1 日) で吸収。Decision Pipeline 既存設計書 6 本への退役マーク追加は main session 担当 (本セッションでは無変更)。
2026-05-08 — PR #TBD — docs — mid
date: 2026-05-08
pr: null
category: docs
importance: mid
files:
- docs/dev/dev_mas-363_health_diagnostic_signal.md
- docs/_internal/TODO_future.md
- docs/_config.json
tags:
- mas-363
- mas-008-extension
- health-diagnostic
- dev-spec
MAS-363 財務健全性信号機判定 を MAS-008 (Cash Runway) の延長案件として dev spec 起票。spec_bs.md §9 で確定した 5 段階信号機 (🔴/🟠/🟡/🟢/🔵) × 5 指標の判定ロジックを 600_report/613_health_diagnostic.js (新規) で実装する設計。Tax-Adjusted Cash・MVS 監査・過剰検知時 3 段構成メッセージを含む。03_sys_params への 17 パラメータ追加、609_datamart_kpi.js への信号機列統合を計画。実装規模 6-8 時間で 実装未定(TODO_future.md 登録済み)。docs/_config.json に nav 登録。
2026-05-08 — PR #528 — docs — mid
date: 2026-05-08
pr: 528
category: docs
importance: mid
files:
- docs/spec/spec_bs.md
tags:
- spec-bs
- health-diagnostic
- signal-scheme
- runway
- threshold-design
spec_bs.md に §9「財務健全性信号機判定」 を新設。一人法人 IT/コンサル業向けに 5 段階信号機 (🔴危険 / 🟠警告 / 🟡注意 / 🟢健全 / 🔵過剰) で財務健全性を判定する仕様を策定。U字型非対称リスクモデル (倒産リスクは厳格・機会損失は緩やか) を採用し、5 指標 (現預金比率は対月商倍率・自己資本比率・流動比率・固定比率・ランウェイ) の閾値を業種特性 (情報通信業中小企業平均値) と成長促進視点 (Y Combinator 慣行) のハイブリッドで設計。固定比率 <5% を「過少投資 (生産性向上への投資忌避)」として🔵 過剰判定する独自ロジック、Tax-Adjusted Cash (実質現預金) による納税サイクル誤検知防止、MVS (Minimum Viable Salary) 監査による役員報酬下げによるランウェイ偽装検出も導入。閾値は 03_sys_params でパラメータ化予定 (MAS-008 延長として実装想定)。
2026-05-08 — PR #521 — docs — mid
date: 2026-05-08
pr: 521
category: docs
importance: mid
files:
- docs/_internal/ui_verification.md
tags:
- claude-md
- ui-verification
- human-gate
- workflow
ui_verification.md §4 に 「人間確認ゲート (必須)」 サブセクションを追加。UI 変更時に Claude が git push / PR 作成する前に明示的に人間からブラウザ目視 OK を受領するフローを厳守ルール化。npm run test:ui の snapshot pass や type-check pass を「OK」と誤認しないチェックリスト付き。CLAUDE.md は無変更 (Progressive Disclosure 維持・索引化方針)。
2026-05-08 — PR #519 — docs — mid
date: 2026-05-08
pr: 519
category: docs
importance: mid
files:
- CLAUDE.md
- docs/_internal/ui_verification.md
- docs/_config.json
tags:
- claude-md
- ui-verification
- playwright
- tests
UI 改修時のローカル検証ルールを明文化。CLAUDE.md「変更時テスト」表に webapp_client/src/**/*.{ts,tsx,css} および templates/*.html の 2 行を追加し、詳細手順を docs/_internal/ui_verification.md (新規, F.2.5) に外出し (Progressive Disclosure)。/tmp/ への ad-hoc Playwright 実行禁止・既存 npm run test:ui を優先利用・port 5173 の --strictPort 強制等の運用知見を集約。
2026-05-08 — PR #518 — docs — mid
date: 2026-05-08
pr: 518
category: docs
importance: mid
files:
- docs/_internal/changelog.md
tags:
- changelog
- structured-format
- progressive-disclosure
changelog.md の新規エントリ書式を 構造化形式 (H3 見出し + YAML コードブロック + 散文) に移行。LLM/スクリプトからの機械パース性と人間の可読性を両立。既存 291 件のレガシーエントリは無変更で保持し遡及移行コストを回避 (段階的移行方針)。スキーマ: date / pr / category / importance / files / tags。本 PR (#518) 自身は記録漏れだったため PR #519 で遡及追加。
2026-05-08 — PR #517 — docs — low
date: 2026-05-08
pr: 517
category: docs
importance: low
files:
- CLAUDE.md
tags:
- claude-md
- tests
変更時テスト表の RPA 行を 全 RPA ファイル対象に拡張 (400_domain/401_rpa_hc.js → 400_domain/40*_rpa_*.js、テスト名: HC RPA テスト → 全RPAテスト)。glob パターン化で 6*_datamart_*.js 行と書式統一。400_rpa_common.js / 407_rpa_orchestrator.js 経由のレグレッション見逃しリスクを低減。
2026-05-08 — PR #516 — docs — mid
date: 2026-05-08
pr: 516
category: docs
importance: mid
files:
- CLAUDE.md
tags:
- claude-md
- workspace-rules
CLAUDE.md 冒頭に 役割別読み方ガイド (5 行) を追加。main / sub の section 適用範囲を明示し、Claude が冒頭で役割を把握して関連性の低い section を読み飛ばせるよう支援。完全分離 (CLAUDE.main.md / CLAUDE.sub.md) は drift コストが大きく見送り、軽量マーカー方式を採用。humanlayer 指針 system-reminder で関連性なければ無視せよ の挙動と整合。
2026-05-08 — PR #515 — hooks — mid
date: 2026-05-08
pr: 515
category: hooks
importance: mid
files:
- scripts/hooks/post_edit_guard.sh
- docs/_internal/hooks_setup.md
tags:
- hooks
- post-edit-guard
- claude-md
- cross-workspace
post_edit_guard.sh に CLAUDE.md / CLAUDE.local.md への @ import 検出ルール を追加。PR #514 の再発防止策。検出パターン: 行頭 or 空白の直後の @docs/ / @CLAUDE.local.md / @./。誤検知防止: email アドレスや GitHub mention は対象外。table-driven test 19 ケース通過。
2026-05-08 — PR #514 — fix — high
date: 2026-05-08
pr: 514
category: fix
importance: high
files:
- CLAUDE.md
tags:
- claude-md
- context-optimization
- progressive-disclosure
CLAUDE.md 内の @ import 19 件を plain path 参照に変換 (起動時 context 圧迫の解消)。最大要因の @docs/_internal/changelog.md (422,604 chars) が起動時に展開され Claude Code の警告 Large changelog.md will impact performance (256.7k chars > 40.0k) を発火していた。humanlayer 指針 @ import してもコンテキストは減らない (起動時に展開され注入される) を踏まえ、Progressive Disclosure (CLAUDE.md は索引、docs/ は図書館) の運用に統一。起動時 import: 495,492 chars → 0 chars (-100%)。
レガシーエントリ (2026-04-12 〜 2026-05-08, テーブル形式)
| 日付 | ファイル | 変更内容 |
|---|---|---|
| 2026-05-07 | webapp_client/src/cockpit/FinancialStatementsView.tsx (新規) / FinancialStatementPanel.tsx / bsCfConfigs.ts / cockpit.css / CockpitApp.tsx (PR #506) | cockpit_spa B/S・C/F パネル追加。FinancialStatementsView.tsx 新規作成 — P/L・B/S・C/F 3 表の実績/計画・月次/YTD 切替を共有化(共有コントロールバーをページ上部に sticky 固定・3 表同時切替)。3 表の横スクロール同期 + 科目列スティッキー固定。B/S: 月次=空白・YTD=スナップショット (ytdOnly フラグ)。B/S 計画の期末残高列を「最終月実績×補外率」で表示 (extendPlan col0AsLastMonth オプション)。C/F ラベルを「キャッシュフロー → CF」に統一・○○活動合計行を削除。 |
| 2026-05-08 | docs/_internal/BUG_tracking.md | MAS-361 を修正済セクションへ移動。未修正 4 件 → 3 件 |
| 2026-05-07 | CLAUDE.md / docs/_internal/git_workflow.md / workspace_rules.md / hooks_setup.md / migration_guide.md (PR #511) | CLAUDE.md を 317 行 → 127 行に圧縮。詳細を @import 先ファイル群へ外出し。scripts/hooks/pre_bash_guard.sh + post_edit_guard.sh で禁止操作(PropertiesService 直呼び / prod scriptId ハードコード / main 直接 push 等)を技術的強制ブロック。CLAUDE.local.md.example 追加 |
| 2026-05-07 | 000_infra/001_env.js / 100_config/101_sys_config.js / 800_ops/803_sync_tool.js / 811_audit_checker.js / 600_report/601_datamart_ingest.js (PR #512) | [cross-workspace] refactor(env): PropertiesService.getScriptProperties() 直呼び 4 件を Env モジュール経由に置換(ADR-0013 の実装強制化 / Hook 導入後の初回 cross-workspace 修正) |
| 2026-05-07 | webapp_client/src/cockpit/CockpitSidebar.tsx (新規) / CockpitApp.tsx / cockpit.css (PR #510) | feat(cockpit): 月次財務諸表ビューに運用操作サイドバーを追加。CockpitSidebar.tsx 新規作成 — GAS の各種操作(マート更新・Action A/B 等)を財務諸表ビュー内から呼び出せる UI |
| 2026-05-07 | 600_report/601_datamart_ingest.js (PR #509) | fix(datamart): MAS-361 修正 — dmIngestPlanData_ sStr 判定条件 (b) 決済日_計画 ≤ 当月 → < 当月 に変更。当月決済予定 INV の売掛金が 73_bs_plan で 1 ヶ月余分に残るバグを解消 (commit d32cfa1) |
| 2026-05-07 | webapp_client/src/CockpitApp.tsx / templates/financial_cockpit.html (PR #508) | fix(cockpit): ビュー切替時の財務諸表データ保持・シミュレーター非 GAS 環境メッセージ改善 |
| 2026-05-07 | webapp_client/src/CockpitApp.tsx / templates/financial_cockpit.html (PR #506 追加コミット) | fix(cockpit): C/F ラベル「キャッシュフロー → CF」を GAS ブリッジ側で正規化・期末残高列スティッキー・デフォルト YTD・ヘッダー正規化 |
| 2026-05-07 | docs/_internal/decision_pipeline/dify_workflow_spec.md / prompts/02_scoring.md (PR #507) | docs: Phase 2a Dify Workflow 実装仕様追加 + Scoring schema 不整合を修正 |
| 2026-05-07 | webapp_client/src/cockpit/CockpitNav.tsx (新規) / CockpitApp.tsx / styles/cockpit.css (PR #499) | cockpit_spa 左サイドバーナビ追加。CockpitNav.tsx 新規作成 — cockpit 内ナビゲーションコンポーネント。CockpitApp.tsx を 2 カラムレイアウト (cockpit-body / cockpit-nav / cockpit-main) に変更し各パネルに section ID 付与。ナビ項目: 💰報酬戦略 / 📊アプローチ比較 / 📋財務諸表 / 💹資本効率 / ⚙️入力設定 / 📅5 年計画リンク。モバイル (≤640px) では非表示。判明した運用ルール: SPA の UI 変更を /exec URL に反映するには push:dev ではなく deploy:dev が必要 (push:dev は Web アプリ deployment を更新しない)。 |
| 2026-05-03 | dev_mas-355_capital_allocation_dashboard.md v1.0 実装完了 (PR #489) | MAS-355 資本効率&キャピタル・アロケーション最適化ダッシュボード 実装完了。Step 1: 400_domain/447_capital_allocation_engine.js 新規作成 — 3 バケツモデル (assessThreeBuckets) / ROE 健全性診断 (capitalLazyFlag 資本の怠慢判定) / Rule of 40 スコアリング (assessRuleOf40) を Pure Function CapitalAllocationEngine.diagnose(inputs) として公開。単体テスト F355-01〜13 を 900_test/901_test_runner.js に追加。Step 2: 800_ops/822_migration_mas355_seed.js 新規作成 — migrationMAS355Seed() で 03_sys_params に MAS355_* 6 キー (MAS355_OPPORTUNITY_RATE=0.05 / MAS355_ROE_HEALTHY_MIN=0.08 / MAS355_EQUITY_RATIO_BLOAT=0.80 / MAS355_RULE_OF_40_THRESHOLD=40 / MAS355_STRATEGIC_CASH_RATIO=0.20 / MAS355_DEFENSE_CASH_MONTHS=6) を冪等投入。MENU_DEFINITION に「MAS-355: 資本効率診断 sys_params 投入」として登録。Step 3-5: webapp_client/src/cockpit/CapitalAllocationPanel.tsx 新規作成 (~640 行) — 入力フォーム (デバウンス 200ms) + 3 バケツバー (防衛/戦略/余剰の色分け視覚表示) + ROE インジケーター + capitalLazyFlag バッジ (資本の怠慢警告) + Rule of 40 スピードメーター + アロケーション提案リスト。CockpitApp.tsx 統合・cockpit.css に .mas355-* スタイル追加。フロントエンド側 spec (§対象ファイル 新規) の番号確定: 8XX → 822。仕様書ステータス Open → Done 更新。 |
| 2026-05-02 | dev_mas-059_growth_planning_workspace.md v2.0 (scope reset) / docs/_config.json E.5.38 タイトル更新 / id_mapping_table.csv MAS-059 行更新 (title + layer Domain) | MAS-059 仕様書 v1.x (統合意思決定ツリー UI + LangGraph + Postgres) → v2.0 (1 人コンサルタント 非連続成長シミュレーター・4 レバー成長戦略) に全面 scope reset。契機: ユーザー要望「1 人社長コンサル業の事業は順調なのに年収 1500-2000 万円台で頭打ち = 非連続成長を 4 レバー (Pricing 価格 / Product 生産物 / Human 人 / Capital 資本) の組合せシミュレーターで突破したい」を受けスコープ全面リセット。Gemini Deep Research (2026-04-30) + Claude 内部調査の突合により 4 レバー成長戦略フレームを採用。新規ファイル: (a) 400_domain/446_growth_strategy_engine.js (純粋関数 IIFE 名前空間 GrowthStrategyEngine / 4 レバー独立関数 + 統合 API runGrowthStrategy + 内部ヘルパ _annuityFactor_ / _rankByNpv_ / _buildStackedBarData_ / _buildHoursLineData_ / _formatJpy_・約 500 行) / (b) webapp_client/src/cockpit/GrowthStrategyPanel.tsx (左 4 スライダー + 右上 限界利益スタックドバー (Y0-Y5) + 右下 月間稼働時間ラインチャート (soft 160h / hard 200h ガード) + 下部 予算オーバー警告バナー + feasibility indicator + HitlBadge・約 700 行)。ID 採番衝突回避 (failure_patterns #31): ユーザー初期提案 400_domain/448_growth_strategy_engine.js は MAS-061 (448_cash_etr_simulator.js) で予約済で衝突発覚 → MAS-059 v1.x で予約していた 446 slot を v2.0 で再利用(v1.x の 446_decision_tree_orchestrator.js は §A アーカイブで実体未作成のため slot 競合なし)。4 レバー設計: (1) Pricing: 価値ベース価格設定 / 単価 +30-100% / 弾力性 0.7 default で顧客流出シミュ (F59_PRICING_ELASTICITY) / (2) Product: 製品化レベル 0-5 (完全カスタム → 完全 SaaS) / 最大生産性倍率 1.5x / 知識資産簿外価値計上 (F59_PRODUCTIZATION_BOOST_MULTIPLIER) / (3) Human: 業務委託 / 採用 (HITL 強制) / マイクロ M&A (買収プレミアム 5 倍 default・F59_CAPITAL_MNA_PREMIUM_DEFAULT) / 管理コスト 30% gross-up (F59_HUMAN_LEVERAGE_OVERHEAD_RATIO) / (4) Capital: Buffett-Munger 階層 (再投資 → M&A → 配当 → 自社株買い) / ROIC 閾値 15% (F59_CAPITAL_REINVEST_ROIC_HURDLE) / 配当機会費用 5% (F59_CAPITAL_DIVIDEND_HURDLE_RATE) / 5 年 NPV 比較 + バフェット第 1 原則違反警告。新規 sys_params 12 キー (F59_*)。14 セクション全網羅: 概要 + 目的 (4 レバーフレーム + MAS-058/067/071/072 cockpit 関係) + 現在のコード (前提案件 5 + _scrubInfinityForJSON_ 規約) + 修正方針 7 Step + 影響範囲 + 注意事項 15 件 + エッジケース 18 件 + テスト F059-01〜F059-18 + 関連ドキュメント 14 件 + 人間検討事項 14 件 + 実装プロンプト + 推奨実行モデル + §A 旧 v1.x スコープのアーカイブ (LangGraph + Postgres + Decision Tree Orchestrator + Causal AI 不採用論 + Air Canada v. Moffatt 法的設計 + HITL 強制条件 + Autonomy Slider + 真のツリー UI 不採用論 等を MAS-361 候補としてキャリーオーバー)。前提案件は v2.0 でほぼ完了済: MAS-057 (✅ Phase 3+Step 7 PR #379/394/454/459) / MAS-058 (✅ Step 4 PR #401) / MAS-067 (✅ v1.8 PR #418/.../454) / MAS-066 (✅ PR #402) / MAS-071 (✅ v1.1 PR #457/459) → v2.0 は実装着手可能状態 (主要前提が全て完了済のため)。id_mapping_table.csv layer 列: v1.x で「🌐 Cross」だったのを v2.0 では「🧠 Domain」に更新 (純粋関数 1 + UI panel 1 のシンプル構成のため)。docs-only PR で prod 自動デプロイへの影響なし。「実装が spec を先行」のパターンとは逆で、v1.x 仕様書を実装に入る前に scope reset した珍しい運用例。 |
| 2026-05-02 | dev_mas-355_capital_allocation_dashboard.md v0.1.1 (Q6 + 2.1 v1.1 拡張案 + 関連ドキュメント R_i 追記) | MAS-355 仕様書に Q6 (自己時間振り分けによる戦略投資の取扱い) を新設。契機: bizlp 代表 (齋藤) はプロダクト開発スキルを保有しているため、戦略投資は必ずしも「外部支出 (外注費 / マーケ費 / IT 費 / R&D)」として現預金キャッシュアウトする必要がない・自分の稼働時間の一部を投資業務 (R_i) に振り分けることで同等の投資効果を実現可能。MAS-071 の 4 軸稼働率モデル (R_d デリバリー / R_s 営業マーケ / R_i 投資業務 / R_m 管理業務) に既に R_i が組み込まれているが、現行 MAS-355 v0.1 は strategicCash = marginAnnual × 0.20 の外部支出ベースのためプロダクト開発できる Solo CEO に対し誤警告を出してしまう問題を解消するための論点追加。誤動作シナリオ: (a) 外注ゼロ・R_i = 20% で 100% 自前投資 → 「投資不履行 + 純余剰過大」誤警告 / (b) 外注 10% + R_i = 10% ハイブリッド → 「投資不足」誤警告 / (c) 外注 100% + R_i = 0% は適正 (現行 OK)。推奨案 A (採用候補): strategicCashExternal = max(0, marginAnnual × 0.20 − directorMonthlyRate × R_i × 12) で自己時間投資を strategicCash から控除し 3 バケツ単純さを維持・例えば R_i = 20% で月単価 150 万円なら年 360 万円相当の自己投資 → 限界利益 1,500 万 × 20% = 300 万円ベンチマークを既にクリア済とみなし外部支出 0 円でも適正判定。案 B (非推奨): 4 バケツ並列管理 (selfInvestmentCash 仮想バケツ追加) は単純さが崩れる。注意点 5 件 (実装時必須記載): (1) 限界利益自己強化ループ = R_i 上昇 → R_d 低下 → revenue 低下 → marginAnnual 低下 → 戦略投資ベンチマーク 20% も自動的に低下のため過去年比較・絶対水準ベンチマーク必要 (MAS-002 期末スナップショット連携 v2 候補) / (2) 無形資産化されない = 自己時間投資の成果物 (プロダクト・自動化スクリプト) は会計上資産計上難・BS には現れない・UI で「BS 上の見た目は変わらない」明示必要 / (3) 税務中立 = 自己時間振り分けは P/L · 現預金 · 税務に影響なし・MAS-071 最適点を変えない / (4) MAS-058 連動 = R_i 上げ過ぎで R_d 低下 → MAS-058 下限警告と MAS-355 上限警告が同時発動するケースの UI 併記必要 / (5) バフェット解釈 = 自己時間投資は「① 既存事業再投資」の最も純度の高い形と解釈可能・アロケーション提案 #1 (自社事業再投資) の説明文に「自己時間投資 (MAS-071 R_i) も含む」明示。実装方針: v0.1 (現行) は外部支出ベースのまま動作・v1.1 で assessThreeBuckets の input 拡張 + strategicCashExternal 返却・v2.0 で過去年比較 (MAS-002 連携) で絶対値推移可視化・自己強化ループへの注意喚起 UI。変更箇所: §2.1 末尾に「v1.1 拡張案: 自己時間投資控除」サブセクション新設 / §10 タイトルを Q1-Q5 → Q1-Q6 に変更し Q6 新設 / §9 関連ドキュメントの MAS-071 行を v1.1 → v1.2 + R_i 連携追記 / §13 変更履歴に v0.1.1 entry。ID 衝突なし (failure_patterns #31 確認・本変更は MAS-355 spec 内追記のみで新規 ID 不要)。docs-only PR で prod 自動デプロイへの影響なし。 |
| 2026-05-02 | dev_mas-057_solo_ceo_cockpit.md v2.5 / dev_mas-058_required_revenue_solver.md v2.2 / dev_mas-067_multiyear_planning_workspace.md v2.0 / dev_mas-071_compensation_strategy_simulator.md v1.2 / BUG_tracking.md MAS-358 追加 / id_mapping_table.csv MAS-358 (BUG-19) 追加 | F-57 大規模 UI 再構成 (2026-05-01〜05-02 連続セッション・dev @230 反映) を 4 spec に追従。main 側で 2 日間連続 30+ commits によって F-57 cockpit を「節税最適化ツール → 多年経営ダッシュボード」から 「Solo-CEO 経営の総合 CFO ダッシュボード」に再構成完了 (commits b93f4bc 〜 6ad690b の 30 件)。4 spec 同期更新: (1) MAS-057 v2.5 = UI 全体再構成 (F-67 多年系 4 パネル → 3 パネル統合 + AI 提案 sticky + 多年 P/L/B/S/CF 表 + 健全性 6 制約 inline pill + 4 アプローチ比較に CURRENT 列追加 + MAS-071 戦略シミュレーター再構成 + 個人/法人タブ + アプローチ切替) / (2) MAS-058 v2.2 = RequiredRevenuePanel (-941 行) 削除・機能は SoloFS 多年表に inline 化で完全継承 (要相談・パネル形態廃止 + 機能残存) / (3) MAS-067 v2.0 = RetirementPanel 削除 + 4→3 パネル化 + cockpit 統合 (b 開発再開検討・MAS-141 / MAS-072 / 出口戦略連動で将来必要・エンジン側 F67ExitPlan 残存で復元コスト低) / (4) MAS-071 v1.2 = 前提条件 3 枠分割 (P/L / B/S / C/F) + 制約条件枠新設 (lMin / bufferMonths / targetProfit) + 詳細設定整理 + currentMonthlySalary 追加 + minimumMonthlySalary 削除 (a 完全削除 = lMin 重複) + 重複 3 項目削除 (a 仕様書修正のみ) + 初年度フラグ + 月数削除 (b 短縮事業年度シナリオで将来再開)。削除コンポーネント 9 件の draft 判断: (1-1) RetirementPanel (b 再開) / (1-2) RequiredRevenuePanel (要相談・機能残存パネル廃止) / (1-3) AssumptionsPanel (a 削除 + MAS-071 統合) / (1-4) ThreeSectionTable + CumulativeTable (a 削除) / (1-5a) InsightPanel (a 削除・AiSuggestPanel 統合) / (1-5b) SankeyDiagram (b 再開・要相談) / (1-5c) FiveYearChart (b 再開・要相談) / (1-6) SectionGPanel (a 削除) / (1-7) minimumMonthlySalary (a 削除) / (1-8) MAS-071 重複 3 項目 (a 仕様書修正) / (1-9) 初年度フラグ + 月数 (b 再開) — 要ユーザー承認。バグ修正 (確定済): 共済掛金 CF 二重計上 (commit f0a505b) / 期首 B/S 貸借不一致 50 万円ズレ (commit e47a817) / Y0 月次バーン y0Months 按分 (commit 9bfb048)。新規バグ MAS-358 (BUG-19): F-57 SoloFinancialStatementsPanel 健全性 4 行 (税引後利益 / ランウェイ役員報酬込 / 営業利益率 / 労働分配率) の数値 x 座標が他行と右にズレる cosmetic 問題 (低優先度)。試行 4 種すべて未解決・推測根本原因は padding-bottom: 22px !important の td 幅計算影響・別タスクで根本調査。ID 採番衝突発見 (failure_patterns #31 教訓・要追加対応): id_mapping_table.csv で MAS-301/302/303 = RQ-3/4/5 が先約だったが、本日 PR #467 / PR #470 で BUG_tracking.md にも MAS-301/302/303 を再利用してしまっていた状態を発見。本 PR の新規バグは衝突回避のため MAS-358 (BUG-19) として採番 (id_mapping_table 最新 = MAS-357 PR #482 の次空き)。既存衝突 (MAS-301/302/303 = BUG vs RQ) は別 PR で整理予定。配置順序 v2.5 最新: AiSuggestPanel sticky → MAS-071 戦略シナリオ → ApproachComparisonPanel (CURRENT 列) → SoloFinancialStatementsPanel (健全性 inline + 投資余力末尾) → GuardrailPanel + SuggestPanel + 5 年計画ナビ。最終更新日 2026-05-02。「実装が spec を先行 → spec を整合追従」のパターン累計 14 例目 (4 spec 同時 v2.5/v2.2/v2.0/v1.2)。docs-only PR で prod 自動デプロイへの影響なし。 |
| 2026-05-01 | TODO_future.md フロントエンド近代化候補 2 件追加 / id_mapping_table.csv MAS-356/357 行追加 | フロントエンド近代化案件 2 件を発展候補として登録。契機: 本セッションで「Web のコックピットデザインが得意な生成 AI」と「GCP 移行時のフロントエンド配信」の議論の結果、bizlp 将来発展候補として整理する価値ありと判断。全件実装未定で id_mapping_table 登録のみ・将来「実装する 1 つ」だけ正式仕様書化する運用。2 件の独立性: (a) MAS-356 Vercel v0 + Tremor 採用 = UI ツール採用 / (b) MAS-357 GCP 移行 = ホスティング移行・両者は技術的に独立・片方先行も可能。MAS-356 Vercel v0 + Tremor 採用 (🎨 UI・実装規模 ~1 週間): cockpit パネル開発高速化目的。Vercel v0 (v0.app) でプロンプト → React + Tailwind + shadcn/ui コード生成・Tremor (@tremor/react) でダッシュボード専用コンポーネント (KPI カード / スピードメーター / ゲージ) 統一。MAS-355 Rule of 40 スピードメーター実装での試験採用候補。bizlp 既存 React + Vite スタックと完全互換でロックインなし。MAS-357 フロントエンド GCP 移行 (🔧 Infra・Epic 級・実装規模 2-4 週間 Phase 1-2): GAS HtmlService → Firebase Hosting への移行。ADR-0009 Phase 4-5 SaaS 化への基盤。現状: GAS Web App URL でカスタムドメイン不可・Service Worker / PWA 不可・?embedded=1 制約・CDN 制御弱。移行後: Firebase Hosting + カスタムドメイン (例: cockpit.bizlp.co.jp) + CDN + HTTPS 自動 + PWA + WebSocket 可。段階移行 Phase 1-4: (1) GAS 並列稼働で A/B 検証 → (2) フロント完全 Firebase + バック GAS 維持 + CORS → (3) バックも Cloud Run / Cloud Functions → (4) Sheets API 直叩き or Firestore 検討。認証フロー再設計必要 (Session.getActiveUser() → Firebase Auth or IAP)。ADR-0008 (Vertex AI 集約) と整合で既に GCP 寄り方針。Epic 級のためサブ案件への分解検討余地 (MAS-357-A/B/C/D 等)。重要な気づき: v0 + Tremor は GCP 移行を待たず今すぐ採用可能で、ホスティング非依存 (生成コードは React + Tailwind 標準で動作)・両案件は独立採用可能。docs-only PR で prod 自動デプロイへの影響なし。 |
| 2026-05-01 | dev_mas-355_capital_allocation_dashboard.md v0.1 新設 (約 800 行) / docs/_config.json E.5.51 ナビ追加 / id_mapping_table.csv MAS-355 行追加 / dev_mas-058_required_revenue_solver.md クロスリンク追記 (本案件は v2 拡張的位置づけ・上限警告担当) | MAS-355 資本効率&キャピタル・アロケーション最適化ダッシュボード仕様書 v0.1 起票完了。契機: 本セッションで Solo CEO 向けの財務戦略を 3 軸 (税務最適化 / 企業価値最適化 / 資本効率) に整理する議論の結果、3 つ目の軸「資本効率」を扱う Spec が未整備と判明 → MAS-058 健全性診断は下限警告 (ランウェイ < 12 ヶ月等) のみ実装で上限警告 (過剰内部留保 → 資本効率悪化) 不在を補完。Deep Research 2 件 (Gemini「1 人社長のマイクロ法人における資本効率最適化と攻めの財務戦略」+ Claude 内部「過剰内部留保と資本効率の最適化ガイド」) を統合した SSoT として仕様化。ID 採番衝突回避 (failure_patterns #31): 案件 ID = MAS-355 (MAS-354 が max・以前「上限警告システム候補」として提案・本日確定) / ドメインエンジン番号 = 447_capital_allocation_engine.js (44X 帯空き確認: 446/447/448 free・449=配当ミックス・451=multiyear・454=役員報酬戦略・455=企業価値スコアボード)。3 ロジック統合: (1) 3 バケツモデル = 現預金を防衛 (月固定費×6+納税バッファ) / 戦略投資 (限界利益×20%) / 純余剰 に強制分類・純余剰時に年率 5% 機会費用で年間機会損失額算出 / (2) 資本効率スコア (ROE) = 伊藤レポート最低基準 8% を健全圏下限・自己資本比率 80% 超で「肥大」フラグ・両方該当で「資本の怠慢」診断 / (3) Rule of 40 (SaaS 業界標準) = 売上成長率 + 営業利益率 ≧ 40% で健全・40% 未満で「成長投資不足」診断 (黒字維持バイアス対抗)。UI/UX: (a) 3 バケツ積み上げ棒グラフ (緑/オレンジ/赤の配色 + リアルタイム再計算 debounce 200ms) / (b) ROE 信号機 + 自己資本比率ゲージ / (c) Rule of 40 スピードメーター (5 段階色変化 + 紙吹雪エフェクト 等のゲーミフィケーション要素・40 超で緑) / (d) 純余剰時のアロケーション提案カード 4 枚 (Buffett-Munger 流優先順位: 自社事業再投資 → 退職金原資確保 → 金融資産運用 → 借入レバレッジ枠確保)。Q1-Q5 推奨判断: (Q1) 月固定費に役員報酬含む = 案 A 含める (sys_params で切替可) / (Q2) 戦略投資 = 限界利益 20% 妥当 / (Q3) ゲーミフィケーション = 案 Y 弱め (色変化 + 軽トースト・段階拡張) / (Q4) 機会費用率 = 5% (株式市場期待リターン下限・case Y/Z より説明性高) / (Q5) アロケーション順序 = バフェット・マンガー流固定 (シンプル原則 v1・業種別カスタマイズは v2)。Step 1-6 実装ロードマップ: ドメインエンジン (Opus・ |
| 2026-05-01 | id_mapping_table.csv MAS-111 / MAS-112 行 stale クリーンアップ | id_mapping_table.csv の網羅クリーンアップ実施。引き継ぎ書 (2026-W18.md) §8 の課題「stale な F-XX → MAS-XXX (Done で実 spec が別) マッピングの網羅的見直し」を消化。検査項目 (10 種): (A) status=Done で title が「29. 追加開発案件 (TODO)」/ (B) status=Done で source_file が TODO_future.md のみ / (C) new_id 重複 / (D) old_id / new_id 空欄不正 / (E) status=Done で実 spec が dev/dev_mas-XXX 命名規則と不一致 / (F) CSV row 指定の spec ファイル不存在 / (G) spec frontmatter id と CSV new_id 不一致 / (H) frontmatter status 値と CSV status 値の不整合 / (I) needs_review=true / (J) status_source 値の異常分布。検出結果: (A)(B) 各 2 件 = MAS-111 / MAS-112・(C)(D)(E)(F)(G)(I) 全 0 件 (整合性 OK)・(H) 5 件 = vocabulary 差異 (spec=Implemented/Draft vs csv=Done/Open) で意味的には一致のため修正不要 (CSV は粗い vocabulary・spec が詳細 vocabulary で SSoT)・(J) 11 種 status_source 値の分布は妥当。修正対象 = 2 件: (1) MAS-111 = 科目マスタに「説明」列を追加 (DDL): source_file TODO_future.md → data_maintenance.md・title 「29. 追加開発案件 (TODO)」→ 「MAS-111: 科目マスタに「説明」列を追加 (DDL・data_maintenance D-04 で実装完了 2026-04-14)」・aliases に D-04 追加・status_source todo_future_table → data_maintenance・layer 空 → 💾 Data。(2) MAS-112 = 新規科目3件のマスタ登録: source_file TODO_future.md → data_maintenance.md・title 更新 (194 開業費 / 301 資本準備金 / 218 役員借入金・D-01〜D-03 完了)・aliases に D-01/D-02/D-03 追加・status_source data_maintenance・layer 💾 Data。両件とも実際の作業先は data_maintenance.md の D-XX エントリで 2026-04-14 完了済だが、CSV の source_file が TODO_future.md のままで「実装完了案件なのに TODO 起源を指す」状態だった (todo_master_tables.md の MAS-111/112 行は完了マーク + D-XX へのリンクが既にあったため、CSV のみが追従漏れ)。クリーンアップ後の再検査: 全 354 行で stale 0 件・重複 0 件・整合性 OK。今後の運用: D-XX 案件 (data_maintenance.md) として完了させた MAS-XXX 行は、source_file を data_maintenance.md に更新する運用ルールを徹底 (本日 D-13 / D-14 起票時から適用済)。docs-only PR で prod 自動デプロイへの影響なし。 |
| 2026-05-01 | TODO_future.md (未採番) → MAS-340〜MAS-354 採番 + MAS-XXX prefix 追記 / id_mapping_table.csv 15 行追加 | 未採番候補 16 件 (実質ユニーク 15 件) を MAS-340〜MAS-354 として一括採番。引き継ぎ書 (2026-W18.md) で課題提起されていた「TODO_future.md 将来候補の MAS-XXX 採番」を実施。3 グループ構成: (A) F-57 / F-67 シート機能拡張 4 件 (PR #454 後) = MAS-340 シナリオ間 diff 表示 / MAS-341 シナリオ JSON エクスポート/インポート / MAS-342 シナリオのバージョニング (MAS-002 期末スナップショットとラップ可能性) / MAS-343 F-57 プリセット variables 系のみ復元オプション。(B) MAS-071 v1.0 後発展 6 件 (PR #457 後) = MAS-344 アプローチ E 退職金考慮型 / MAS-345 配偶者役員化対応 v2 (MAS-066 とラップ可能性) / MAS-346 5 軸モデル拡張 / MAS-347 役員社宅併用実質可処分 (MAS-057 Step 6.5 とラップ可能性) / MAS-348 多通貨対応 / MAS-349 税務調査防衛資料自動生成 (MAS-144 規程ジェネレーターとラップ可能性)。(C) MAS-057 Step 7 + MAS-071 v1.1 後発展 6 件 (PR #459 後) = MAS-350 73_bs_plan から共済積立金・配当決議取得 / MAS-351 64_pl_ytd_plan からの個別費目取得 / MAS-352 CF 内訳 Y0 取得 (MAS-350-352 全て MAS-177 とラップ可能性) / MAS-344 アプローチ E (グループ B と重複・MAS-071 v1.1 後続として再掲) / MAS-353 アプローチ別 5 年累積純資産推移グラフ / MAS-354 マルチイヤー cockpit シナリオ ID 統合 (MAS-067 既存実装とラップ可能性)。重複処理: グループ B/C で「アプローチ E 退職金考慮型」が重複していたためMAS-344 として 1 ID に統合・実質ユニーク 15 件 (MAS-340〜MAS-354)。全件「実装未定」ステータスで id_mapping_table 登録・将来「実装する 1 つ」だけ正式仕様書化する運用。ラップ可能性: 既存案件 (MAS-002 / MAS-066 / MAS-057 Step 6.5 / MAS-144 / MAS-177 / MAS-067) との機能重複の可能性を各エントリに明記・実装着手判断時に統合 vs 独立実装を再判断。採番後の運用: TODO_future.md の (未採番) 表記を全て MAS-340〜MAS-343 に置換 (4 件)・> 2026-05-01 追加 発展候補リストの bullet 6 件 + 6 件にも MAS-XXX prefix 追記 (B6 + C6 = 12 件・C4 は B1 と統合のため重複表記)。id_mapping_table 行: old_id 列に意味のあるスラッグ (SCENARIO-DIFF / APPROACH-E-RETIREMENT / SPOUSE-OFFICER 等) を採用・将来検索性向上。docs-only PR で prod 自動デプロイへの影響なし。 |
| 2026-05-01 | ai_agent_tips.md §E.3.4 Gemini 3 Pro Preview 検証結果反映 + ADC vs API キー認証経路区別解説 + curl 例 3 種 (Anthropic Vertex / Gemini Vertex / Gemini Generative Language API) 整理 | 本日 RQ-037 (PR #471) で副次的に検証された Gemini 3 Pro Preview の動作状況を §E.3.4 モデル一覧表に反映。主要更新: (1) モデル一覧表の Gemini 3.x 行を「未検証 → 部分検証済」に更新: Vertex AI 経由は 4 リージョン (us-central1 / global / us-east1 / asia-northeast1) × 7 命名 (gemini-3-pro-preview / gemini-3.0-pro-preview / gemini-3.1-pro-preview / gemini-3-pro-preview-12-2025 / gemini-3-pro-exp / gemini-exp-3-pro / gemini-3.5-pro-preview) の全組み合わせで HTTP 404・Generative Language API (generativelanguage.googleapis.com) + GEMINI_API_KEY 経由は gemini-3-pro-preview で HTTP 200 (約 28KB 応答取得実績)・Deep Think モードは thinkingConfig.thinkingLevel: "high" で動作確認済 / (2) 「認証経路の区別 (ADC vs API キー)」サブセクション新設: 比較表 9 行で OAuth 2.0 動的トークン (Vertex AI 用・F-67 Phase D 本番経路) と静的キー (Generative Language API 用・curl 手動相談用途) を明確化 / (3) 接続テストコマンドを 3 種に整理: (a) Anthropic Claude Vertex AI (既存) / (b) Google Gemini Vertex AI (新規追加) / (c) Google Gemini 3 Pro Preview Generative Language API (新規追加) / (4) 本経路の利用方針明示: 本格運用は Vertex AI 公開を待つ・ADR-0008 (本番 AI API を Vertex AI に集約) との整合性のため Generative Language API は curl 手動相談 (RQ-XXX 助言相談等) に限定・GAS 本番コードからは利用しない。実検証経路サマリー表で各 model ID の HTTP 結果を併記し、将来の AI ツール選択判断時の SSoT として整備。重要: GEMINI_API_KEY は .env (.gitignore 済) 保管・流出注意。docs-only PR で prod 自動デプロイへの影響なし。 |
| 2026-05-01 | data_maintenance.md D-14 追加 | D-14 役員個人所有資産 → 法人取得 (役員借入金経由) 標準パターンをデータ整備ガイドとして登録。契機: 創業前に発起人個人で購入した車両・PC・冷蔵庫等の資産を会社設立後に法人へ移管する手順の標準化。会計判断: 現物出資 (会社法 28 条 1 号) / 財産引受 (会社法 28 条 2 号) は検査役調査の手間があるため Solo CEO では非推奨 → 設立後の役員 → 法人売買 (案 C) が最も実用的。仕訳: (借) [対象資産科目: 164 車両運搬具 / 工具器具備品] / (貸) 役員借入金 (218・D-03 既登録) で B/S 計上 + 法定耐用年数で減価償却。手順 7 ステップ: (1) 時価評価 + 証跡保管 (2) 取締役会承認 (Solo CEO 1 名なら株主総会承認で代替) + 議事録 (3) 売買契約書作成 (4) bizlp INV 起票 (申請種別 APL_AP・取引先 役員個人・決済手段 資産計上) (5) 仕訳実行 (6) 後日返済 (役員借入金 → 普通預金) (7) 減価償却 (中古資産は経過年数短縮計算)。証憑保管: 時価評価根拠 + 売買契約書 + 議事録の 3 点セット。個人側課税: 譲渡所得 (買取価格 ≦ 個人取得価額なら譲渡損で課税なし)。ステータス: ガイド (継続適用) — 実取引が発生するたびに本パターンを参照。RQ-038 候補: 役員借入金の認定利息ガイドライン (無利息でも一定範囲は OK だが長期高額の場合は税務リスク・将来 Gemini に相談する余地)。docs-only PR で prod 自動デプロイへの影響なし。 |
| 2026-05-01 | data_maintenance.md D-13 追加 / RQ-037_incorporation_costs_treatment_result.md クロスリンク追記 | D-13 新規科目「615 創立費」追加案件をデータ整備として登録。RQ-037 (Gemini 3 Pro Preview Deep Think 助言相談・PR #471) の bizlp 実装タスク。11_mst_account に主科目コード=615・諸表区分=PL・大分類=費用・表示区分=その他営業外費用・表示科目=創立費・正式科目名=創立費・科目名=創立費・固変区分=対象外・デフォルト税率=対象外を追加。D-01 開業費 (194 BS 繰延資産) とは別物: 本件は設立年度大幅黒字想定のためパターン1 (支出時一括費用計上) を採用・繰延資産化を経ない直接 PL 計上。実務対応報告第19号で「支出時全額費用処理」が本則・中小企業会計指針 §56 もこれに準拠。税務扱い: 法基通 8-1-2 で「損金経理 = 当期全額償却」扱い・別表四調整不要・別表十六(六) 添付省略が実務一般。MAS-024 BEP・MAS-058 健全性診断には影響しない (営業利益ベース)・MAS-067 マルチイヤーで Y0 のみ凹む経常利益として認識。コード 615 は既存「614 雑損失」の次・「その他営業外費用」表示区分で並列配置 (財務費用 = 610 支払利息と区別)。docs-only PR で prod 自動デプロイへの影響なし。 |
| 2026-05-01 | dev_mas-046_investment_catalog_master.md v0.1 新設 (786 行) / docs/_config.json E.5.50 ナビ追加 / id_mapping_table.csv MAS-046 行を dev_spec に更新 (旧 todo_future_table) | MAS-046 投資カタログマスタ (Investment Catalog Master) 仕様書 v0.1 起票完了。契機: TODO_future.md §1 P2.5・💾 Data カテゴリの FP&A マスタ系として MAS-013 (投資回収シミュレーション・既存) + MAS-042 (投資ハードルレートマスタ・InProgress) の補完基盤・MAS-050 (投資回収ベンチマーク・後続案件) の前提案件として位置づけ。目的: 個別投資シミュレーション (MAS-013) や判定基準 (MAS-042) を越えて、投資案件のメタデータ統合管理マスタ層を提供。複数投資案件の Go/No-Go 一覧管理・業種別投資ベンチマーク比較・投資カテゴリ別の傾向分析・MAS-067 マルチイヤー計画統合を可能にする。仕様書本体 786 行・14 セクション全網羅: (a) 修正方針 = 新規シート 30_mst_investment_catalog (DDL 管理・投資カタログID + 案件名 + 投資カテゴリ + 業種 + 投資規模 + 想定金額 + 想定 Payback/ROI + ステータス + Go/No-Go 判定 + 関連 ORD/INV ID + 期間 + 実績 Payback/ROI + 備考 + 監査列) / (b) InvestmentCatalogRepository (200_data/205_investment_catalog_repository.js 新設) で findAll / findByStatus / findByCategory / save / linkActuals API / (c) cockpit パネル webapp_client/src/cockpit/InvestmentCatalogPanel.tsx 新設 / (d) メニュー「💼 投資管理 → 投資カタログ表示」追加 / (e) マスタシード migration で過去 67_report_investment_analysis から自動抽出 + bizlp 現在検討中 3 案件 (Vertex AI 拡張 / Jr 採用 / 機材更新) シード / (f) 注意事項 12 件 / エッジケース 14 件 / 実データ検証 5 シナリオ。Q1-Q5 推奨判断: (Q1) 関連 ORD/INV の 1:N 関係 = カンマ区切り (1 投資あたり関連 ORD/INV は通常 1-3 件で正規化メリット小・既存 PartnerRepository パターン踏襲) / (Q2) MAS-013 との同期 = 本マスタ SSoT (MAS-013 は計算機・本マスタはメタデータ管理の主体) / (Q3) UI 配置 = cockpit パネル (MAS-057 cockpit が経営判断のメインビュー・投資判断は中核) / (Q4) 過去案件遡及登録 = migration script で自動抽出 (過去 12 ヶ月分のシミュレーション結果を初期投入) / (Q5) ハードルレート変更時 = バッチ再判定 API + 個別編集時 両方提供。Step 1-5 実装ロードマップ: DDL + Repository (Sonnet) → マスタシード migration (Sonnet) → cockpit パネル + メニュー (Sonnet) → MAS-013/042 連携 (Opus・Go/No-Go 判定ロジック設計) → 完了案件実績反映 + 監査ログ (Haiku)。前提案件: MAS-013 (投資回収シミュレーション・既存・連携先) / MAS-042 (投資ハードルレートマスタ・InProgress・自動 Go/No-Go 判定) / MAS-055 (SaaS カタログマスタ・同パターン参考)。後続案件: MAS-050 (投資回収ベンチマーク・本マスタが前提) / MAS-052 (軽量版 Stage-Gate) / MAS-067 (マルチイヤー計画・投資案件引き当て・将来 v2)。FP&A データ層基盤の補完強化で、MAS-013 + MAS-042 + MAS-050 のトリオ機能群が完結する。MAS-055 SaaS カタログマスタの同パターン実装で実装コスト削減。docs-only PR で prod 自動デプロイへの影響なし。 |
| 2026-05-01 | dev_mas-002_period_end_snapshot.md v0.1 新設 (704 行) / docs/_config.json E.4.14 ナビ追加 / id_mapping_table.csv MAS-002 行を dev_spec に更新 (旧 todo_future_table) | MAS-002 期末スナップショット保存 + バージョン管理 (Period-End Snapshot + Version Management) 仕様書 v0.1 起票完了。契機: バージョン管理進捗 35% (TODO_future.md 346 行目) の残課題「期末スナップショット保存・バージョン間比較ビュー」を仕様化。bizlp の財務諸表 (91_fs_bs / 92_fs_pl / 81_cf_actual) は datamart 再構築のたびに INV データから動的再生成され、過去の確定値が「上書き」されて消える問題。期末スナップショット (BSE: B/S Ending) を確定値として永続化する仕組みを設計。目的: 税理士向け過去 3 期分財務諸表エクスポート / 銀行融資審査での確定スナップショット要求 / MAS-067 マルチイヤー計画 (Phase E v3 PR #459) の各年度期首 BS 安定化 / MAS-251-253 第三者監査・データ主権の証跡。仕様書本体 704 行・14 セクション全網羅: (a) 修正方針 = 新規シート 99_snapshot_periods (メタデータ) + 99_snapshot_data (大規模データ用) の 2 シート設計 / (b) SnapshotRepository (200_data/204_snapshot_repository.js 新設) で savePeriodEnd / findPeriodEnd / listSnapshots / deleteSnapshot / compareSnapshots API 提供 / (c) SnapshotEngine (400_domain/470_snapshot_engine.js 新設) で executePeriodEnd / restoreFromSnapshot / diffSnapshots ロジック / (d) cockpit パネル webapp_client/src/cockpit/SnapshotPanel.tsx 新設 / (e) メニュー「📸 スナップショット → 期末確定実行」追加 / (f) 注意事項 12 件 / エッジケース 12 件 / 実データ検証 5 シナリオ。Q1-Q5 推奨判断: (Q1) UI 配置 = cockpit パネル (経営判断後の確定アクションとして自然) / (Q2) payloadJSON 格納 = ハイブリッド (メタは periods・主要 5 タブ全行は data に正規化・GAS の 50MB 上限回避) / (Q3) 冪等性 = 並列保存 (検討中/確定/監査用の複数バージョン保持) / (Q4) 復元動作 = 参照モード (91_fs_bs を上書きせず別ダイアログ表示・元データ破壊リスクなし) / (Q5) 改竄不可性 = SHA-256 ハッシュ記録 (MAS-251 連携を見据えて当初実装)。Step 1-5 実装ロードマップ: DDL + Repository (Sonnet) → SnapshotEngine (Opus・期末確定+復元+差分比較ロジック) → cockpit パネル + メニュー (Sonnet) → バージョン間比較ビュー (Sonnet) → ハッシュ + 監査ログ (Haiku)。前提案件: MAS-057 (PR #400/#454 シナリオ保存基盤) / MAS-077 (settlement_date 同期) / MAS-085 (整合性チェック)。後続案件・連携: MAS-021 (PDF/Excel エクスポート・将来 v2) / MAS-067 (期首 BS 安定化・SnapshotEngine.findPeriodEnd 値参照) / MAS-177 (多年度データ基盤・並行起票・本案件は MAS-177 の利用例) / MAS-251-253 (第三者監査・改竄不可性ハッシュで証跡として活用)。MAS-057 既存 localStorage 系との役割明確化: 38_f57_assumptions / 39_f57_scenarios は前提条件・シナリオ保存・本案件は確定値保存で完全に役割区別。バージョン管理 35% → 残機能の主要部 (期末スナップショット保存) を仕様化。docs-only PR で prod 自動デプロイへの影響なし。 |
| 2026-05-01 | dev_mas-177_multiyear_data_foundation.md v0.1 新設 (661 行) / docs/_config.json E.1.26 ナビ追加 / id_mapping_table.csv MAS-177 行を dev_spec に更新 (旧 todo_future_table) | MAS-177 多年度データ基盤 (Multiyear Data Foundation) 仕様書 v0.1 起票完了。契機: TODO_future.md §1 P1 ★★ Infra カテゴリで唯一の P1/P1.5 未起票案件。引き継ぎ書 (2026-W18.md) で「アーキテクチャ判断議論待ち」と最高優先指摘されていたものを v0.1 として起票。目的: 単年度処理の bizlp を多年度連結処理可能に拡張する基盤。MAS-067 マルチイヤー計画 (PR #418-#454) は計画値ベースのみで実績の多年度連結機能なし・MAS-003 KPI で 3 年 CAGR / 5 年累計売上等が表示できない・税務調査・銀行融資審査での「過去 3 期分財務諸表」要請に即応できない問題を構造的に解消。仕様書本体 661 行・14 セクション全網羅: (a) 案件位置づけ + User Story 4 件 / (b) アーキテクチャ案 A/B/C 提示 (案 A: タブ年度別シャーディング = MAS-133 延長・案 B: 単一統合タブ + 期間列追加・案 C: ハイブリッド Aggregator Layer) / (c) 注意事項 14 件 (タブ上限 + MAS-133 整合 + 冪等性 + パフォーマンス + 互換性 + 会計年度境界 + マルチテナント等) / (d) エッジケース 12 件 / (e) 実データ検証 5 シナリオ / (f) Q1-Q5 推奨判断 / (g) Phase A-D 段階リリース計画。Q1-Q5 推奨判断: (Q1) アーキテクチャ = 案 C ハイブリッド (既存破壊最小 + 物理移行容易 + 論理抽象化で再利用可能・段階的移行可能) / (Q2) MAS-133 既存アーカイブ機構 = 吸収・廃止 (重複機能整理が運用シンプル化) / (Q3) マルチテナント = 単一組織前提 (将来別案件で拡張) / (Q4) Y0 重複時の優先順位 = 実績優先 (MAS-067 v1.9 Phase E v3 の Y0 着地見込み getSoloCEOY0Forecast パターン踏襲) / (Q5) リリース順序 = Phase A (Aggregator + 1 タブ検証) → Phase B (主要 5 タブ展開) → Phase C (既存ロジック切替) → Phase D (各連携案件側で実装)。新規ファイル予定: 200_data/203_multiyear_repository.js (~200 行・名前空間 MultiyearRepository・公開 API findAll({periods, sheetKey}) / findCurrent({sheetKey}) / 後方互換) / 600_report/610_multiyear_aggregator.js / 800_ops/8XX_migration_multiyear_data_foundation.js (実装着手時に番号確定・822 まで使用済 + MAS-336/337/338 予約 = 824 以降)。ID 採番衝突回避 (failure_patterns #31): 案件 ID は既存 MAS-177 を使用 (id_mapping_table の N-1 行を dev_spec に更新)。前提案件: MAS-133 (年度跨ぎアーカイブ機構・既存) / MAS-067 (マルチイヤー計画・連携先) / MAS-057 (cockpit・表示先)。後続案件: MAS-002 (期末スナップショット・本基盤を利用・並行起票) / MAS-003 (KPI 多年化) / MAS-067 多年実績連結 (Y-1〜Y-3 過去実績ライン追加)。P1 ★★ 唯一の P1/P1.5 未起票案件を起票完了でフェーズ進行。docs-only PR で prod 自動デプロイへの影響なし。 |
| 2026-05-01 | RQ-037_incorporation_costs_treatment_result.md 新設 / docs/_config.json C.1.2.18 ナビ追加 / id_mapping_table.csv RQ-037 (MAS-339) 行追加 | RQ-037 創立費の会計処理 (設立年度大幅黒字・一括費用化) 助言相談記録。相談相手: Google Gemini 3 Pro Preview (gemini-3-pro-preview Generative Language API・Deep Think モード thinkingLevel: "high")。相談内容: bizlp 法人 (Solo CEO 一人法人・株式会社) の設立年度 (Y0) で発生する創立費 (定款認証手数料 + 登録免許税 + 司法書士報酬 + 設立準備期間家賃 等・合計数十万〜100 万円規模) の会計処理として、パターン 1 (支出時一括費用計上・B/S 経由しない・営業外費用「創立費」直接計上) が会計上・税務上問題ないかの 8 論点 (会計妥当性 / 税務妥当性 / 科目位置 / B/S 非経由の論理 / 注記必要性 / 税務調査リスク / Y1 以降比較可能性 / 総合評価) を Deep Think で深く分析依頼。Gemini 結論: 「強く推奨できる」。会計上は実務対応報告第 19 号で「支出時全額費用処理」が本則 (繰延資産計上は容認規定)・中小企業会計指針 §56 もこれに準拠。税務上は法施令 14 条 1 項 1 号 (任意償却) + 法基通 8-1-2 で「損金経理 = 当期全額償却」扱いで別表四調整不要・別表十六(六) 添付省略が実務一般。科目位置は実務対応報告第 19 号で「営業外費用」に「創立費」が規定 (販管費 / 特別損失は不適切)。B/S 非経由は重要性原則を待たず**「資産の定義を満たさない」ため理論上の本則**。決算書注記は 100 万円規模なら省略可。税務否認リスクは制度上皆無 (節税目的疑義は生じない・正規処理)。営業利益には影響なしのため Y1 以降との比較可能性維持。bizlp 実装反映: (1) 12_mst_account に「創立費」科目追加 (営業外費用カテゴリ) / (2) INV 起票で APL_EX 申請種別 + 決済手段「口座振込」/ (3) 33_wrk_bank で実払い消込 → 71_bs 現預金 −・92_fs_pl 営業外費用 + / (4) MAS-024 BEP・MAS-058 健全性診断には影響なし (営業利益ベース) / (5) MAS-067 マルチイヤーで Y0 のみ凹む経常利益として認識 / (6) 証憑保管要件: 司法書士領収書 + 登録免許税納付書 + 設立前家賃の事業供用性記録 (役員私的支出混入防止)。副次的成果: Gemini 3 Pro Preview が Vertex AI 経由では未公開 (gemini-3-pro-preview 等 4 リージョン × 5 命名で全 404) だが、Generative Language API (generativelanguage.googleapis.com) 経由で gemini-3-pro-preview モデル ID で稼働確認済。thinkingConfig.thinkingLevel: "high" で Deep Think モード有効・約 28KB 応答取得。docs/_internal/ai_agent_tips.md §E.3.4 「Gemini 3.x Pro Preview = 未検証」状態を更新する余地。注意: AI 助言は参考情報のみ・最終判断は顧問税理士確認を前提。Gemini は会計士免許保有 AI ではない。将来仕様化候補 (本 RQ-037 単独では起票せず・実装時に MAS-XXX 採番): (a) 設立年度 Y0 専用ハンドリング (MAS-057 / MAS-067 で Y0 一時費用ラベリング) / (b) 創立費科目マスタシード migration / (c) 仕訳パターンカタログに「設立費用」パターン追記 / (d) failure_patterns 候補「設立年度の創立費を経常費用と勘違いして CVP 分析に含めるとトレンド分析が歪む」。docs-only PR で prod 自動デプロイへの影響なし。 |
| 2026-05-01 | dev_mas-338_settlement_diff_handling.md v0.1 新設 (819 行) / docs/_config.json E.4.13 ナビ追加 / id_mapping_table.csv MAS-338 行追加 / BUG_tracking.md MAS-303 追加 / failure_patterns.md #36 新設 / dev_mas-077_settlement_date_sync.md クロスリンク追記 / dev_mas-162_bank_combo_match.md クロスリンク追記 | MAS-338 STL 消込時 差額自動処理機能 (Settlement Diff Handling) 仕様書 v0.1 起票完了。契機: MAS-336 (je_inv_phase1) の Q4 で「別仕様化」と決定された Pass 2.5 ソフト合算消込時の差額未記録問題を本仕様で扱う。71_bs 2026-04 現預金乖離 98,837 円のうち 1,000 円分が本バグ起因 (武生年金事務所: 銀行 149,950 円 vs STL 合計 150,950 円・口座振替割引と推定)。根本原因: applyBankSettlement (500_import/502_bank_importer.js line 393-402) は stlIds.length === 1 の単一 STL マッチ時のみ差額を記録するため、Pass 2.5 ソフト合算 (PR #465 で導入・合算 STL マッチ ±max(1000, 1%)) のヒット時 (stlIds.length > 1) は差額が会計上ロスト。仕様書本体 819 行・14 セクション全網羅: (a) 修正方針 = applyBankSettlement の差額記録ロジックを stlIds.length === 1 限定 → >= 1 に拡張・ヘルパー 2 関数追加 (chooseDiffTargetStl_ 差額計上先選択 + inferDiffAccount_ 自動推定科目) / (b) 自動推定ルール = 差額符号 × 額 (1〜500 円 / 500〜10,000 円 / 10,000 円超) + 摘要キーワード (「振込手数料」「フリコミテスウリヨウ」→ 支払手数料 / 「ワリビキ」「割引」→ 雑収入 / 「為替差」→ 為替差損益) / (c) UI 強化 = 36_wrk_bank_import の差額行を黄色背景 + プルダウン (支払手数料/雑収入/雑損失/為替差損益/その他) + ホバーツールチップ / (d) 注意事項 12 件 / エッジケース 14 件 / 実データ検証 4 シナリオ / Q1-Q5 推奨判断 / Step A-F 実装ロードマップ。Q1-Q5 推奨判断: (Q1) 合算時差額按分 = 案 B (最大金額 STL に計上) (シンプル + 監査追跡容易・按分は端数累積リスク・末尾は再現性低) / (Q2) 自動推定 = 上記表で v0.1 採用・業種別/取引先別上書きは v1 拡張 / (Q3) 既存データ = migration script で遡及補填 (PR #465 マージ日以降の Pass 2.5 ヒットレコード対象・冪等性ガード `差額(手数料等) === 0 |
| 2026-05-01 | dev_mas-337_loan_screening_score.md v0.1 新設 (728 行) / docs/_config.json E.4.12 ナビ追加 / id_mapping_table.csv MAS-337 行追加 / dev_mas-058_required_revenue_solver.md クロスリンク追記 / dev_mas-071_compensation_strategy_simulator.md クロスリンク追記 | MAS-337 融資審査スコアリング機能 (Loan Screening Score) 仕様書 v0.1 起票完了。契機: MAS-071 アプローチ D「融資対策」の MAS071_TARGET_PROFIT (default 600 万円) が 821_migration_mas071_strategy_seed.js の description で「公庫融資審査基準」と注釈されているのみで動的算出ロジックを持たない経験則ベースの定数。借入額 ÷ 当期純利益 ≦ 10 年 (= 債務償還年数 10 年以内) という公庫実務目安に由来するが、ユーザーが目標融資額 / 業種 / 業歴を変えても TargetProfit が連動しない・公庫以外 (信金・地銀・メガバンク) の審査基準に切替できない・DSCR / 自己資本比率 / 自己資金比率の総合判定ができない問題。User Story (Solo-CEO 視点): (1) 「3,000 万円の運転資金を引きたい・今の月商/利益で公庫を通せるか」を 1 画面確認 / (2) 「役員報酬を月 50 → 月 80 に上げると融資審査でどう影響するか」試算 / (3) マル経 (上限 2,000 万) と 新創業 (上限 3,000 万) 並行検討。仕様書本体 728 行・14 セクション全網羅: (a) 公庫実務知識セクション = JFC 概要・主要商品 4 件 (新創業/中小企業経営力強化/マル経/女性・若者・シニア)・評価軸マッピング表 (定量 6 軸 + 定性 5 軸 × 法的根拠/実務目安/データソース) / (b) 機能仕様 = 入力 11 項目 + 算出ロジック (3 ロジック max + 重み w1-w6 の総合スコア) + 業種ベンチマーク 5 業種 (IT/コンサル/製造/小売/飲食) + 出力 6 項目 (推奨 TargetProfit / 推奨自己資金 / 必要月商レンジ / 総合スコア A-E ランク / 不足軸警告 / 公庫面談予習リスト) / (c) cockpit 配置 = MAS-058 健全性診断隣接 + MAS-071 アプローチ D へ TargetProfit 逆流注入 / (d) 注意事項 13 件 (failure_patterns #18-#20 #26 #33 反映) / (e) エッジケース 12 件 / (f) 実データ検証 = bizlp 現状値 (法人利益 380 万・自己資本比率 18%) で公庫 3,000 万申請ケース → スコア B 判定。Q1-Q5 推奨判断: (Q1) スコアリング = 案 C ハイブリッド (v0.1 ルールベース・v2 で AI 統合 / MAS-067 Phase D パターン) / (Q2) 適用機関 = v0.1 公庫のみ・MAS_LOAN_PRODUCTS に provider 列で v2 拡張余地 / (Q3) 600 万 default = historical_default 保存・UI 上書き > 動的算出 > historical_default の優先順位・MAS071_TARGET_PROFIT 自動上書き禁止 / (Q4) MAS-067 連動 = v0.1 当期スナップ・v2 で Phase E 多年化 / (Q5) テスト = F337-01〜F337-15 (901_test_runner.js)。新規マスタ: MAS_LOAN_PRODUCTS (4 商品)・MAS_INDUSTRY_BENCHMARKS (5 業種)・03_sys_params MAS337_* 5 キー。新規ファイル: 400_domain/4XX_loan_screening_engine.js (454-466 帯想定・main 側で衝突確認) / webapp_client/src/cockpit/LoanScreeningPanel.tsx / 800_ops/8XX_migration_loan_screening_seed.js (822 まで使用済 + MAS-338 が 823 予約 → 824 以降を採番)。ID 採番衝突回避 (failure_patterns #31): MAS-071 cluster (065-080) は全使用済のため次の空き MAS-337 を採用・本文で MAS-058/071/067 連携を明示。実装 Step 1-7: マスタシード (Sonnet) → ドメインエンジン (Opus・3 ロジック + 重み + 業種係数) → spa_bridge (Sonnet) → cockpit パネル (Sonnet) → MAS-071 連動配線 (Sonnet) → 単体 + E2E テスト (Haiku) → dev → PR → main → prod。MAS-336 / MAS-338 と並行起票 (98,837 円乖離調査の派生 = MAS-336 + MAS-338・本案件は MAS-071 補強の独立スレッド)。docs-only PR で prod 自動デプロイへの影響なし。 |
| 2026-05-01 | dev_mas-336_je_inv_phase1_recognition.md v0.1 新設 / docs/_config.json E.4.11 ナビ追加 | MAS-336 仕訳振替INV PHASE 1 同月計上 (案2・会計本位) 仕様書 v0.1 起票完了。契機: main 側で 71_bs (実績B/S) 2026-04 の現預金が銀行残高 (1,680,108 円) より 98,837 円少ない 事象を調査し、3 件の根本原因を特定 — (1) 95,795 円: 3月役員報酬 仕訳振替 INV (源泉預り 21,220 + 社保預り 74,575) が 未処理 で invOrdMap から除外され PHASE 2 仕訳振替 pickup が空振り / (2) 2,042 円: 3月角会計事務所 月額給与 仕訳振替 INV (源泉消費税益税 2,000 + 源泉所得税預り 42) も同様 / (3) 1,000 円: 武生年金事務所 STL 合算 (74,575+76,375=150,950) と銀行引落額 149,950 の差を 差額(手数料等) 列に未記録 (Pass 2.5 ソフト合算消込時の落ち穂・別仕様で起票推奨)。構造的脆弱性: 現行設計は仕訳振替 INV を「STL 消込時の PHASE 2 で初めて拾う」二段階処理で、未処理 ステータス放置で invOrdMap 除外 → pickup 空振り → 中小企業会計指針 §第30項 (経過勘定) が要求する「給与計上日 (targetMonthEnd) で預り金計上」が実現されない。ユーザー選択 = 案 2 (会計本位): 仕訳振替 INV を給与 INV と同月発生にし PHASE 1 で B/S 即時計上。5 領域変更: (a) 400_domain/401_rpa_hc.js の Row 1b/2b/2a/3a/4a を salaryPayDate → targetMonthEnd (b) 600_report/601_datamart_ingest.js PHASE 1 line 71-73 + 75-80 で仕訳振替も取込許可 (c) PHASE 2 line 212-244 仕訳振替 pickup ロジック削除 (二重計上回避) (d) dmIngestPlanData_ line 323-325 の SKIP も削除 (e) 800_ops/822_migration_je_inv_pym.js 新設で過去仕訳振替 INV の発生日を targetMonthEnd に書換 + 承認済化。ファイル番号衝突回避: 依頼の 810_* は 810_migration_partner_payment_terms.js で既使用 → 822 に振直し (821 まで使用済確認・failure_patterns #31)。Q1-Q4 推奨判断: (Q1) RPA 起票時から 承認済 (Action A 不要・元バグ再発リスク回避) / (Q2) 過去全月遡及 migration (2025-11〜現在・冪等性ガードあり) / (Q3) PHASE 2 pickup 完全削除 (フラグ運用は二重計上温床) / (Q4) Pass 2.5 ソフト合算差額自動記録は別仕様で切り出し。重要運用注意: Step A (migration) と Step B (コード変更) を同 PR にしない — prod では migration 未実行のまま新コードが動くと過去仕訳振替 INV が salaryPayDate のまま PHASE 1 取込されて二重計上リスク。Step A → prod migration 実行確認 → Step B PR の順守必須。仕様書本体 718 行: 14 セクション全網羅 / 注意事項 15 件 / エッジケース 12 件 / 人間が検討すべき事項 Q1-Q8 / Step A-F リリース順序明示 / 推奨実行モデル Step ごと割当 (migration: Sonnet / ingest: Opus / test: Haiku)。前提依存: failure_patterns #34 (計画 B/S 構造的乖離・PR #460) と同根の問題を実績側 + 計画側両方で構造的に解消する案件。docs-only PR で prod 自動デプロイへの影響なし。 |
| 2026-05-01 | BUG_tracking.md MAS-301/302 追加 / failure_patterns.md #35 新設 / dev_mas-162_bank_combo_match.md Pass 2.5 追記 | 🐛 PR #465 (commit cc78e99) 反映: 銀行 CSV マッチングに Pass 2.5 ソフト合算追加 (口座振替割引等の少額差を救済) + applyBankSettlement のフィルター silent-fail 修正。MAS-301 Pass 2.5 ソフト合算: 既存 Pass 2 (合算 ±1 円厳密) を findComboGroup_(candidates, txAmt, txType, txYm, tolerance) にリファクタし許容誤差を引数化 (commit fb7b68c)。Pass 2 (±1 円) で不成立時に Pass 2.5 (±max(1000, txAmt × 1%)) で再試行・ヒット時のラベル 合算候補(差額+1,000円) 等で差額明示・背景色は黄色 #FFF2CC (Pass 2 厳密合算 = 緑 #D5E8D4 と視覚区別) で人間確認を要求 (確認FLG=false)。契機: 社会保険料 (厚年金 + 健保) の口座振替で銀行引落額 149,950 円 と STL 合計 150,950 円 (74,575 + 76,375) が ちょうど 1,000 円 ずれて合算候補に提案されない事象。口座振替割引と推測。MAS-302 applyBankSettlement silent-fail: 33_wrk_bank に「決済ステータス = 未処理」フィルターを設定した状態で消込実行すると、setValue('消込済') で対象行が即時フィルター非表示化 → 後続の 決済日_実績 / 消込手段 / 取込ハッシュ setValue が silent-fail する Google Sheets API の挙動を修正 (commit c069b63)。修正方針: セル別 setValue 4 回 → 1 行 setValues 1 回に集約・API call 間にフィルター再評価が挟まる隙を排除する原子書込化。現象: 消込実行後に 33タブを見ても 決済日_実績 列が空のまま → Action B (自動仕訳生成) が起動条件 (33タブの「消込済 かつ JNL_ID あり」判定) を満たさず止まる二次被害あり。failure_patterns #35 新設: 「GAS API: フィルター適用中の連続 setValue が silent-fail」パターン (兆候: スクリプト実行は成功するが特定列だけ値が入らない / 根本原因: 1 つ目の setValue でフィルター対象列が変わると Sheets が即フィルター再評価して行が hide され後続の setValue が無効化される / 解決: 同一行への複数 cell 更新は setValues([rowVals]) で 1 つの API call にまとめて原子化 / 派生注意: setBackground 等は filter 状態に左右されないので分離 OK)。spec 整合: dev_mas-162_bank_combo_match.md の Pass 一覧表に Pass 2.5 ソフト合算行を追記 (Pass 2 の直後・SUGGEST_COMBO_SOFT・信頼度: 中・人間確認必須)。dev_mas-145_bank_csv_import.md は Pass 1/Pass 2 の旧 2 段階構造のまま (実装は Pass 1 / Pass 2 / Pass 2.5 / Pass 3 の 4 段階に進化・将来 spec 更新候補)。docs-only PR で prod 自動デプロイへの影響なし。 |
| 2026-05-01 | BUG_tracking.md 3 件追加 / failure_patterns.md #34 新設 / spec_plan_bs_fix.md 期ずれロジック追記 / spec_datamart_ingest.md 同 | 🐛 PR #460 (commit 4a213e4) 反映: Action A 二重バグ修正 + 73_bs_plan 期ずれ計算ロジック (案 A 改 2) 確定。Bug-1: processInvoiceApprovals で acc is not defined エラー → 「財務諸表マート再構築」実行不可 → auditLog 引数の未定義変数 acc を row[invIdx['科目名']] に置換 (commit 7104460)。Bug-2: Action A & cc_importer で findTrueLastRow_ is not defined → 「仕訳A (INV承認 → JNL生成)」実行不可 → findLastRow_ (200_data/202_repository.js に存在する正規関数名) にリネーム (commit fdc0b3a)。Bug-3: 73_bs_plan 現預金が実績 71_bs と乖離 (2026-02 で約 -605K) → 計画 B/S が「全 INV 即決済前提」のため未払系負債が積み上がらず現預金がマイナス側に振れる現象 → 3 段階のロジック改善 (commits d748ed5 → 3aaa04e → c21c3dc → 1f04ef5) で案 A 改 2 に確定。最終ロジック (600_report/601_datamart_ingest.js の dmIngestPlanData_): INV の 決済日_実績 列を期ずれ解消月の判定起点とし、(a) 決済日_実績 記入済 → 実績 PHASE 2 と同月で期ずれ解消 (sStr = settleActStr) / (b) 決済日_実績 空 + 決済日_計画 ≤ 当月 → 未消込のまま残す (sStr = '9999-12') / (c) それ以外 → 決済日_計画 をそのまま使用。残乖離 (±30K): 地代家賃の前払 INV 表示差 (71 では「未払費用 −30K」・73 計画では「前払費用 +30K」となるが cash plug 効果は同値で許容)。failure_patterns #34 新設: 「計画 B/S が実績と大きく乖離 (cash plug 過小)」パターン (兆候: 計画側現預金が実績より大幅マイナス + 未払系負債異常少 / 根本原因: 「計画 = 全取引完了前提」の単純化で期ずれが計画 B/S に蓄積されない / 解決: 決済日_実績 列を期ずれ解消月の判定起点に・実績 PHASE 2 と同月で解消・空の場合は未来月もしくは 9999-12)。Action A 関連修正の経緯: PR #460 はバグ修正のみで機能追加なし。失敗パターン #28 (メニュー経由関数命名 _ ルール) と #18-#20 (命名造語) の併発例として spec 内で参照可能。docs-only PR で prod 自動デプロイへの影響なし。 |
| 2026-05-01 | dev_mas-057_solo_ceo_cockpit.md v2.4 (Step 7 cockpit 拡張パネル群 — PR #459 反映) / dev_mas-071_compensation_strategy_simulator.md v1.1 (UX 細部改善 + シナリオ payload 拡張 + AVG 表示 — PR #459 反映) | F-57 Solo CEO Cockpit を「節税最適化ツール → 多年経営ダッシュボード」に進化させる Step 7 拡張パネル群を main 側 PR #459 (commit 8f45430) で実装完了 ・spec を v2.4 + v1.1 として整合追従 (MAS-057: 936 → 1043 行 +107 / MAS-071: 926 → 1049 行 +123)。Step 7 構成 (4 サブパネル): (1) 7-A ApproachComparisonPanel (webapp_client/src/cockpit/ApproachComparisonPanel.tsx): 4 アプローチ A/B/C/D + AVG の 5 列均等 P/L 並列比較 (table-layout: fixed 各列 16%・既存 computeYearlyBreakdown を 5 回呼出・MAS-071 推奨額を SSoT 参照・rounding 誤差回避のため isFirstYear=false 強制で通年ベース・12 表示行) / (2) 7-B SoloFinancialStatementsPanel (webapp_client/src/cockpit/SoloFinancialStatementsPanel.tsx): Y0 を左端とした 6 年分 P/L · B/S · CF 連結表示 (F-67 simulateMultiyearClient 流用で B/S 引継ぎ共有・F67MultiyearBootstrap を F57 boot から合成) + 各年で A/B/C/D/AVG/現状から役員報酬選択 (6 dropdown) + Y0 事業継続月数入力 (1-12 ヶ月・短縮事業年度対応・default 12・Y0 のみ revenueMonthly/fixedCostMonthly/monthlySalary/dividendAnnual を y0Months/12 で scale) + Y0 当期着地見込みで上書きトグル / (3) 7-C getSoloCEOY0Forecast() 新 GAS API (300_ui/302_spa_bridge.js): 64_pl_ytd_plan の通期列 (column B) から主要 P/L 集約 (売上/売上原価/販管費/営業利益/経常利益/税引前/法人税等/純利益) + 73_bs_plan の最右列 (期末計画) から主要 B/S 集約 (資本金/利益剰余金/現預金/固定資産/借入金/純資産) + 73 未生成時は 71_bs (実績) にフォールバック + failure_patterns #29 対策で _scrubInfinityForJSON_ 経由 + トグル ON 時に planner を horizon=5 で実行・initialBS = forecast.bs で Y1 期首 BS が Y0 forecast 期末 BS と連結 + トグル文言は「64 + 73」 (旧「64 + 71」は誤り・64 が計画なので 73 が正しいペア) / (4) 7-D cockpit-main.tsx 副作用 import 拡張: 旧 442/443/444/445/449/454 → 新規 451_multiyear_planner.js 追加 (SoloFS 多年版再利用・failure_patterns #33 対策)。MAS-071 v1.1 の UX 細部改善 8 項目: (a) アプローチ A ラベル「生活防衛」→「生活重視」/ (b) 投資業務 sublabel に「事業開発」追記 / (c) 月商 → 「100% 稼働時の月額単価」に置換 (派生値で revenueMonthly 連動) / (d) 月商の右隣に「× 12 ヶ月 = 年商」表示 / (e) 業務横帯下に「貢献額合計」+「理論報酬額 (労働強度加味)」表示 / (f) 4 アプローチ計算式は棒グラフ直下 1 つの details で一括展開 (アプローチ別 details 撤廃) / (g) 推奨額決定 UI 撤廃 (Step 7-A ApproachComparisonPanel で代替表示) / (h) 法人税ラベル「法人税 (累進)」→「法人税等 (国税+地方税)」+ 小フォント 累進 注記。MAS-071 シナリオ payload 拡張: v1.0 (ratios 4 軸 / 各 vXxx / lMin / bufferMonths / targetProfit / intensityFactor / monthlyRateAtFull / cogsRate / fixedCostMonthly) に approachByYear[6] (Y0-Y5 各年アプローチ・SoloFS 用) + y0Months (Y0 事業継続月数) を追加・state lift で CockpitApp に保持し CompensationStrategyPanel + SoloFinancialStatementsPanel 両方に props 配布・旧 revenueMonthly → monthlyRateAtFull の migrateLegacyPayload 互換ヘルパ実装。配置順序 (v2.4 最新): GuardrailBanners → MAS-071 戦略シナリオ → Step 7-A 4 アプローチ比較 → Step 7-B 多年 P/L · B/S · CF → 既存 AssumptionsBar/ScenarioBar/CompensationDropdowns → MAS-058 RequiredRevenuePanel。「実装が spec を先行 → spec を整合追従」のパターン累計 13 例目 (MAS-057 v2.4 + MAS-071 v1.1)。docs-only PR で prod 自動デプロイへの影響なし。 |
| 2026-05-01 | dev_mas-071_compensation_strategy_simulator.md v0.1 Draft → v1.0 Implemented (PR #457 反映) / dev_mas-067_multiyear_planning_workspace.md v1.9 (Phase E v3 前回選択自動復元 PR #457 同梱反映) / TODO_future.md MAS-071 ✅完了マーク + 将来候補 6 件追加 | MAS-071 稼働率連動型役員報酬シミュレーターを main 側 PR #457 (commit 16fdffb) で実装完了 ・spec を v0.1 Draft → v1.0 Implemented として整合追従。v0.1 から実装乖離が大きい 8 領域を更新 (spec 781 → 926 行・+145 行・追記中心)。(1) 業務分類 3 軸 → 4 軸拡張: デリバリー (40%) / 営業マーケティング 🆕 (20%) / 投資 (30%・事業開発を追記) / 管理 (10%・プロセス改善を追記)・default 市場年収 1,000/1,000/1,200/800 万。(2) 労働強度係数 intensityFactor 追加 (0.5-2.5・default 1.0 = 160h/月相当)・TC = ((V_d×R_d)+(V_s×R_s)+(V_i×R_i)+(V_m×R_m)) × intensityFactor。(3) 月商 → 100% 稼働時月額単価入力に変更 (月商 = 月額単価 × デリバリー稼働率 × 労働強度の派生値・F-57 cockpit revenueMonthly に setInputs 経由で同期)。(4) Phase 5 シナリオ保存機能新設: 40_mas071_scenarios タブ + MAS071ScenarioRepository + _f57Crud_ ファクトリ経由 4 API (listMAS071Scenarios / saveMAS071Scenario / loadMAS071Scenario / deleteMAS071Scenario) + ID プレフィックス MAS071SC_xxxx + payloadJSON に ratios (4 軸) / 各 vXxx / lMin / bufferMonths / targetProfit / intensityFactor / monthlyRateAtFull / cogsRate / fixedCostMonthly / ハードリロード後の前回選択自動復元 (localStorage の mas071_last_selected_scenario_id_v1)。(5) 稼働率独立入力: v0.1 の「合計 100% 連動調整」を撤回・各 R 値が独立編集可能・合計 ≠ 100% は警告のみ (ユーザー判断尊重 + 編集中値が勝手に動かない)。(6) UX 改善: 専門用語の日本語化 (TC → 理論報酬額・OP_pre → 限界利益・V_d → 直接業務市場年収 等) + 千円カンマ表示 (12,000 千円・内部 12,000,000 円) + 4 アプローチ計算式は棒グラフ直下 1 つの details に一括展開 + cockpit 最上部に配置 (v0.1 の MAS-058 直下から変更・経営判断の起点)。(7) 法人運転バッファ解釈の明確化: 「役員報酬を含まない固定費 × 月数」が現状実装の意図 (= 役員報酬を一時停止しても会社が事業継続できる期間)。役員報酬込みは月数を増やす方がシンプル。(8) sys_params 7 → 8 キー: MAS071_VS_SALES (default 1,000 万) 追加・マイグレーション 800_ops/821_migration_mas071_strategy_seed.js で 8 キー冪等シード。MAS-067 v1.9 同時更新: Phase E v3 として ScenarioPanel に f67_last_selected_scenario_id_v1 localStorage キーでハードリロード後の前回選択自動復元を追加 (PR #457 同梱・MAS-071 ScenarioPanel と同パターン UX 統一)。新規/変更ファイル: 400_domain/454_compensation_strategy_engine.js (4 アプローチ + IIFE + 純粋関数) / webapp_client/src/cockpit/CompensationStrategyPanel.tsx (約 700 行) / 800_ops/821_migration_mas071_strategy_seed.js / 100_config/101_sys_config.js (40_mas071_scenarios + flagTabs + メニュー) / 200_data/202_repository.js (MAS071ScenarioRepository) / 300_ui/302_spa_bridge.js (bootstrap mas071Params + runCompensationStrategySimulation + 4 シナリオ API) / webapp_client/src/multiyear/ScenarioPanel.tsx (前回選択自動復元) / 単体テスト F71-01〜F71-16 (16 件)。TODO_future.md 将来候補 6 件追加: アプローチ E 退職金考慮 / 配偶者役員化 (v2) / 5 軸モデル拡張 / 役員社宅併用実質可処分 / 多通貨対応 / 税務調査防衛資料自動生成 (MAS-144 連携)。「実装が spec を先行 → spec を整合追従」のパターン累計 11-12 例目 (MAS-071 v1.0 = 11 例目 + MAS-067 v1.9 = 12 例目)。docs-only PR で prod 自動デプロイへの影響なし。 |
| 2026-04-30 | dev_mas-072_valuation_scoreboard.md v0.1 新設 / docs/_config.json E.5.49 ナビ追加 / id_mapping_table.csv F-72→MAS-072 行を新 spec に更新 / todo_master_tables.md MAS-072 行新設 / TODO_future.md §1.x P2 + Domain 内訳に MAS-072 追加 | MAS-072 企業価値(時価評価額)スコアボード機能仕様書 v0.1 起草完了 (Method B 第 3 段階)。MAS-057 Solo-CEO Visual Cockpit の役員報酬シミュレータに連動する「企業価値スコアボード」。バイアウト目的でなく**「自社の経営の通信簿 (KPI)」として企業価値をリアルタイムに把握**し向上を数値目標として追える機能。Claude Opus 4.7 サブエージェントが本体起草 (765 行・MAS-066 / MAS-058 / MAS-071 と同等のボリューム感・14 セクション全網羅・エッジケース 14 件・人間検討事項 12 件・注意事項 15 件)。入力 7 種: (a) OP_pre (役員報酬控除前営業利益)、(b) C (実報酬)、(c) TC (理論報酬・MAS-071 から取得)、(d) D&A (減価償却)、(e) NetAssets (帳簿純資産)、(f) OffBalanceAssets (簿外資産・MAS-141 共済解約返戻金)、(g) Multiple (EBITDA 倍率・default 5)。3 評価手法: (1) 経営力スコア (EBITDA マルチプル法・正常化調整済) = max(0, (OP_pre - TC + D&A) × Multiple) + NetAssets + OffBalanceAssets ※ 役員報酬を理論値で正常化するため C を変えても EV は変わらない (ごまかせない指標)、(2) 蓄積スコア (時価純資産法) = NetAssets + OffBalanceAssets ※ C を抑えて内部留保を積むほど確実に上がる、(3) 税務評価スコア (財産評価基本通達 簡易版) = (OP_pre - C) × 0.5 + NetAssets × 0.5 ※ 資産管理会社移転等で使う税務上株価・C を上げると下がる (1/2 と逆動)。ファイル番号衝突回避経緯 (failure_patterns #31): 当初ユーザープロンプトでは 446_valuation_engine.js を提案、main repo 実在確認で 446 が空きと判明したため一旦採用したが、サブエージェント生成後に MAS-059 (Growth Planning Workspace) spec が 446 を decision_tree_orchestrator.js 用に既に予約していたことが発覚。MAS-059/060/061/063/144/062 が 446-453 を連続予約済のため、先行予約優先で MAS-072 を 455_valuation_engine.js に振直し (sed で 18 箇所一括置換 + 注意事項 + 変更履歴に経緯二重記載)。案件 ID は MAS-072 (F-72→MAS-072 mapping は stale だったため正式利用)。UI 配置: MAS-058 健全性診断 → MAS-071 4 アプローチ → MAS-072 企業価値スコアボード の縦並び (cockpit「目標逆算レイヤー」最下部・MAS-057 spec v2.2「現状把握↑ vs 目標逆算↓」境界準拠)。ゲーミフィケーション要素: スコア帯バッジ (🌱 新興 / 🚀 成長 / 🏆 一流) + 直近変動アニメーション (緑↑赤↓) + 「現在のあなたの企業価値は 〇〇円 です」モチベーション表示。正常化調整の解説 UI: ツールチップで「役員報酬 (C) を下げても TC で正常化されるため EV は変わりません。これがバイアウト現場で行われる『正常化調整』です」を解説。3 連携先: MAS-071 (TC 理論報酬・段階的自動連携) / MAS-067 (initialBS から NetAssets 起点) / MAS-141 (経営セーフティ共済解約返戻金 → OffBalanceAssets)。v1 では panel-local 手動入力モードで動作し、後続 PR で各案件の実装に応じて自動連携を段階導入。参考値性常時免責: 「実際の M&A 価格は買い手・タイミング・シナジー等で大きく異なる」を 3 層 (パネル下部・ツールチップ・税務評価スコア専用警告) で常時表示 (MAS-057 #15 税務否認リスク + MAS-071 #7 と同型のガードレール)。新規 sys_params 7 キー: MAS072_EBITDA_MULTIPLE_DEFAULT/MIN/MAX / BADGE_THRESHOLD_GROWTH/TOP / OFFBALANCE_DEFAULT / NET_ASSETS_DEFAULT。実装着手は MAS-071 完了後を推奨 (TC 自動供給により完全動作)。docs-only PR で prod 自動デプロイへの影響なし。 |
| 2026-04-30 | dev_mas-057_solo_ceo_cockpit.md v2.3 (Step 6.16 シート保存 + UX 統一 + 即時反映 PR #454 反映) / dev_mas-067_multiyear_planning_workspace.md v1.8 (Phase E v1 PR #451 + v2 PR #454 反映) | F-57 / F-67 のシナリオ・プリセット保存基盤を localStorage → シート移行 + UX 統一 + プルダウン即時反映を一括実装した PR #454 (commit 3487562) + その前段の F-67 Phase E v1 シナリオ保存 PR #451 (commit 7c6cbe4) を spec に整合追従。F-57 (PR #454) 移行内容: (1) 38_f57_assumptions / 39_f57_scenarios の 2 タブ追加 + F57AssumptionsRepository / F57ScenarioRepository 新設 / (2) Constants.ID_PREFIXES.F57AS / F57SC で 4 桁連番発番 / (3) _f57Crud_ ファクトリで API 8 本 (list/save/load/delete × 2 タブ) を重複排除 / (4) 自動移行: 初回 SPA ロード時に旧 localStorage 内容を 1 回だけシートにアップロード (f57_cockpit_*_migrated_to_sheet_v1 フラグで再実行抑制・旧 localStorage は安全のため残置) / (5) F-67 と同一 UX (myr-scenario-panel 緑色テーマ + インライン名前入力 + 4 ボタン 🔄 / 💾 / ➕ / 🗑️) / (6) list API を values 込みに変更 → プルダウン即時反映 (sheet roundtrip なし) / (7) F-57 / F-67 両方で 📂 読込 → 🔄 再取得 に役割変更 / (8) AssumptionsBar 読込時は前提条件 16 項目のみ上書き (Variables 維持) / ScenarioBar 読込時は Variables のみ上書き (前提条件維持) の差分適用ロジック / (9) F57-SHEET / AS / SC テスト 12 件全 PASS (testF57ScenarioSheetMigration_ 新設)。F-67 Phase E v1 (PR #451): 37_f67_scenarios タブ追加 + F67ScenarioRepository + listF67Scenarios / saveF67Scenario / loadF67Scenario / deleteF67Scenario の 4 API + ScenarioPanel.tsx 新規 + MultiyearApp 統合 (yearInputs / initialBS / optimizationPolicy / exitPlan を全て上書きで state 完全復元)。F-67 Phase E v2 (PR #454): listF67Scenarios を values 込み返却に変更し F67ScenarioMeta に optional yearInputs? / initialBS? / optimizationPolicy? / exitPlan? 追加 + ScenarioPanel.tsx で onSelect 即時反映 + 📂 → 🔄 役割変更 (F-57 と同期)。経緯の言語化: 「localStorage 保存は単一端末内では機能していたが端末跨ぎ共有不可・業種別テンプレ配布不可・削除済シナリオの復元不可の限界が顕在化 → シート移行 + prefetch 化 + サクサク UX」を spec 内 Step 6.16 で明示。spec 更新内容: (1) MAS-057 spec に Step 6.16 「シート保存 + UX 統一 + プルダウン即時反映」セクション新設 (移行スコープ + データモデル + API 8 個 + UX 統一 + 即時反映 + 適用ロジック + 新規ファイル + テスト 12 件詳細) + 変更履歴 v2.3 entry 追加 / (2) MAS-067 spec の Phase 分割計画テーブルを A-D → A-E に拡張 (Phase E v1 PR #451 + v2 PR #454 行を新設) + 変更履歴 v1.8 entry 追加。「実装が spec を先行 → spec を整合追従」のパターン累計 9-10 例目 (F-57 v2.3 = 9 例目 + F-67 v1.8 (Phase E v1 + v2) = 10 例目)。docs-only PR で prod 自動デプロイへの影響なし。 |
| 2026-04-30 | dev_mas-071_compensation_strategy_simulator.md v0.1 新設 / docs/_config.json E.5.48 ナビ追加 / id_mapping_table.csv F-71→MAS-071 行更新 / todo_master_tables.md MAS-071 行新設 / TODO_future.md §1.x P2 + Domain 内訳に MAS-071 追加 / dev_mas-057_solo_ceo_cockpit.md 注意事項 #16 (MAS-071 候補? 表記) を「将来別 ID 再アサイン」に訂正 / tasks/prompts/task_MAS-071.gemini.md (sub-agent 起動プロンプト全文) | MAS-071 稼働率連動型役員報酬シミュレーター仕様書 v0.1 起草完了 (Method B 第 3 段階)。MAS-057 Solo-CEO Visual Cockpit の役員報酬決定機能を 4 アプローチ統合で高度化する拡張案件。Claude Opus 4.7 サブエージェントが本体起草 (781 行・MAS-066 / MAS-058 / MAS-057 と同等のボリューム感・14 セクション全網羅・エッジケース 16 件・人間検討事項 12 件・注意事項 15 件)。入力 6 種: (a) 限界利益 OP_pre = 売上 - 固定費(役員報酬控除前)、(b) 稼働率 R_d/R_i/R_m(合計 100%・3 連動スライダー)、(c) 市場価値 V_d/V_i/V_m(職務代行コスト法・default 1,000/1,200/800 万)、(d) L_min(個人最低額面年収・default 480 万)、(e) Buffer(法人最低固定バッファ・default 月商 3 ヶ月分)、(f) TargetProfit(融資対策用法人利益・default 600 万)。計算式 5 段: (1) 理論報酬 TC = V_d × R_d + V_i × R_i + V_m × R_m → 法人税法施行令 70 条 1 号「同種事業類似規模 0.5〜2 倍」防御根拠、(2) アプローチ A (ボトムアップ・生活防衛) = max(L_min, min(TC, OP_pre))、(3) アプローチ B (トップダウン・内部留保) = OP_pre - (Buffer + OP_pre × R_i)、(4) アプローチ C (税務最適化) = min(C_opt, TC) ※ SocialInsuranceTierEngine + PersonalTaxEngine を再利用して合算手残り最大化を 12 万刻みでスキャン探索、(5) アプローチ D (融資対策) = TC × (1 - R_i)・OP_pre - 報酬 ≥ TargetProfit クランプ。ID 採番衝突回避経緯 (failure_patterns #31 適用): ユーザー初期提案 400_domain/445_compensation_strategy_engine.js だが既存 MAS-058 (445_required_revenue_solver.js) と衝突 → 454_compensation_strategy_engine.js に振直し (440〜453 全使用済確認済)。仕様書注意事項 #1 + 変更履歴 v0.1 の二重記載で経緯保全。MAS-057 spec の MAS-071 候補? 仮押さえは本案件確定により破棄 (住宅ローン減税精密計算は別 ID で再アサイン待ち)。配置原則: MAS-058 健全性診断パネル直下に統合パネル案を採用 (独立タブ案も比較表で提示・MAS-057 spec v2.2 「現状把握↑ vs 目標逆算↓」境界準拠)。4 アプローチ対称実装 (failure_patterns #25): calcApproachA / B / C / D を同一引数構造・戻り値型・Number.isFinite ガード + null フォールバックで実装。Gemini Deep Research + Claude Research の調査結果: 粗利 1,500-2,000 万・固定費 240 万のスイートスポット = 月 50-65 万・年 600-800 万。法人軽減税率枠 (所得 800 万円以下 = 実効約 21〜23%) を残しつつ厚生年金標準報酬月額上限 (月 65 万 = 報酬 63.5 万超で頭打ち) を意識する設計が核。spec 内に検証データとして反映。前提依存: MAS-057 Phase 3 + Step 6 完了 (✅) / MAS-058 Step 5 完了 (✅・PR #400)。後続発展余地: MAS-067 マルチイヤー化での年次稼働率変動 + 4 アプローチ最適化の 5 年連結 (v2 候補)。docs-only PR で prod 自動デプロイへの影響なし。 |
| 2026-04-30 | dev_mas-176_ai_tool_roi.md v0.1 新設 / dev_mas-233_perf_diagnostic.md v0.1 新設 / dev_mas-144_regulation_generator.md v0.1 新設 / docs/_config.json E.5.46/E.5.47/E.1.25 ナビ 3 件追加 / tasks/prompts/task_MAS-176.gemini.md + task_MAS-233.gemini.md + task_MAS-144.gemini.md 新設 | P1/P1.5 仕様書未作成 TOP 3 を一括起票 (MAS-176 / MAS-233 / MAS-144)。3 件並列で Claude Opus 4.7 サブエージェント (Method B 第 3 段階) が本体起草、計 1,728 行を生成。MAS-176 開発者向け AI ツール投資 ROI 管理 (511 行・P1.5 ★★★・🌐 Cross): D.8 §2.e-6 派生・23_bud_subscription に est_hours_saved_per_month 列を DDL 追加・22_bud_headcount の役員年収÷稼働時間で時間単価算出・月次 ROI を 93_kpi_dashboard に出力。新規 400_domain/450_ai_tool_roi_engine.js (449 配当 + 451 multiyear の間) + SubscriptionRepository 新設 + 6 sys_params キー (MAS176_*) で運用調整可。Number.isFinite ガード (failure_patterns #29) 必須・KPI K7 は GAS 側で setValue スカラー埋込 (failure_patterns #21-#24 数式不使用)。MAS-233 GAS パフォーマンス診断ツール (530 行・P1 ★★・💾 Data): MAS-231 計測基盤・Utils.perfStart / perfEnd / perfFlush の 3 関数を 004_utils.js に追加 (新規 namespace 不採用)・CacheService 60 秒 / 200 件で flush バッファリング・99_perf_log を LOG_PERF キーで DDL 登録 (98_audit_log の LOG_AUDIT パターン完全対称)・Action A/B (failure_patterns #25 対称性) + マート更新 + RPA 起票 + サイドバー初期化 + OCR 処理に try/finally 埋込・保持期間 90 日 (archivePerfLogMonthly 月次アーカイブ)・MAS233_* 4 sys_params キー。MAS-144 役員社宅・出張日当・退職金 規程自動ジェネレーター (687 行・P1 ★★・🧠 Domain・MAS-334 派生): MAS-067 ステージ準備度ダッシュボードで A2/A3/A10 が🟢になった時に PDF 自動生成・3 規程対称実装 (SHATAKU/TRAVEL/RETIREMENT・failure_patterns #25)・新規 400_domain/452_regulation_generator.js (450/451 既存・452 空き確認済) + webapp_client/src/regulation/{ShatakuPanel,TravelPanel,RetirementPanel}.tsx + templates/regulations/{shataku,travel,retirement}.md・PDF 生成は DocumentApp.create() 採用 (jsPDF は外部ライブラリ依存・oauthScopes 部分宣言リスクあり・failure_patterns #26)・ID 採番衝突回避経緯明記 (MAS-142 提案 → MAS-144 振直し・MAS-142/MAS-143 既使用確認済・failure_patterns #31)・税理士/社労士監修必須を生成画面 + PDF 末尾の両方に表示 (HITL)。3 段階生成プロセス (Method B): (1) 手動骨格 + Gemini Deep Think プロンプト準備 (3 件) / (2) Claude Opus 4.7 サブエージェント並列実行 (3 件) / (3) nav 登録 + changelog 起票本 PR。Phase 別未着手 P1/P1.5 仕様書未作成案件: 完了 = MAS-130 / MAS-131 / MAS-141 / MAS-176 / MAS-231 / MAS-233 / MAS-144 (7 件)・残 = MAS-177 (多年度データ基盤・アーキテクチャ判断要)。docs-only PR で prod 自動デプロイへの影響なし。 |
| 2026-04-30 | dev_mas-067_multiyear_planning_workspace.md v1.7 (Phase D 実装完了反映) | MAS-067 Phase D AI 提案統合 (Vertex Gemini) 実装完了 (PR #448・commit 5b7dcc5) ・spec を v1.7 として整合追従。これで F-67 マルチイヤー計画 Phase A〜D の全 8 サブフェーズ完成 (Phase A / B-1 / B-2 / B-3 / B-4 / C-1 / C-2 / C-3 / D・残: B-4 配当連携のみ)。実装内容: (1) 300_ui/302_spa_bridge.js に buildSuggestPrompt_ 純粋関数 + generateF67Suggest API 追加 (5 年計画サマリ + 各年ステージ + 高優先度サジェスト + ガードレール集計 + Section G 警告 + plan-level 検証 + 5 軸モデル/配置順序ガイドラインを統合) / (2) webapp_client/src/multiyear/SuggestPanel.tsx に AI モデル selector (GEMINI_PRO/GEMINI_FLASH/CLAUDE_SONNET/CUSTOM) + Custom Model ID (default gemini-3.1-pro-preview) + 🧠 Deep Think + temperature UI / (3) 800_ops/820_migration_f67_phase_d_seed.js 新規で 5 sys_params キー冪等投入: F67_AI_SUGGEST_ENABLED (default false・true で AI ボタン表示) / F67_AI_SUGGEST_MODEL (default GEMINI_PRO) / F67_GEMINI_MODEL_OVERRIDE_PRO (default gemini-2.5-pro) / F67_GEMINI_MODEL_OVERRIDE_FLASH (default gemini-2.5-flash) / F67_AI_TEMPERATURE (default 0.3・経営アドバイスは具体数値含むため低温で一貫性確保) / (4) 単体テスト F67-70〜76 (7 件追加・buildSuggestPrompt_ 純粋関数のみテスト・Vertex Gemini API 呼出は実機テスト)。v1.6 spec から の差分: temperature を sys_param で外出し / Custom Model ID default を gemini-3.1-pro-preview 設定 / sys_params 5 キー追加 (旧 14 キー → 19 キー)。safety fallback: F67_AI_SUGGEST_ENABLED=false (default) では AI ボタン非表示・ルールベースサジェスト (Phase C-1) は AI OFF でも動作。Vertex AI quota 状況: Gemini Pro/Flash は dev 動作確認済 / Anthropic Claude は dev quota escalation 申請中のため Gemini Pro が default 動作。spec 更新内容: (1) Phase 分割計画テーブル Phase D 行を「未着手」→「✅ 完了 (PR #448)」 / (2) 概要テーブルの sys_params キー行を 14 キー → 19 キーに拡張 (Phase D 5 キー追加明記) / (3) Phase D セクションに実装済 sys_params 5 件 + SuggestPanel UI + Vertex AI quota 状況の節追加 / (4) 変更履歴 v1.7 entry 追加。「実装が spec を先行 → spec を整合追従」のパターン 8 例目 (累計 8 件)。docs-only PR で prod 自動デプロイへの影響なし。 |
| 2026-04-30 | dev_mas-231_gas_perf_optimization.md v0.1 新設 / docs/_config.json E.1.24 ナビ追加 / id_mapping_table.csv source_file + status_source 更新 | MAS-231 GAS パフォーマンス最適化パス 1 仕様書 v0.1 起草完了 (PR-231c)。仕様書作成 TOP 3 の 4 件目 (最終) ・本セッションで MAS-141/MAS-131 リネーム + MAS-130 + MAS-231 新規 spec を全完了。tasks/prompts/task_MAS-231.md (PR #438・手動骨格 281 行) + tasks/prompts/task_MAS-231.gemini.md (PR #439・Gemini 3 Pro Preview Deep Think 85 行) を統合 input として Claude Opus 4.7 (1M context) で本体起草 (約 410 行)。14 セクション全網羅: 概要 + 目的 + 現在のコード (利用 API 6 件 + Repository 6 件 + バッチ I/O 化対象関数) + 修正方針 7 Step + 影響範囲 + 注意事項 14 件 + エッジケース 12 件 + 実データ検証 6 ケース + 関連ドキュメント 10 件 + 人間検討事項 12 件 + 実装プロンプト + 推奨実行モデル + 変更履歴 + <details>。7 つの最適化テクニック: (1) バッチ I/O 化 (Top 20 関数書換) / (2) マスタキャッシュ層 (200_data/cache_layer.js 新設・CacheLayer HOF パターン) / (3) flush() 削減 / (4) Volatile 関数除去 (NOW/TODAY/RAND) / (5) 条件付き書式削減 / (6) onEdit 軽量化 (Installable trigger 非同期化) / (7) 効果測定 (MAS-233 99_perf_log で P95 半減〜1/5 確認)。主要設計判断: (a) 段階適用必須 (Step 1-8 を独立 PR + 各 PR で回帰テスト・rollback 容易性確保) / (b) 前提依存 = MAS-233 完了待ち or 並行実装 / (c) 効果測定 KPI = 全関数 P95 が 1/3 以下 (3x 改善) を合格基準 / (d) Jr 採用 (MAS-230) 後のハンズオン教材として「読みやすい最適化パターン」を蓄積。実装規模: ドメイン 100 行 (cache_layer) + 各 Repository 修正 30 行 + 既存ファイル 10-15 個のバッチ I/O 化 + テスト 150 行 + 工数 2-3 週間。「仕様書作成 TOP 3」セッション完了サマリー (本 PR 含む 11 PR): PR #430 スクリプト修正 / PR #431-432 MAS-141 prompt (※ 既存 spec 発見後活用中止だが保管継続) / PR #433 MAS-141 リネーム / PR #434 MAS-131 リネーム / PR #435-437 MAS-130 (3 段階) / PR #438-440 (本 PR) MAS-231 (3 段階)。docs-only PR で prod 自動デプロイへの影響なし。 |
| 2026-04-30 | dev_mas-130_filter_view_presets.md v0.1 新設 / docs/_config.json E.2.22 ナビ追加 / id_mapping_table.csv status_source 更新 | MAS-130 フィルタービュープリセット配布仕様書 v0.1 起草完了 (PR-130c)。仕様書作成 TOP 3 の 3 件目。tasks/prompts/task_MAS-130.md (PR #435・手動骨格 221 行) + tasks/prompts/task_MAS-130.gemini.md (PR #436・Gemini 3 Pro Preview Deep Think 79 行) を統合 input として Claude Opus 4.7 (1M context) で本体起草 (363 行)。14 セクション全網羅: 概要 + 目的 + 現在のコード (利用 API 5 件 + DDL 列構造表) + 修正方針 5 Step + 影響範囲 + 注意事項 12 件 + エッジケース 10 件 + 実データ検証 4 ケース + 関連ドキュメント 6 件 + 人間検討事項 10 件 + 実装プロンプト + 推奨実行モデル + 変更履歴 + 仕様書作成プロンプト <details>。主要設計判断: (a) 名前空間 FilterPresets (IIFE パターン・既存 301/302 と並列) / (b) 新規ファイル 300_ui/303_filter_presets.js (元 TODO の 302 は spa_bridge.js で占有済 → 303 に変更・failure_patterns #31 防止事例) / (c) プリセット 5-7 種ハードコード (UNPROCESSED / CURRENT_MONTH / THIS_WEEK_DEADLINE / UNMATCHED_STL / PENDING_APPROVAL / ALL) / (d) 永続化 = PropertiesService.getDocumentProperties() (シート単位) / (e) 起動時自動復元 = onOpen() フック。実装規模: 約 200 行ドメインスクリプト + 仕様書 363 行 + 工数 約 1 週間。id_mapping_table.csv 更新: source_file TODO_future.md → dev_mas-130_*.md、status_source todo_future_table → dev_spec。docs-only PR で prod 自動デプロイへの影響なし。実装着手可能状態として v0.1 で起票完了。 |
| 2026-04-30 | dev_mas-131_conditional_formatting.md v1.1 (リネーム + MAS- 化整合) / docs/_config.json E.2.21 タイトル更新 / id_mapping_table.csv source_file 更新 / 関連 spec 2 件 (dev_S-60 / dev_S-61) 内部参照一括置換 | MAS-131 完了行視認性向上仕様書を legacy prefix MAS-131 から MAS- 化整合。「仕様書作成 TOP 3」着手前の前提整理 Step 2 (PR-X2)。変更内容: (1) ファイル名 dev_S-59_*.md → dev_mas-131_*.md に git mv で履歴保持リネーム / (2) 本文中の (S-59) / (S-59) / S-59 完了行書式 / S-59 conditional format / S-59: を MAS-131 に一括置換 (12 箇所) / (3) 関連 spec 2 件 (dev_S-60_monthly_row_grouping / dev_S-61_fiscal_year_archive) からの参照パスを sed で一括更新 / (4) docs/_config.json E.2.21 タイトル "S-59" → "MAS-131" / (5) id_mapping_table.csv source_file 列更新 / (6) 変更履歴に v1.1 entry 追加。保持事項: (a) frontmatter aliases: ["S-059", "S-59"] は legacy ID マッピング保持のため維持 / (b) 仕様書作成プロンプト <details> 内の S-59 表記は履歴用に維持 (line 422 / 433) / (c) 仕様書本文の実装内容には変更なし。経緯: PR-X1 (MAS-141 リネーム・PR #433) と同じ趣旨で、legacy prefix MAS-131 で残存していた MAS-131 spec のファイル名整合化を実施。docs-only PR で prod 自動デプロイへの影響なし。後続: 新規 spec 作成 (MAS-130 + MAS-231) を 3 段階プロセスで進める。 |
| 2026-04-30 | dev_mas-141_tax_saving_simulator.md v1.1 (リネーム + MAS- 化整合) / docs/_config.json E.5.43 タイトル更新 / id_mapping_table.csv source_file 更新 / 関連 spec 5 件 (F-66/F-67/N-42/financial_metrics_guide) 内部参照一括置換 | MAS-141 節税・共済効果シミュレーター仕様書を legacy prefix MAS-141 から MAS- 化整合。「仕様書作成 TOP 3」着手前の前提整理として実施 (PR-X1)。変更内容: (1) ファイル名 dev_S-69_*.md → dev_mas-141_*.md に git mv で履歴保持リネーム / (2) Constants.MENU_DEFINITION の label / description 内の (S-69) → (MAS-141) 更新 / (3) 5 つの関連 spec / docs (dev_F-66・dev_F-67・dev_N-42・financial_metrics_guide.md・自己参照) 内のパス参照を sed で一括置換 / (4) docs/_config.json の nav E.5.43 タイトルを MAS-141 → MAS-141 に更新 / (5) id_mapping_table.csv の source_file 列を更新 / (6) 変更履歴に v1.1 entry 追加。保持事項: (a) frontmatter aliases: ["S-069", "S-69"] は legacy ID マッピング保持のため維持 / (b) 変更履歴の旧 entry の "S-69" 表記は時系列の事実保全のため維持 / (c) 仕様書本文の実装内容には変更なし (v1.0 仕様書完了状態を維持)。経緯: 2026-04-30 セッションで「仕様書作成 TOP 3」(MAS-141/MAS-231/MAS-130/MAS-131) に着手した際、MAS-141 の spec が legacy prefix で既存していることを発見。本来 BIZ→MAS prefix リネーム (PR #416) で仕様書ファイル名も連動更新すべきだったが、当時はファイル名変換は対象外だった。docs-only PR で prod 自動デプロイへの影響なし。後続 (Step 2): dev_mas-131_conditional_formatting.md (MAS-131) も同様にリネーム予定。 |
| 2026-04-30 | dev_mas-067_multiyear_planning_workspace.md v1.6 (Phase B-2 + B-3 実装完了反映) / todo_master_tables.md MAS-067 ステータス更新 | MAS-067 マルチイヤー計画ワークスペース Phase B-2 (PR #425) + Phase B-3 (PR #426) 実装完了 ・spec を v1.6 として整合追従。Phase B-2 実装内容 (PR #425・commit ca05cad): 行為計算否認ガードレール 10 件 UI 表示・GuardrailPanel.tsx 新規 + GUARDRAILS 定数 10 件 + _evaluateGuardrails_ 関数追加・単体テスト F67-26〜33 (8 件・全 33 件 PASS)。ガードレール 10 件: A1 役員報酬 (定期同額給与逸脱) / A2 役員社宅 (法定家賃) / A3 出張日当 / A4 親族役員化 / A5 小規模企業共済 / A6 セーフティ共済 (2024.10 改正) / A7 少額減価償却 / A8 業務委託活用 (2024.11 フリーランス新法) / A9 公庫融資 / A10 退職金。重要設計判断: ガードレールはステージ judgment と独立した安全網。always/on_overage/on_change トリガーはアクションが locked でも入力値で判定 (例: CAPEX 2000 万投入で S1 強制 → Scale 軸 locked になっても A7 警告は発火)。on_green のみ「🟢 達成」が前提なので locked では不発火。Phase B-3 実装内容 (PR #426・commit 7cdae52): Deep Think 独自必須機能 5 件のうち 3 件実装・SectionGPanel.tsx 新規 (年別カードグリッド・Burnout progress bar 含む) + 818_migration_f67_phase_b3_seed.js 新規 + _calcBurnoutMeter_ / _detectFreelanceLawSiteGap_ / _detectInvoiceTransitionCliff_ ヘルパ追加 (~150 行) + YearTabs に Section G 入力 7 種追加 + 単体テスト F67-34〜43 (10 件・全 43 件 PASS)。実装 3 件: ✅ MAS-239 Burnout メーター (ナレッジワーカー型売上分解で物理破綻検知・100% 超で🔴 + 業務委託サジェスト・80% 超で🟡 余力低下警告・F67_MONTHLY_MAX_HOURS default 160h) / ✅ MAS-236 フリーランス新法サイト負け検知 (委託先 60 日超過で🔴新法違反・元請-委託 30 日超で🟡 WC ギャップ・2024.11 施行・50 万以下罰金 + 公表) / ✅ MAS-240 インボイス 2 割特例終了崖検知 (2023/10 以前登録で 2026/9 含む課税期間以降🟡 警告・厳密な決算月対応は v2 候補)。Phase C へ移動 2 件: ❌ MAS-237 退職所得控除「枠の食い合い」5 年/19 年ルール / ❌ MAS-238 セーフティ共済「出口パズル」マッピング (どちらも複雑な multi-year cross-year 判定が必要なため Phase C で実装予定)。spec 更新内容: (1) 概要テーブル実装ステータス行に B-2 / B-3 完了マーク追加 / (2) Phase 分割計画テーブルで B-2 / B-3 を「未着手」→「✅ 完了」に変更・主要ファイル列を実装実態で書換 / (3) 変更履歴 v1.6 entry 追加。todo_master_tables.md MAS-067 行: ステータス「Phase A + B-1 完了 v1.5」→「Phase A + B-1/B-2/B-3 完了 v1.6」に更新。残作業: Phase B-4 (MAS-066 配当ミックス連携・〜0.5 週) / Phase C (サジェスト + 退職控除 5/19 年ルール + セーフティ共済出口パズル + ポリシー駆動最適化・〜3 週) / Phase D (AI 提案・Vertex Gemini・〜1 週)。「実装が spec を先行 → spec を整合追従」のパターン 6・7 例目 (累計 7 件・F-57 v2.1 PR #395 + 均等割修正 PR #399 + F-58 v2.0 PR #401 + F-66 v1.2 PR #403 + F-67 v1.5 PR #424 + 本 v1.6 で 6・7 例目)。docs-only PR で prod 自動デプロイへの影響なし。 |
| 2026-04-30 | TODO_future.md §5 Out of Scope に MAS-335 追加 | 代表取締役の持ち家事務所化による不動産所得・必要経費按分計算機能を Out of Scope (MAS-335) として登録。2026-04-30 セッションでユーザー質問「代表取締役の持ち家を法人事務所として家賃支払いする節税効果」を受け、限定的だが効果はある (年 3-8 万円・必要経費按分の減価償却で個人課税所得圧縮) ことを確認したが、cockpit 統合スケールには至らないため Out of Scope として記録。スコープ外理由: (a) 節税スケールが小さい (MAS-057 役員社宅 30-60 万円 / MAS-141 共済 50-100 万円と比べ 1 桁小さい)、(b) 個人確定申告書 (青色) で完結し法人会計システム機能化の必要性が薄い、(c) 過大/過小家賃の否認リスクが「近隣相場ベース」という属人的判断で自動化困難。将来再評価トリガー: MAS-057/MAS-067 完了で精緻化価値ありと判断 / 顧客向け税理士アドバイザリーツール商品化 / 持ち家率の高い地方コンサル法人への商用展開。実務運用: 税理士に依頼して個人確定申告 (青色 65 万円控除) で対応 + 賃貸借契約書 (法人 ↔ 個人・利益相反取引・取締役会議事録) を整備すれば、システム機能なしで節税実行可能。関連 RQ: MAS-333 (少額減価償却特例 40 万円未満化検証 2026/4 改正) と並列。docs-only PR で prod 自動デプロイへの影響なし。 |
| 2026-04-30 | dev_mas-067_multiyear_planning_workspace.md v1.5 (Phase A + B-1 実装完了反映) / todo_master_tables.md MAS-067 ステータス更新 | MAS-067 マルチイヤー計画ワークスペース Phase A (PR #418) + Phase B-1 (PR #423) 実装完了 ・spec を v1.5 として整合追従。Phase B-1 実装内容 (PR #423・commit e8dfaef): (1) webapp_client/src/multiyear/StageDashboard.tsx 新規 (182 行・5 軸 × 10 アクション信号機マトリクス) / (2) 400_domain/451_multiyear_planner.js のステージ判定エンジン拡張 (約 250 行追加・ライフステージ動的判定 + プログレッシブ・ディスクロージャー S1-S4 + ポリシー駆動視覚ハイライト) / (3) 800_ops/817_migration_f67_phase_b_seed.js 新規 (F67_* 12 キーシーダー) / (4) sticky policy bar CSS (約 88 行) / (5) MultiyearApp.tsx 拡張 (sticky policy bar + StageDashboard 統合) / (6) 単体テスト F67-15 修正 + F67-16〜25 新規 10 件・全 25 件 PASS。Phase B サブフェーズ細分化 (v1.5 で確定): 旧 v1.2-1.4 では「Phase B = 4 週間まとめて実装」だったが、PR レビュー単位での消化が大きすぎることと、ステージダッシュボードだけでも単独価値があることから B-1 (5 軸 + プログレッシブ・ディスクロージャー・〜1.5-2 週間) / B-2 (ガードレール 10 件・〜0.5 週) / B-3 (Burnout + Section G・〜1 週) / B-4 (MAS-066 配当連携・〜0.5 週) の 4 サブフェーズに分割。B-1 完了で残る B-2/B-3/B-4 は順次・並列実装可能。主要設計判断: (a) ライフステージ動的判定は財務指標が機械的判定に優先 (runway < 6 ヶ月で S1 強制) / (b) A1 役員報酬は「年次純利益 > 0」で簡略化 (Phase C で月次粒度厳密化予定) / (c) A9 公庫融資は債務償還年数 ≤ 10 年 ∧ 現預金 ≥ 3 ヶ月・営業 CF ≤ 0 を 999 サニタイズ (failure_patterns #29 対策) / (d) 最優先ポリシー A/B/C は B-1 では UI セレクター + 視覚ハイライト (オレンジ枠) のみ実装・実際のポリシー駆動最適化は Phase C で実装予定。spec 更新内容: (1) 概要テーブルに「実装ステータス」行新設 (Phase A ✅ / Phase B-1 ✅) / (2) Phase 分割計画テーブルを 4 → 7 行に拡張 (B 行を B-1/B-2/B-3/B-4 の 4 行に展開・各サブフェーズ独立リリース可) / (3) 変更履歴 v1.5 entry 追加。todo_master_tables.md MAS-067 行: ステータス「📝 仕様書完了 v1.2」→「🟡 Phase A + B-1 完了 v1.5」・日付 2026-04-27 → 2026-04-30 に更新。「実装が spec を先行 → spec を整合追従」のパターン 5 例目 (F-57 v2.1 PR #395 + 均等割修正 PR #399 + F-58 v2.0 PR #401 + F-66 v1.2 PR #403 に続く実例)。docs-only PR で prod 自動デプロイへの影響なし。 |
| 2026-04-30 | TODO_future.md §1 P1/P3 行 + §2 Phase 1 行 / todo_master_tables.md MAS-XXX 12 件 P1 → P3 | Ops 系 12 件を P1 → P3 に降格。ユーザー判断「Ops 関連は開発優先度を下げたい・Phase 1 に入れたくない」を受け、🛠️ Ops 層の運用・組織・採用・セキュリティ管理系を Phase 1 (基盤構築・即効性) から Phase 3 (予測高度化・GCP 移行基盤) に移動。移動対象 12 件 (案 A: 厳密な Ops 層のみ): MAS-205 (MFA義務化 ✅) / MAS-206 (外部共有制限 ✅) / MAS-218 (タイムトラッキング・R&D 税制) / MAS-222 (開発端末セキュリティ) / MAS-223〜MAS-230 (Jr オンボーディング 8 件: ドキュメント整備 / CI / Branch protection / Good-first-issue / レビュー運用 / 業務委託契約 / Jr 特権分離 / 採用要件) / MAS-254 (プライバシーマーク取得)。P1 維持 (10 件・Ops に該当しないもの): MAS-178 (エラーハンドリング)・MAS-147 (請求書 OCR)・MAS-158 (給与 SaaS)・MAS-170 (法人番号 API)・MAS-139 (セルバリデーション)・MAS-213 (監査ログ保護・Infra 寄りで税務調査要件直結)・MAS-214 (メニューカタログ)・MAS-231 (GAS 最適化 P1)・MAS-233 (パフォーマンス診断ツール)・MAS-001 等の完了案件。実施内容: (1) todo_master_tables.md の 12 件を Phase 列で P1 → P3 に一括置換 (Python 正規表現で 1 件 1 置換確認) / (2) TODO_future.md §1 P1 行を 22 件 → 10 件・テーマから「2-3 人体制整備」を削除 / (3) §1 P3 行を 30 件 → 42 件・テーマに「+ Ops/組織・採用・セキュリティ整備」追記 / (4) §2 推奨開発ロードマップ Phase 1 行から Ops 系項目 (MFA / 外部共有 / プライバシーマーク) を削除し降格マーク追記。完了済み案件 (MAS-205 / MAS-206) も移動: ユーザー判断で「カテゴリ整合性のため Ops は完了済でも P3 に揃える」方針 (✅ 完了マーク自体は維持・歴史的事実)。今後の運用: 本 PR で再カテゴライズした「Ops 系は P3」を default にし、新規 Ops 案件起票時も初期値 P3 を設定する。docs-only PR で prod 自動デプロイへの影響なし。 |
| 2026-04-30 | research_questions.md §3.1 に MAS-333 追加 | 少額減価償却資産特例の取得価額閾値 (2026/4 改正・30 万 → 40 万) の検証案件を新規起票 (MAS-333・P2)。2026-04-30 セッションでユーザー指摘「2026/4 から 40 万円未満に変わったはず」を受け、リサーチ案件として独立記録。調査スコープ: ①閾値引上げの正式根拠条文・施行日・対象法人区分 / ②年 300 万円枠の継続性 / ③適用期限の延長有無 (旧法 令和 8 年 3 月 31 日まで) / ④取得価額の付随費用扱い (例: 設備 39 万 + 保証 2 万 = 41 万のケース・分離可否の実務判定) / ⑤波及更新先 (dev_F-67 Line 231 / changelog の 30 万円超過記述 / Constants 拡張要否)。想定情報源: 国税庁 (措置法 §67-5・通達)、財務省 令和 8 年度税制改正大綱、e-Gov 法令検索、税理士確認。実装スコープ外でリサーチのみ先行することで、確定後の F-67 spec 精緻化・将来の MAS-013 InvestmentAnalyzer 連携時に正確な閾値を反映可能に。docs-only PR で prod 自動デプロイへの影響なし。 |
| 2026-04-30 | TODO_future.md §3 切出 / todo_master_tables.md (新設) / docs/_config.json C.1.0 ナビ追加 | TODO_future.md の構造改革 Phase 2 (最終): §3「全案件マスタテーブル」(560 行) を docs/_internal/todo_master_tables.md に独立移動。Phase 1 (§6 切出・PR #419) に続く構造改革の最終ステップ。実施内容: (1) docs/_internal/todo_master_tables.md 新設 (573 行・元 §3 全 215+ 案件のカテゴリ別マスタ + 自動入力パイプライン narrative + SaaS 化展開を完全保持・独立 H1 タイトル + 関連ドキュメントリンクを冒頭に追加) / (2) TODO_future.md §3 を stub 化 (リンクのみ残置・元 560 行 → 9 行) / (3) docs/_config.json に C.1.0 全案件マスタテーブルナビ追加 (TODO_future.md 直下) / (4) 見出し階層整理: H3 → H2 (§3.1/§3.2/§3.3) / H4 → H3 (バケット別件数サマリー等)。Phase 1 + Phase 2 の累積効果: TODO_future.md 999 → 約 380 行 (-619 行・-62%) — 概観・サマリー・ロードマップ・ギャップ分析・Out of Scope に集中・実装ステータスサマリー (§1) は当初の方針通り維持。3 ファイル分担: TODO_future.md (戦略概観・約 380 行) / todo_master_tables.md (全案件 SSoT・573 行) / spec_payment_flow_patterns.md (横断俯瞰・95 行)。ID 採番衝突防止: 案件追加時の grep 対象が todo_master_tables.md に集約され、複数 PR の同時更新による衝突リスクがTODO_future.md と分離されることで運用上の編集競合が大幅減。docs-only PR で prod 自動デプロイへの影響なし。 |
| 2026-04-30 | TODO_future.md §6 切出 / spec_payment_flow_patterns.md (新設) / docs/_config.json §4.9 ナビ追加 | TODO_future.md の構造改革 Phase 1: §6「登録→消込パターンカタログ」を docs/spec/ 配下に独立移動。背景: TODO_future.md が 999 行に肥大化し編集競合・レンダリング負荷が発生。構造提案 4 案のうち案 A (マスタテーブル別ファイル化) をユーザー承認 → 段階的移行の Phase 1 として静的セクション (§6・70 行) から着手。§6 の性質: 3 軸 × 36 パターン × 10 フロー × 6 段階構造の横断俯瞰カタログで、内容が静的・運用ログではなくシステム仕様の付録として位置付けが妥当。実施内容: (1) docs/spec/spec_payment_flow_patterns.md 新設 (95 行・元 §6 内容 + 位置付け説明 + 関連ドキュメントリンク) / (2) TODO_future.md §6 を stub 化 (リンクのみ残置) / (3) TOC 1 行をリンク先に書換 / (4) docs/_config.json に §4.9「登録→消込パターンカタログ」グループ追加 (§4.8 What-If と §5 データ・計算要件 の間)。効果: TODO_future.md 999 → 936 行 (-63 行・-6%) / nav からアクセス可能になり可視性向上 / 静的コンテンツが頻繁変動セクションから分離され編集競合リスク低減。Phase 2 予定: §3 全案件マスタテーブル (565 行) を docs/_internal/todo_master_tables.md に切出 (TODO_future.md → 約 370 行に圧縮)。docs-only PR で prod 自動デプロイへの影響なし。 |
| 2026-04-30 | TODO_future.md §4 FP&A ギャップ分析サマリー 更新 | FP&A 13 機能領域の実装度を 2026-04-30 時点に同期 + 個人/法人統合最適化 (新設) 1 行を追加して 14 領域に拡張。MAS-057 Phase 3 + Step 6 完了 (PR #379/#394) / MAS-058 Step 1-5 完了 (PR #376/#400・シナリオ健全性診断モードへ主機能変更) / MAS-066 配当ミックス実装完了 (PR #402) / MAS-067 v1.2 5 軸モデル仕様書完了 を反映。主要な実装度更新: シナリオ分析 (What-if) 0% → 75% (大幅前進) = F-11 + F-57 cockpit + F-58 健全性診断 + F-66 配当の統合効果 / バージョン管理 20% → 35% = Step 6.9 シナリオ・前提条件 localStorage 二系統 + 前回選択自動復元 / ドライバーベース計画 70% → 80% = F-58 健全性診断 4 軸入力 / 予実比較 60% → 65% = F-57 cockpit「現状との累積純資産比較」セクション / ローリング予測 0% → 15% = MAS-067 仕様書完了 (実装未着手) / 多次元分析 50% → 55% = F-58 6 制約 × Y1-Y5 matrix / 監査証跡 55% → 60% = MAS-179/MAS-201/MAS-205 完了 / R&D 管理 0% → 5% = MAS-218 タイムトラッキング仕様書。新設行: 「個人/法人統合最適化」70% (Solo-CEO Visual Cockpit + 健全性診断 + 配当ミックスの統合・海外 FP&A SaaS の空白領域・bizlp 特有の差別化機能)。docs-only PR で prod 自動デプロイへの影響なし。 |
| 2026-04-28 | dev_mas-066_dividend_mix_optimizer.md v1.2 (実装完了反映) / dev_mas-058_required_revenue_solver.md v2.1 (配当統合追記) / failure_patterns.md #33 追加 | F-66 配当ミックス最適化エンジン実装完了 (PR #402) ・spec を v1.2 として整合追従 + F-58 spec に配当統合追記。実装完了スコープ (PR #402・commit 09a0474・7 コミット = feat × 2 + fix × 3 + build × 2・dev Deployed @115・F66-01〜F66-15 全 PASS): (1) 400_domain/449_dividend_mix_optimizer.js 新設 (615 行・DividendMixOptimizer 名前空間・calcDividendTax + simulateScan + validateDistributableAmount) / (2) 000_infra/002_constants.js に DIVIDEND_TAX_BRACKETS (3 種・listed_combined / listed_separated / unlisted_combined) 追加 / (3) 300_ui/302_spa_bridge.js に bootstrap 配信 + _scrubInfinityForJSON_(value) 汎用ヘルパを末尾に新設 / (4) 400_domain/445_required_revenue_solver.js の _computePLSnapshot_ に dividendAmount input 追加・corporateRetainedAfterDividend = netProfit - dividendAmount で retentionRate / runwayMonths を再計算 / (5) webapp_client/src/cockpit/CompensationDropdowns.tsx に「配当年額」ドロップダウン追加・webapp_client/src/cockpit/calc.ts に calcDividendTax 組込 / (6) webapp_client/src/cockpit/RequiredRevenuePanel.tsx に panel-local の desiredDividendAnnual ドロップダウン追加 / (7) 800_ops/815_migration_f66_dividend_seed.js 新設 (F66_* キー seed) / (8) 900_test/901_test_runner.js に F66-01〜F66-15 単体テスト 15 件追加。spec 訂正項目 (F-66 v1.2): (a) _scrubInfinityForJSON_ の出自訂正: v1.1 で「F-67 v1.1 で確立した同パターン」と参照していたが事実誤り (F-67 v1.1 PR #388 では汎用ヘルパとしては未実装で _buildF57CockpitBootstrap_ 内のインライン置換のみ)。汎用ヘルパとして初実装されたのは F-66 PR #402 であることを注意事項 #10 に明記。_buildF57CockpitBootstrap_ の既存インライン置換は本 PR では触らず将来リファクタ候補として残置。(b) Step 4 BS 取得経路訂正: v1.1 で 91_fs_bs (DDL 外・動的生成) としていたが事実誤り。正しくは 71_bs (DDL 管理対象・行=科目/列=月の安定構造)。BalanceSheetReader 新設は F-66 PR ではスコープ外でマージ後の追加開発案件として残置 (純粋関数のみ実装し input は呼び出し側が手で詰める)。(c) 配当の月按分仕様明記: 配当は離散イベント (株主総会決議で確定する金額) のため Y1 短縮事業年度でも入力額そのまま (按分しない)。給与・固定費・法人保険料等の monthFactor 按分とは非対称の設計。F-58 v2.1 追加: evaluateScenarioHealth の input に dividendAmount (default 0) を追加・配当統合の設計判断 (operatingMargin/laborShare は税引前指標なので影響なし・dividendMixRatio ではなく dividendAmount 採用) を反映・panel-local の desiredDividendAnnual ドロップダウン記載。failure_patterns #33 追加: 「新規 GAS ドメインエンジン追加時の SPA 副作用 import 漏れ」(F-66 実装中の bug fix commit 41305ea から学習・チェックリスト 6 項目で再発防止)。実装スコープ外 (将来 PR): BalanceSheetReader (71_bs / 42_trn_journal 自動抽出) / F-58 v2 dividendMixRatio 必要年商再計算 / F-61 v1.2 getDividendMixOptimization 連携 / F-67 マルチイヤー連携 (F67_DIVIDEND_INTEGRATION_ENABLED フラグ)。docs-only PR で prod 自動デプロイへの影響なし。「実装が spec を先行 → spec を整合追従」のパターン 4 例目 (F-57 v2.1 PR #395 + 均等割修正 PR #399 + F-58 v2.0 PR #401 に続く実例)。 |
| 2026-04-28 | dev_mas-058_required_revenue_solver.md v2.0 (大改修) / dev_mas-057_solo_ceo_cockpit.md v2.2 (Step 6.9 拡張 + 6.9-extension F-58 統合節新設) | F-58 Step 5 シナリオ健全性診断パネル統合 (PR #400) ・spec を v2.0 として大改修整合追従。主機能変更: 当初 v1.0-v1.2 では「希望年収 → 二分探索で必要年商を逆算」を主機能としていたが、ユーザーフィードバックで主機能を「現シナリオ (前提条件 + 月商) で希望年収を取った時に Y1-Y5 各年期末で健全性 6 制約を満たすかを 1 点診断する」に変更 (PR #400・commit ff61a29)。逆算機能は副機能 (折りたたみ) として保存 + キャパシティ ギャップ分析 (単価 × 稼働率 vs 必要年商・100% 超で警告) に発展拡張。主要変更 (F-58 v2.0): (1) Engine API 追加 RequiredRevenueSolver.evaluateScenarioHealth(input) を新設 (400_domain/445_required_revenue_solver.js:368・98 行追加・年商を二分探索せず固定して 6 制約を 1 点評価) (2) F-57 cockpit 統合: webapp_client/src/cockpit/RequiredRevenuePanel.tsx (909 行新規) を「累積純資産 + 平均実効負担率」セクションの直下に配置 (現状把握↑ vs 目標逆算↓ の境界・default ON・希望年収 default = 現状の役員報酬・適用開始年 default = Y2 から) (3) 6 制約 × Y1-Y5 期末 matrix: フロー (黒字 / 営業利益率 / 留保率 / 労働分配率) → ストック (ランウェイ / 緊急予備金) の順・緑列ハイライト = 希望年収を適用した年・Y1 は inputs.isFirstYear / firstYearMonths / foundingCost を反映 (4) ヘルシーを保てる年間投資余力テーブル: 各年で X 円追加支出した時の期末残高で 6 制約を維持できる最大の X を binary search・違反時は箇条書きで該当制約・現値・閾値を表示 (5) ランウェイ計算ロジックの使い分け: 6 制約 matrix は期初累積純資産÷ monthlyBurn・投資余力は期末累積純資産÷ monthlyBurn・月 burn = (固定費 + 役員報酬 + 法人社保) / 12 に変更 (旧 v1.x の固定費のみは廃止・教科書的ランウェイ概念に整合) (6) F-57 cockpit 全体への副次変更: 前回選択シナリオ/プリセットの自動復元 (f57_cockpit_last_selected_scenario_v1 / f57_cockpit_last_selected_assumption_v1 localStorage キーを ScenarioBar.tsx / AssumptionsBar.tsx に追加・「前提 × シナリオ」マトリクス試算の継続性を担保) 注意事項追記 (F-58): #14 binding 制約入れ替わりは副機能でのみ発生 / #15 月 burn 計算式変更 (v1.2 → v2.0) / #16 TDZ エラー (useMemo + const arrow ヘルパー後置) 人間検討事項追加 (F-58): #13 配置原則 (現状把握 vs 目標逆算 の境界) / #14 適用開始年 default 選定 / #15 副機能の機能境界 / #16 F-67 マルチイヤーとの健全性診断ロジック共通化検討 v1.2 旧計画から廃止: MENU_DEFINITION 追加 / openRequiredRevenueSimulator HTML サイドバー entry / 98_sim_required_revenue 動的シート出力 (cockpit SPA 内パネルに統合) F-57 v2.2: Step 6.9 に Variables 自動復元の節を追加 + Step 6.9-extension (F-58 統合の概要 + 配置原則の明文化) を新設・cockpit を上から下に「現状把握 → 目標逆算」の流れとして構成する設計原則を確立 (今後の F-66 / F-67 等の cockpit 拡張機能の配置ルール)。「実装が spec を先行 → spec を整合追従」のパターン 2 例目 (F-57 v2.1 PR #395 + 本 F-58 v2.0)。docs-only PR で prod 自動デプロイへの影響なし。 |
| 2026-04-28 | dev_mas-057_solo_ceo_cockpit.md v2.1.1 / dev_mas-013_investment_simulation.md 冒頭コールアウト追加 / docs/_internal/daily_log/work_hours_summary.md (新設) | F-57 + F-13 法人住民税均等割を税法準拠 (常時加算) に修正完了 (PR #397)・spec を整合追従 + 稼働試算サマリー新設。閉ループ運用 1 時間以内で完走: ユーザー指摘 (2026-04-28 00:00 頃「実効税率 21.4% は低くないか」) → sub 側調査で Constants.TAX_RATES.localMinimumAnnual = 70000 定義済だが F-57 cockpit calc.ts で完全未計上・F-13 610_service_investment_analysis.js も「ミニマムモデル」(赤字時のみ加算) で実装されていることを発見 → 注意事項 #20 (f) として spec PR #396 で記録 (00:25 マージ) → main 側へ pbcopy で修正依頼 → main 側 PR #397 で実装修正完了 (00:41 マージ・commit 71be933) → 本 PR で sub 側 spec 解決済追従。PR #397 修正内容: (1) 300_ui/302_spa_bridge.js の bootstrap に localMinimumAnnual を追加配信、(2) webapp_client/src/cockpit/calc.ts で corporateTax 累進計算後に Math.round(localMinimumAnnual * monthsActive / 12) を常時加算 (Y1 短縮事業年度は monthsActive で月割按分)、(3) 600_report/610_service_investment_analysis.js の calcEffectiveTaxRate_ で黒字時にも minAnnual を加算、(4) docs/spec/sidebar_api.d.ts の F57CockpitBootstrap 型に localMinimumAnnual: number 追加。影響: 齋藤 Baseline (税引前 750 万・21.4% ブラケット) で実効税率 21.4% → 22.3% (+0.9pt)・法人税 160 万 → 167 万 / 累積 5 年で +35 万円の精緻化 / 赤字シナリオでも 7 万円の均等割が表示されるように修正 / F-13 NPV/IRR は均等割込みでやや厳しめに精緻化。spec 追従内容: F-57 spec 注意事項 #20 (f) を「✅ 同日 PR #397 で解決済」マーク化 + 変更履歴 v2.1.1 entry 追加。F-13 spec は冒頭にコールアウト追加 (本文 17 箇所の旧ロジック記述「赤字年のみ加算」の追従更新は別 PR で予定)。併せて稼働試算サマリー新設 (本来は別 PR #398 で先行マージ済): git log --all の commit 著者タイムスタンプ JST 変換ベースで 2026-03-17〜04-28 を集計 → 4h gap 連続セッション基準で総稼働 321.8h / 平日のみ 280.5h / 4 月平日 1 日平均 11.2h を算出。日次の開始/終了時刻表 38 行 + 集計方法 + 注意事項 + 更新方針を docs/_internal/daily_log/work_hours_summary.md に固定化。docs-only PR で prod 自動デプロイへの影響なし。 |
| 2026-04-28 | dev_mas-057_solo_ceo_cockpit.md v2.1 / TODO_future.md F-57 行 Step 6 完了反映 | F-57 Step 6 実装完了 (PR #394) ・spec を v2.1 として整合追従。spec v1.9 (PR #380) で「3 区分テーブル UI」のみ設計されていた Step 6 を、main 側で 33 コミットにわたり大幅拡張実装。Step 6.1〜6.15 に細分化: 3 区分テーブル基本 / Y1-Y5 単年タブ / webapp_client/src/cockpit/{AssumptionsPanel,AssumptionsStore,ScenarioBar,ScenarioStore,ThreeSectionTable}.tsx 5 ファイル。「失敗 → 教訓 → プロセス改善」の閉ループ運用 が「実装が spec を先行 → spec を整合追従」のパターンでも機能することを実証。docs-only PR で prod 自動デプロイへの影響なし。 |
| 2026-04-27 | TODO_future.md §1 実装状況サマリー + Phase 別/レイヤー別内訳更新 | 追加開発案件ページの全体サマリーを 2026-04-25 → 2026-04-27 時点に同期。①日付スタンプ更新: §1 タイトル "2026-04-25 時点" → "2026-04-27 時点"。②件数更新 (前回比 2026-04-25 → 2026-04-27): ✅ 完了 35 (変動なし・F-57 Phase 3 は MVP 完了行へ移行) / 🟡 MVP 完了 3→4 (F-57 Phase 3 完了 PR #379 で Phase 1.5 → Phase 3 全完了に昇格) / 📝 仕様書完了 45→47 (F-66 v1.1 GO PR #387/#389 + F-67 v1.2 PR #386/#388/#390) / 未着手 140→143 (F-68 補助金 P3 + F-69 HD/M&A P3 + S-72 規程ジェネレーター P1 — 全て RQ-036 派生 PR #390 で起票)。③Phase 別内訳 P2 行更新: 件数 71+ → 73+ / F-57 ステータスを "Phase 1.5 完了 2026-04-25 / Phase 2-3 未着手" → "🟡 Phase 3 完了 2026-04-27 PR #379" に修正 / F-67 (5 軸モデル仕様書 v1.2 完了) + S-72 (規程ジェネレーター) を追記。④Phase 別内訳 P3 行更新: 件数 27 → 30 / F-66 (配当ミックス v1.1 GO) + F-68 (補助金 P3 降格) + F-69 (HD/M&A P2→P3) を追記。⑤レイヤー別 Domain 行更新: 件数 48 → 51 / 主な案件に F-66 (449) / F-67 (451 / RQ-036 v1.2) / F-68 / F-69 / S-72 (452) を追記・F-12/F-42/F-44/F-48/F-49 実装完了除外を 2026-04-27 更新マークに変更。⑥レイヤー別合計: 140 → 143 件・F-66/F-67/F-68/F-69 + S-72 新規起票を反映。docs-only PR で prod 自動デプロイへの影響なし。 |
| 2026-04-27 | RQ-036_F67_actions_result.md Section 1 補完 | RQ-036 Section 1 (Gemini Advanced Deep Research 結果) を全文補完。PR #390 (F-67 v1.2) 時点では Section 1 はプレースホルダーだったが、main 側ユーザーが Gemini Advanced で取得した Deep Research 全文 (DR-1 〜 DR-20 アクション選定 + 6 軸モデル + マイクロ法人スキーム + レーマン方式 M&A 仲介手数料 + 福井県補助金 + システム実装要件) を共有 → 本 PR で 1.1 導入 / 1.2 主要 20 アクション表 / 1.3 マイクロ法人スキームコアロジック / 1.4 6 軸アーキテクチャ A-F / 1.5 実装要件 / 1.6 新規 F-XX 候補 (F-68/F-69/S-70) / 1.7 結論 の 7 サブセクションに整形。Section 3 Gemini Deep Think 精緻化との差分を「⚠️ 後続合成での扱い」コールアウトで明示: マイクロ法人 (DR-3) → F-70 棄却 / 6 軸 → 5 軸再編 / 公庫融資閾値 自己資本比率 → 債務償還年数 / F-68 P1 → P3 / F-69 P2 → P3 / S-70 → S-72 ID 振直し。Section 2 (Claude Opus 4.7 暫定合成) はプレースホルダー継続 (main 側履歴から後追い共有想定)。docs-only PR で prod 自動デプロイへの影響なし。 |
| 2026-04-27 | dev_mas-067_multiyear_planning_workspace.md v1.2 / RQ-036_F67_actions_result.md (新設) / research_prompts/README.md RQ-035/036 行追加 / TODO_future.md F-67 全面書換 + F-68/F-69 新規追加 + S-72 新設 / brd_solo_ceo_financial_navigator.md §5.3 v2.3 改訂 / docs/_config.json C.1.2.17 ナビ追加 | F-67 v1.2 (RQ-036 Claude 暫定合成 + Gemini 3 Pro Preview Deep Think 精緻化反映)。main 側ユーザーが Gemini Advanced Deep Research → Claude Opus 4.7 暫定合成 → 手元 Gemini Deep Think で批判的精緻化を実行し、当初 v1.0/1.1 の「アクション準備度 3 種 (採用 / 融資 / SaaS 投資)」を 5 軸モデル + 10 アクション + プログレッシブ・ディスクロージャー + ガードレール 10 件 + Section G 5 機能 に再編。主要変更: (1) 5 軸モデル: 🏦 Liquidity / 🛡️ Tax & Social / ⚔️ Scale / 💰 Accumulation / 🚪 Exit (退職金重複解消で 6→5 軸再編)。(2) v1 採用 10 アクション: A1 役員報酬 / A2 役員社宅 / A3 出張日当 / A4 親族役員化 (新規・F-66 配当とは独立扱い・税引前損金で即効性最強) / A5 小規模企業共済 / A6 経営セーフティ共済 (2024.10 改正出口パズル対応) / A7 少額減価償却特例 (年 300 万枠) / A8 業務委託活用 (フリーランス新法サイト負け検知必須) / A9 公庫融資準備 (閾値変更: 自己資本比率 → 債務償還年数 ≤ 10 年 + 現預金 ≥ 3 ヶ月) / A10 退職金制度 (5 年/19 年ルール対応) + 表示のみ A11 賃上げ税制 (1 人法人は構造的に対象外を🔴 明示)。(3) v1 で除外: インボイス・電帳法 (Day 1 法定要件) / SaaS 開発投資 (A7 に置換) / 補助金マッチング (F-68 P3 降格) / HD/M&A (F-69 P3) / マイクロ法人 (F-70 棄却・実質所得者課税で否認)。(4) プログレッシブ・ディスクロージャー (S1=Liquidity のみ → S2=+Tax&Social+Accumulation → S3=+Scale → S4=+Exit) で経営者メンタルモデル負荷最小化。(5) 循環参照解消: 最優先ポリシー A/B/C セレクター (A 手取り優先 = 齋藤 Baseline / B 信用優先 / C 出口優先)。(6) ガードレール 10 件 UI 表示 (新 Step 5): 各アクションの否認リスク文言を spec § にハードコード (定期同額給与逸脱 / 法定家賃 / カラ出張 / 名板貸し / 短期解約 / 30 万円超過 / フリーランス新法 / 資金使途違反 / 功績倍率)。(7) Section G 5 機能 (新 Step 6): G-1 フリーランス新法 60 日支払義務 vs 元請 90 日サイト枯渇検知 / G-2 退職控除 5 年/19 年ルール枠の食い合い / G-3 セーフティ共済出口パズル / G-4 社長稼働限界 (Burnout) メーター 100% 超🔴+A8 強制サジェスト / G-5 インボイス 2 割特例 2026/9 終了の崖検知。海外 FP&A SaaS 空白で差別化機会大。(8) 新規 03_sys_params キー 14 個 (旧 10 → 14): F67_DEBT_REDEMPTION_YEARS_MAX / F67_CASH_RUNWAY_MONTHS_MIN / F67_A1-A10 個別閾値 / F67_OPTIMIZATION_POLICY_DEFAULT / F67_BURNOUT_OCCUPANCY_RED_THRESHOLD / F67_INVOICE_TRANSITION_END_DATE 等。(9) React コンポーネント 5→7: GuardrailPanel + BurnoutMeter 追加 (Phase B)。Phase 規模拡大: B 3→4 週間 / C 2→3 週間 (実装規模約 1.5 倍)。TODO 連動: F-68 P1→P3 降格 / F-69 P2→P3 / S-72 規程ジェネレーター P1 起票 (旧提案 S-70 から ID 衝突回避で振直し・既存 S-70 = workType DDL 確認 → 次空き S-72 採用・failure_patterns #31 適用 2 例目) / F-70 マイクロ法人は棄却 (実質所得者課税)。BRD §5.3 v2.3 改訂: アクション準備度 3 種 → 5 軸モデル + 10 アクション + プログレッシブ・ディスクロージャー + 最優先ポリシー A/B/C・スコープマッピング表に S-72 / F-67 拡張機能追加。親族役員化 (A4) 帰属判断: 案 A 確定 = F-67 単独で扱う (F-66 配当 spec はスコープ外維持・main 側議論済)。RQ-036 ファイル構成: Section 1 Deep Research 結果 (プレースホルダー・main 側履歴から提供想定) / Section 2 Claude 暫定合成 (プレースホルダー・同) / Section 3 Gemini Deep Think 精緻化 A-G (本 PR 同梱・全文)。docs-only PR で prod 自動デプロイへの影響なし。「失敗 → 教訓 → プロセス改善 → 品質保証」の閉ループ運用 が外部 LLM 多重合成 (Deep Research + Claude + Gemini Deep Think) でも機能することを実証。 |
| 2026-04-27 | dev_mas-066_dividend_mix_optimizer.md v1.1 / tasks/reviews/2026-04-27T11-48-58_gemini_review_f-66.md (新設) | F-66 v1.1 (Gemini レビュー WAIT → GO 反映)。scripts/4_review_specs_by_gemini.js で Gemini 3 Pro Preview + Deep Think レビュー実施し WAIT 判定 + 5 件指摘 (Critical 2 + Major 2 + Minor 1) のうち修正完了基準 4 件を反映 + Critical 1 を反証。Critical 1 (前提案件ステータス誤認) ✅反証: Gemini は「F-57 Phase 3 未着手」と判断したが、実際は PR #379 (commit c27b0a5・2026-04-27) で main マージ済。F-66 spec の前提案件「F-57 Phase 1/1.5/2/3(✅ 完了)」は正しい (誤認の根拠は TODO_future.md F-57 行内の概要本文に古い記述「Phase 2-3 未着手」が残存していたため・別 PR で TODO 整理予定)。Critical 2 (Infinity 非対称性) ✅修正: 注意事項 #10 の「Constants.DIVIDEND_TAX_BRACKETS に Infinity 含めない (Number.MAX_SAFE_INTEGER 使用)」アプローチを撤回。既存の INCOME_TAX_BRACKETS / TAX_RATES は upTo: Infinity を使用しており、本案件だけ別形式にすると failure_patterns #25 (並列実装対称性漏れ) 違反。✅ 採用方式: 既存定数と完全に同形式 (upTo: Infinity) を維持 + Infinity null 化対策は 300_ui/302_spa_bridge.js の _scrubInfinityForJSON_(dto) 境界処理 (F-67 v1.1 で確立した同パターン) で runDividendMixSimulation がクライアントへ返す直前に置換。Major 1 (UI 統合 A/B 並列残置) ✅修正: 案 A (F-57 cockpit に 4 つ目ドロップダウン追加) に確定し、F66_UI_INTEGRATION_MODE キー削除 (5 キー → 4 キー)。Step 5 / 影響範囲 / 人間検討事項 / 実装プロンプトの分岐記述を全て削除し単一仕様化。Major 2 (基礎控除逓減ロジック欠如) ✅修正: calcDividendTax の input 仕様を「課税所得 (taxableIncomeOther)」から「給与収入額 (salaryIncome) + 配当収入額」に変更し、内部で総合課税ロジック (給与所得控除 + 基礎控除逓減 (合計所得 2,400 万超で逓減・3,000 万超で消失) + 社保控除) を再計算する設計に修正。_calcSalaryIncomeAfterDeduction_ / _calcBasicDeduction_ 内部ヘルパ追加。Minor (BS データ取得経路) ✅対応: Step 4 validateDistributableAmount 直前に BS データ取得経路マッピング表追加 (retainedEarnings / capitalSurplusOther / treasuryStock / previousDividends / fiscalYearCount の各取得元 + BalanceSheetReader を 600_report 層に新設する設計)。合格判定: WAIT → GO に昇格 (Critical 1 反証 + 残り 4 件全て修正完了)。「失敗 → 教訓 → プロセス改善 → 品質保証」の閉ループ運用 が scripts/4_review_specs_by_gemini.js で機能することを実証 (F-67 v1.1 PR #388 に続く 2 例目)。docs-only PR で prod 自動デプロイへの影響なし。 |
| 2026-04-27 | dev_mas-067_multiyear_planning_workspace.md v1.1 / tasks/reviews/2026-04-27T11-34-00_gemini_review_f-67.md (新設) | F-67 v1.1 (Gemini レビュー CONDITIONAL GO 反映)。scripts/4_review_specs_by_gemini.js で Gemini 3 Pro Preview + Deep Think レビュー実施し CONDITIONAL GO 指摘 5 件 (Critical 2 + Major 2 + Minor 1) のうち修正完了基準 3 件を反映。Critical 1 (架空関数名): エッジケース 17 / 実装プロンプト Phase D の _callVertexGeminiForF67Suggest_ を 既存の Utils.callGeminiForReasoningOnVertex_ (000_infra/004_utils.js) に修正・failure_patterns #18-#20 違反を解消。Critical 2 (Infinity scrub の誤認): 注意事項 #9 の「定数自体を Number.MAX_SAFE_INTEGER に書換える」アプローチを撤回 (法人税計算等の他モジュール挙動を破壊するため不可)。代わりに runMultiyearSimulation がクライアントへ返す直前の _scrubInfinityForJSON_(dto) 境界処理 に修正。Major 1 (車輪の再発明): _loadParamsFromSysParams_ 内部ヘルパを廃止し直接 Constants.getParam を呼出。Major 2 (多重ロード懸念) 併せて反映: simulateMultiyear 冒頭で必要なマスタ・パラメータを一度キャッシュし ctx Context オブジェクトとして各エンジンへ DI する設計 (SocialInsuranceTierRepository.findAsMap / PerDiemPolicyRepository.findAsMap / Constants.INCOME_TAX_BRACKETS / Constants.TAX_RATES を 1 度だけロード)。Minor (資本金固定の将来拡張) は v1.0 制約として維持 (Phase A スコープ)。合格判定: Gemini CONDITIONAL GO 修正完了基準 3 点を全て満たし、実装着手可能状態に昇格。レビューファイル tasks/reviews/2026-04-27T11-34-00_gemini_review_f-67.md (3,196 文字) を tasks/reviews/ 配下に保管 + 関連ドキュメントセクションからリンク。「失敗 → 教訓 → プロセス改善」の閉ループ運用 が scripts/4_review_specs_by_gemini.js でも機能することを実証 (PR #383 failure_patterns #31 → PR #384 dev_spec_prompt_template v1.10 → PR #386 F-67 v1.0 → 本 PR Gemini レビュー反映 v1.1)。docs-only PR で prod 自動デプロイへの影響なし。 |
| 2026-04-27 | dev_mas-066_dividend_mix_optimizer.md (新設・v1.0 約 700 行) / TODO_future.md F-66 ステータス更新 / docs/_config.json §E.5.45 ナビ追加 | F-66 配当ミックス最適化仕様書 v1.0 起草完了。task_F-66.md (PR #383・手動骨格 416 行) + task_F-66.gemini.md (PR #385・Gemini 3 Pro Preview + Deep Think 5,185 文字) の 2 つの input を統合し、Claude Opus 4.7 (1M context) で本体起草。14 セクション全網羅: 概要 + 目的 + 現在のコード (F-57 PersonalTaxEngine 利用関数 + 既存定数構造 + F-61 v1.1 相互参照 + F-57 Phase 3 SPA 基盤の流用) + 修正方針 6 Step (配当税制パラメータ整備 / calcDividendTax + 配当控除 / 3 軸最適化スキャン 1,232 セル / 分配可能額バリデーション会社法 461 条準拠 / UI 統合案 A vs 案 B / F-61/F-58/F-67 連携) + 影響範囲 + 注意事項 14 件 + エッジケース 15 件 + 実データ検証 5 本 + 関連ドキュメント 15 件 + 人間検討事項 12 件 + 実装プロンプト + 推奨実行モデル + 変更履歴。failure_patterns #31 対策の継続適用: F-67 v1.0 (PR #386) に続き、本案件起票時にも Phase 1-A-pre (番号衝突チェック・dev_spec_prompt_template v1.10) を適用済。実装着手は F-57 Step 6 + F-58 Step 5 完了後を推奨 (UI フレーム安定後に配当軸を追加)。今回 Gemini Deep Think レビュー (scripts/4_review_specs_by_gemini.js) は実施せず (任意・別 PR で実施可能)。docs-only PR で prod 自動デプロイへの影響なし。 |
| 2026-04-27 | dev_mas-067_multiyear_planning_workspace.md (新設・v1.0 約 700 行) / TODO_future.md F-67 ステータス更新 / docs/_config.json §E.5.44 ナビ追加 | F-67 マルチイヤー計画ワークスペース仕様書 v1.0 起草完了。PR #384 で起票した F-67 (TODO 行) + task_F-67.md (手動骨格 460 行) を input として、Claude Opus 4.7 (1M context) で本体起草。14 セクション全網羅: 概要 + 目的 + 現在のコード (連携先 6 案件の利用関数表 + 400_domain 採番状況 + F-57 Phase 3 SPA 基盤の流用) + 修正方針 4 Step (マルチイヤー入力 / B/S 引継ぎ / ステージ準備度ダッシュボード / サジェストエンジン) + 影響範囲 + 注意事項 14 件 + エッジケース 18 件 + 実データ検証 5 本 + 関連ドキュメント 19 件 + 人間検討事項 14 件 + Phase 分割計画 A-D + 実装プロンプト + 推奨実行モデル + 変更履歴。3 cockpit 並列提供方針確定 (F-57 単年 / F-67 マルチイヤー / F-59 AI 自動)。failure_patterns #31 対策の初回適用事例として、本案件起票時に Phase 1-A-pre (番号衝突チェック・dev_spec_prompt_template v1.10) を適用済 (F-67 が次空き番号であることを git fetch origin main + grep で事前確認)。実装着手は F-57 Step 6 + F-58 Step 5 + F-66 仕様書 v1.0 完成後を推奨 (UI フレーム安定 + 配当軸統合の判断材料が揃ってから)。今回のセッションで Gemini Deep Think (task_F-67.gemini.md 生成) は時間考慮でスキップし、手動 task_F-67.md (PR #384 起草版) を直接 input として仕様書本体を起草する経路を採用 (ユーザー指示)。docs-only PR で prod 自動デプロイへの影響なし。 |
| 2026-04-27 | TODO_future.md F-67 行新設 / brd_solo_ceo_financial_navigator.md §5.1 シナリオ F-G + §5.3 ライフステージ + §6.1 マルチイヤー UI 戦略 (v2.2) / tasks/prompts/task_F-67.md (新設) | F-67 マルチイヤー計画ワークスペース + ステージ準備度ダッシュボードを新規起票 + BRD §5/§6 v2.2 改訂 + task_F-67.md 起草。起票背景: 2026-04-27 main 側 F-57 Phase 3 実装 (PR #379) 後の振り返りで「Solo-CEO Financial Cockpit で入力を 1 年目・2 年目みたいに増やして、2 年目は 1 年目の計画 PL/BS/CF を引き継ぎ、各年でランウェイなど評価して、人を雇う準備ができたのか・融資を申し込める準備ができたのか・SaaS ビジネスのためのプロジェクト開発に投資する準備ができたのか等を可視化したい」という要望から派生。既存案件との空白領域: F-08 (単年ランウェイ) / F-11 (単一ドライバー What-If) / F-58 (単年必要年商) / F-57 (単年コックピット) では複数年自由入力 + B/S 引継ぎ + ステージ可視化を扱えない。F-59 (AI 自動オーケストレーション・LangGraph) とは別物で、人間駆動の静的・俯瞰的ワークスペースとして独立 cockpit (?view=multiyear_spa) を実装する設計。確定済論点 5 件: ①F-59 と完全分離 / ②計画期間 5 年スタート + 内部的に N 年汎用化 (10 年延長可能) / ③ステージ粒度 = ライフステージ S1-S4 + アクション準備度 3 種 (採用 / 融資 / SaaS 投資) の 2 軸併用 / ④UI 配置 = 独立 cockpit + F-57 から「📅 マルチイヤー計画」リンク導線 / ⑤着手順序 = F-57 Step 6 → F-58 Step 5 → F-66 配当 → F-67 マルチイヤー。改訂内容 3 件: (1) TODO_future.md F-67 行新設 (P2 ★★★・仕様書未着手・F-66 直下に挿入・新規ファイル想定 400_domain/451_multiyear_planner.js + 5 React コンポーネント・03_sys_params に F67_* 10 キー追加・Phase A-D 段階リリース可・Deep Research 推奨論点 10 件 + Claude 追記検討事項 5 件 を網羅) / (2) BRD v2.2 改訂: §5.1 シナリオ F (5 カ年マルチイヤー計画) + シナリオ G (ステージ準備度未達時のサジェスト経路) を追加 / §5.3 ライフステージ S1-S4 + アクション準備度 3 種を新設 (renumber 副作用回避のため §5 内に追加・F-57/F-58/F-66/F-67/S-69/F-65 のスコープマッピング表を含む) / §6.1 マルチイヤー UI 戦略を新設 (F-57 単年 + F-67 マルチイヤー + F-59 AI 自動 の 3 cockpit 並列提供方針・遷移導線・設計原則の差別化) / (3) tasks/prompts/task_F-67.md 新規作成 (手動骨格): F-43/F-66 形式 (Phase 1 設計 + Phase 2 出力) を踏襲し、F-67 の規模拡大 (4 機能 + 4 Phase) に対応して Phase 1 を 8 ステップ・Phase 2 を 6 Step に拡張。連携先 5 案件 (F-08/F-11/F-13/F-48/F-58) の API 確認を Phase 1 Step 1-3 で集中実施する設計。tasks/prompts/task_F-66.md との差別化ポイントを補足セクションに明記。ID 採番衝突防止チェック適用: dev_spec_prompt_template.md v1.10 (2026-04-27 PR #383 で確立) の Phase 1-A-pre を適用し、git fetch origin main + grep '| F-[0-9]+ |' で F-67 が次空き番号であることを事前確認 (failure_patterns #31 対策の初回適用事例)。着手条件: F-57 Step 6 + F-58 Step 5 + F-66 仕様書完了後を推奨 (UI フレーム安定 + 配当軸統合の判断材料が揃ってから)。docs-only PR で prod 自動デプロイへの影響なし。 |
| 2026-04-27 | tasks/prompts/task_F-66.md (新設) / failure_patterns.md #31 新設 / dev_spec_prompt_template.md v1.10 | F-66 配当ミックス最適化の起票プロンプト + 番号衝突防止の教訓化(PR #382 の後続 PR・任意項目 2 件を実施)。(1) tasks/prompts/task_F-66.md 新規作成: F-43 形式 (Phase 1 設計 7 ステップ + Phase 2 出力 5 Step) を踏襲し、F-66 配当ミックス最適化の仕様書 v1.0 を Claude Opus 4.7 で起こすための完全な指示書を手動起草。Phase 1 では (a) BRD §3.2/§4.2/§5.1/§8 v2.1 改訂内容の読込、(b) F-57 ドメインエンジン継承可否、(c) 会社法 461 条「分配可能額」制約調査、(d) F-61 Cash ETR v1.1 連携確認、(e) F-58 必要年商連動可能性、(f) S-69 重複可能性確認 を網羅。Phase 2 では概要テーブル + Step 1-6 修正方針 + 影響範囲 + 注意事項 12 件 + エッジケース 13-15 件 + 実データ検証(齋藤拡張版・年商 5,000 万 + 配当 500 万)+ 関連ドキュメント + 人間検討事項 10-12 件 + 実装プロンプト + 推奨実行モデル + 変更履歴 v0.1-v1.0 を生成する 5 Step 構造。scripts/1_generate_prompts_gemini.js での Gemini 経由生成は API キー設定 + コスト発生のため、まず手動骨格を採用(Gemini 経由は将来の task_F-66.gemini.md で並設可能)。(2) failure_patterns.md #31 新設: 「案件 ID 採番衝突 (TODO_future.md 同期遅延)」を独立カテゴリ「並列実装・並行開発の同期失敗 (#25, #31)」として新規セクション化。F-60 → F-66 振り直し事例を根本原因 + 対策 + チェックリスト付きで記録。(3) dev_spec_prompt_template.md v1.10 改訂: Phase 1-A 直前に「Phase 1-A-pre: 案件 ID 重複チェック」前処理を新設。git fetch origin main → grep → gh pr list → 次空き番号確定 の 4 ステップを必須化(新規案件起票時のみ・既存案件リビジョン作業では不要)。「失敗 → 教訓 → プロセス改善の閉ループ運用」の一例として確立。docs-only PR で prod 自動デプロイへの影響なし。 |
| 2026-04-27 | TODO_future.md F-66 行新設 / brd_solo_ceo_financial_navigator.md §3.2 / §4.2 / §5.1 / §8 改訂 (v2.1) / dev_mas-061_cash_etr_tracking.md v1.1 | F-66 配当ミックス最適化を新規起票 + BRD §3.2 デッドヒート 3 ルート拡張 + F-61 Cash ETR 節税優先順位サジェスト連携追加。起票背景: 2026-04-27 main 側 F-57 Phase 3 実装 (PR #379) 完了後の振り返りで「F-57/F-58 は給与系(報酬 + 賞与)のみで配当 (株式分配) を扱っていない・特に年収 1,500 万超のゾーンで配当ミックスが手取り最大化に有利」気付きから sub 側に依頼。ID 採番衝突教訓: 当初 main 側プロンプトは「F-60 として起票」だったが F-60 は既に「組織構成シミュレーター」(2026-04-25 起票)として確定使用済 → F-66 に振り直し。改訂内容 4 件: (1) TODO_future.md F-66 行新設 (P3 ★★・仕様書未着手・2026-04-27 起票・F-57 Phase 1/1.5/2/3 完了を前提・新規ファイル想定 400_domain/449_dividend_mix_optimizer.js + Constants.DIVIDEND_TAX_BRACKETS 定数 + Deep Research 推奨論点 10 件 + Claude 追記検討事項 5 件 を網羅) / (2) BRD §3.2 改訂 (デッドヒート 2 ルート → 3 ルート比較 に拡張・ルート A 役員報酬 / B 役員賞与 / C 株式配当) / (3) BRD §4.2 改訂 (第 3 階層パラメータ「配当年額・配当ミックス比率」追加・F-57 は給与系のみ・F-66 で配当軸を扱うスコープ分離明記) / (4) BRD §5.1 シナリオ E 追加 (年商 5,000 万 + 役員報酬 1,000 万 + 配当 500 万 vs 全額役員報酬パターンの 5 カ年合算純資産比較・1 期目決算後の利益剰余金確定 + 会社法 461 条分配可能額制約) / (5) BRD §8 齋藤 Baseline 拡張 (現フェーズ年収 600-1,000 万帯では F-66 で扱う・配当ミックスの効果が大きく出るのは年収 1,500 万超・齋藤 Baseline では優先度低・将来課題と明記) / (6) F-61 Cash ETR spec v1.1 改訂 (Step 5 §6-3 合法節税優先順位サジェスト連携策テーブルに 配当ミックス最適化 (F-66 起票) を新規追加・配当ルートの特性 (社保ゼロ + 配当控除 10%/12.8% + 法人税後利益から支払 / 損金 NG + 会社法 461 条分配可能額制約 + 株主総会決議事務工数考慮) を効果列に明記)。着手条件: F-58 Step 5 (UI/SPA 連携) 完了後 + F-57 Step 6 (3 区分テーブル) 完了後を推奨 (UI フレームの安定後に配当軸を追加)。今後の展開: tasks/prompts/task_F-66.md を scripts/1_generate_prompts_gemini.js で Gemini 3 Pro Preview + Deep Think で起こし、本依頼内容と論点 14 件を Input として task_F-66.md を生成する流れ (任意・別 PR で対応)。docs-only PR で prod 自動デプロイへの影響なし。 |
| 2026-04-27 | dev_mas-057_solo_ceo_cockpit.md v2.0 / TODO_future.md F-57 行 / failure_patterns.md #29 + #30 新設 | F-57 Phase 3 実装完了 (PR #379) の spec 整合追従反映 (v2.0 milestone)。F-57 Phase 3 (Solo-CEO Visual Financial Cockpit) を Vite+React SPA として実装完了し main マージ済 (commit c27b0a5)。実装中に v1.8 仕様書から逸脱した箇所を v2.0 として整合させる包括追従。(a) Phase 3 完了ステータス反映: 概要テーブル「前提依存」→「✅ 全 Phase 実装完了」+ 「実装ステータス」行新設 (Phase 1/1.5/2/3 全完了)。(b) 03_sys_params 表更新: 新規 3 キー (F57_INSIGHT_ENABLED / F57_GEMINI_MODEL_OVERRIDE_PRO / F57_GEMINI_MODEL_OVERRIDE_FLASH) + default 変更 2 件 (F57_INSIGHT_AI_MODEL: CLAUDE_SONNET → GEMINI_PRO / F57_INSIGHT_TRIGGER_MODE: ONCHANGE_2SEC → EXPLICIT_BUTTON)。Vertex AI Anthropic Claude quota 申請中 + コスト防衛・誤クリック防止の理由。(c) 注意事項 #16-#18 新設: V8→Java シリアライズ Infinity / NaN silent null + Vertex AI Gemini 3 系 dev 未有効化 + deployment ID 二重管理リスク (Phase 3 実装中の実機検出ナレッジ)。(d) エッジケース #18-#21 新設 (注意事項由来): bootstrap Infinity / Gemini モデル 404 / UrlFetchApp 帯域幅枯渇 / Web App OAuth 未認可。(e) 検討事項 #10「クライアント側ロジック二重実装」を ✅ 解決済マーク: webapp_client/scripts/sync-engines.mjs で window 露出方式 (b) を採用・SSoT は 400_domain/ 維持・webapp_client/src/engines/ は .gitignore 化・TypeScript 複製ゼロ実現。(f) failure_patterns.md #29 + #30 新設: #29 google.script.run V8→Java シリアライズの silent null (withFailureHandler 不発・GAS エディタ実行時は気づかない致命的落とし穴・対策 + 切分テクニック 4 段階) / #30 Vertex AI preview モデルは個別有効化必須 (Model Garden で Enable + 48h 課金履歴経過必要)。「GAS マニフェスト・外部 API 仕様変動」グループ を #26-#28 → #26-#30 に拡張。(g) TODO_future.md F-57 行更新: ステータス「Phase 1.5 完了 |
| 2026-04-27 | dev_mas-057_solo_ceo_cockpit.md v1.9 | F-57 Phase 3 Step 6 新設「個人 / 法人 / 合計 の 3 区分テーブル UI」。経営者指摘「サンキーは直感的だが数字としてわかりづらい・改善するための情報には利用しにくい」を受け、サンキーダイアグラムの補完として主要表示となる 3 区分テーブルを設計。4 グループ × 3 列構造: 収入 / 👤 個人負担合計 (所得税 + 住民税 + 健保本人 + 厚年本人) / 🏢 法人負担合計 (法人社保 + 固定費 + 法人税) / 🔄 法人→個人移転 / 💰 手取り (フロー) / 🏦 純資産 (ストック)。設計原則: 「誰が負担するか」軸でグループ化 (F-57 BRD のデッドヒート分析と整合) + 2 階層展開構造 (サマリー 5 行 / 詳細 12 行) + 数値精度 1 万円単位 1 桁表示 + Step 4 AI インサイトと連動した改善示唆。サンキー vs 3 区分テーブルの使い分け: サンキーは「概観タブ」として補助的に残し、主要 UI は 3 区分テーブルに変更 (Step 5 の位置付けも「概観タブ」に再定義)。既存 Step 6 (MENU_DEFINITION への追加) は Step 7 にリネーム。F-58 / F-61 / S-69 との連携も明記。今後の方針: 「一つ一つ改善していく」スタイルで、次は感度分析テーブル / アクションカード等を順次追加検討 (v2.0 候補)。docs-only PR で prod 自動デプロイへの影響なし。 |
| 2026-04-27 | biz/financial_metrics_guide.md (新設) / docs/_config.json §C.5.8-C.5.10 ナビ追加 | 財務評価指標ガイド (経営者向け統合 SSoT・約 600 行) を新設。F-03 / F-57 / F-58 / F-61 / F-62 / F-63 / S-69 / N-42 等の各 spec に分散している約 20 指標を 1 ページに統合したリファレンス。2026-04-27 セッションで経営者と Step 1-7 形式で対話的に整理した内容を SSoT 化。14 セクション構成: §1 全体地図 (5 カテゴリ) / §2 P/L 5 段階利益 (土台) / §3 収益性 / §4 安全性 / §5 効率性 / §6 税務最適性 / §7 個人/法人統合 (デッドヒート + 標準報酬月額の壁 + BRD §5 シナリオ A-D) / §8 統合運用 (月次 30 分レビューフロー + アラート連鎖 3 パターン) / §9 全 20 指標一覧 (Tier 1-3 優先度) / §10 信号機閾値リファレンス / §11 関連 spec / §12 用語集 / §13 卒業後発展課題 / §14 変更履歴。Tier 1 (毎月見る・8 件): ランウェイ / 営業利益率 / 労働分配率 / 留保率 / Cash ETR / 当期純利益 / 稼働率 / 営業外損益率。Tier 2 (四半期・6 件) / Tier 3 (年次・6 件)。商用化時の顧客向け説明資料の起点としても活用。ナビ登録: §C.5 セクションに 3 件追加 (C.5.8 pricing_strategy / C.5.9 pl_metrics / C.5.10 financial_metrics_guide) — 既存 2 戦略メモ (pricing_strategy_rule_of_three.md / pl_metrics_non_operating_strategy.md) も従来 nav 未登録だったため併せて登録。docs-only PR で prod 自動デプロイへの影響なし。 |
| 2026-04-27 | dev_mas-057_solo_ceo_cockpit.md v1.8 / dev_mas-058_required_revenue_solver.md / brd_solo_ceo_financial_navigator.md §6 / TODO_future.md F-57/F-58/F-59 行 | F-57 / F-58 / BRD / TODO のスライダー言及一括書換 (46 箇所) — ai_agent_tips.md §7 (2026-04-25 確定) UX 方針の積み残し追従。F-57 Phase 2 完了 (PR #360) 後に書換タイミングをスキップしていた「スライダー禁止・離散単位ドロップダウン優先」UX 方針を主要 spec 本体に反映。書換内訳: BRD 6 箇所(§3.1 中核ロジック表現 / §4 年収定義 / §6 UX 戦略の 2 段ドロップダウン化)/ F-57 spec 30 箇所(概要 / 目的 / Phase 3 セクション全体 / パラメータ表 / 注意事項 / エッジケース / 人間検討事項 / 実装プロンプト / 推奨実行モデル)/ F-58 spec 3 箇所(後続連携 / Phase 3 統合方法 / 人間検討事項)/ TODO 7 箇所(F-57 行内 5 箇所・F-58 行内 1 箇所・F-59 行内 2 箇所・§FP&A ギャップ分析の感度分析記述)。F57_INCOME_INPUT_MODE の default を SLIDER → DROPDOWN_DISCRETE に変更、SLIDER モードは廃止予定・互換用のみ残置と明記。F57_INSIGHT_TRIGGER_MODE を ONMOUSEUP_2SEC → ONCHANGE_2SEC にリネーム。維持された設計: (a) クライアントサイド計算(v1.1 Critical 1・GAS 通信レイテンシ排除はドロップダウンでも有効)/ (b) サンキーダイアグラム(離散値の流量可視化用途で別概念・ai_agent_tips.md §7 明記)。推奨ドロップダウン粒度: 年収 50-100 万 / 月額 5 万(標準報酬月額等級境界整合) / 賞与 50 万 / 原価率 5% / 稼働月 10-12 のみ / 固定費 10 万 / 社宅負担率 10% / 共済月 1 万 / 採用人員 1 人 / 採用タイミング 月。±ボタン併用可。廃止理由(再掲・ai_agent_tips.md §7 より): ①ドラッグ中再計算のパフォーマンス懸念 / ②GAS クォータ消費 / ③一人社長の意思決定では離散単位の方が判断しやすい(年収 600 vs 601 万に意味なし)/ ④標準報酬月額等級が離散のため整合性高い。履歴保護: F-57 spec v1.0-v1.7 / F-56 / N-56 v1.x の各 changelog 行と tasks/reviews/ 配下 Gemini レビュー記録に含まれる「スライダー」記述は履歴のため書き換えない。F-57 spec に v1.8 エントリ追加。docs-only 改訂で prod 自動デプロイへの影響なし。grep スライダー 件数: 書換前 46 → 書換後 13(うち F-57 spec の 11 は政策説明 + v1.0-v1.7 changelog 履歴 + 廃止モード互換説明、BRD の 1 は廃止理由列挙、TODO の 0 件)。 |
| 2026-04-27 | dev_mas-232_sidebar_spa.md v1.4 / failure_patterns.md #28 新設 | N-56 Stage 2 dev 投入時のサイドバー初期化エラーを受けた getInitialStateForSpa_ → getInitialStateForSpa リネーム反映(main 側 PR #372 / commit da1e549 でマージ済)。GAS 仕様で末尾アンダースコア _ の関数は private 扱いとなり google.script.run から呼び出せないことが判明し、SPA サイドバーが「google.script.run.getInitialStateForSpa_ is not a function」で起動不能だった。ドキュメント側追従: (a) dev_mas-232_sidebar_spa.md v1.4 で現在参照 14 箇所(型定義 / 関数定義 / 影響範囲 / 注意事項 / エッジケース 2 件 / 性能目標 2 件 / 実装プロンプト 4 件)を一括リネーム、(b) failure_patterns.md に新規 #28「GAS 末尾 _ = private、google.script.run から呼べない」を追加(カテゴリ「GAS マニフェスト・外部 API 仕様変動」グループに #26/#27 と並列配置)、(c) Step 5 / 注意事項 #1 / 実装プロンプト failure_patterns チェックから #28 を参照するクロスリンク追加。規約化: 「クライアント呼び出しを伴う GAS 関数(google.script.run / doGet / doPost 経由)は末尾 _ を付けない」を failure_patterns.md 教訓サマリーに追記。v1.1〜v1.3 changelog 履歴行は当時の名称(末尾 _ あり)をそのまま保持(履歴用引用のため)。本 PR は docs-only 改訂で prod 自動デプロイには影響なし。grep getInitialStateForSpa_ の現在参照ヒット数 0 件を verify 済(履歴引用 3 件のみ残存)。 |
| 2026-04-26 | TODO_future.md §5 Out of Scope に F-64/F-65 派生起票 + X-02/X-03 にクロスリファレンス | F-64 多通貨対応・F-65 連結会計を §5 Out of Scope に派生案件として起票。F-63 営業外損益指標拡張の戦略メモ §9(深掘り論点)で言及した「為替差損益が出始めた時の処理」「関連会社設立時の指標再設計」を将来 TODO として独立明示。①F-64 多通貨対応・為替差損益処理(X-02 の派生): 起票トリガー = 海外顧客 1 件目契約 / F-63 為替差損益検知 / GCP 商用化フェーズ英語版 SaaS 提供時。F-63 → F-64 の段階移行設計。②F-65 連結会計・関連会社設立時の指標再設計(X-03 の派生): 起票トリガー = 関連会社設立検討 / F-63 持分法投資検知 / SZ-3 → SZ-4 遷移時の本格 ERP 移行前の中間段階。F-63 v2 事業利益率昇格 → F-65 完全連結の段階移行設計。③X-02/X-03 にクロスリファレンス追加: 既存の対象外マクロ宣言(旧 PRD §OUT 由来)と新規 F-64/F-65 詳細実装単位の対応関係を明示(マクロ→ミクロの 2 階層管理)。④起票方針: ユーザー指示「F-64/F-65 を起票してスコープ外案件にしておいて」を受け、§3 メインテーブルの未着手カウントには加えず §5 Out of Scope として登録(既存対象外案件パターン踏襲)。F-XX ID 採番は保持し、ユーザーの戦略思考としての「F-64/F-65 が将来昇格候補」位置付けを明確化。⑤件数: 未着手カウントは変動なし(F-64/F-65 は対象外管理)。Out of Scope 表は X-01〜X-25(変動なし)+ F-64/F-65(+2)の構成へ。⑥起票経緯: 2026-04-26 F-62/F-63 の戦略メモ作成時に「深掘り論点(将来 TODO 候補)」として明記した F-64/F-65 を、ユーザー指示で正式起票(対象外管理)。F-62/F-63 仕様書から「将来連動候補」として参照可能化。 |
| 2026-04-26 | docs/_internal/biz/pricing_strategy_rule_of_three.md (新設) / docs/_internal/biz/pl_metrics_non_operating_strategy.md (新設) / TODO_future.md F-62/F-63 行新設 / use_cases.md v1.4 OP-X8 追加 | F-62 PSF プロフィタビリティ指標拡張 + F-63 P/L 営業外損益指標拡張を新規起票 + 戦略メモ 2 本を SSoT 化 + use_cases.md OP-X8 追加(P/L 末尾拡張ブロックの統合運用)。F-24 BEP セクション(P/L 末尾拡張の前例)と並ぶ 3 つ目・4 つ目の P/L 拡張ブロックとして 2 案件を独立起票。①F-62 PSF プロフィタビリティ指標拡張: Rule of Three(時間単価×3 倍)の構造分解 + ブティック実効回収モデル(稼働率 40-55% 想定)+ 価値ベース課金移行可視化(6-10 倍相当利益率)。新規 400_domain/449_psf_profitability_engine.js。連携: F-03/F-24/F-51/F-43/F-29/N-42/S-09。前提: N-42 タイムトラッキング着手後に F-62 着手可能。②F-63 P/L 営業外損益指標拡張: 営業外損益率(経常 − 営業)の異常検知 + Interest Coverage Ratio の段階的昇格機構(v1 営業外損益率のみ → v1.1 ICR 基本版 → v1.2 ICR 厳密版 → v2 事業利益率 + 財務収支比率 + 営業外損益依存度)+ 評価の 3 パターン診断(経常 > 営業 / < / =)。新規 400_domain/450_pl_non_operating_engine.js。連携: F-03/F-08/F-17/S-01/F-58/F-24/F-62。前提依存揃っているため即時着手可能(v1 のみなら短期実装可)。③戦略メモ 2 本を docs/_internal/biz/ 配下に新設: 経営者本人の 2026-04-25 分析テキスト(Rule of Three の構造論 + 営業外損益 5 指標の優先順位)を整形し戦略 SSoT 化。F-62/F-63 仕様書から根拠資料として参照する設計。④use_cases.md OP-X8 追加: 月次決算後の P/L 拡張指標レビュー(F-62 + F-63 統合)を随時オペとして新設。判断基準・異常時対応・パターン診断コメント生成を網羅。⑤深掘り論点(将来 TODO 候補・本 PR では起票せず): F-64 多通貨対応(為替差損益処理・SaaS 海外展開時)/ F-65 連結会計(関連会社設立時の指標再設計・SZ-3〜SZ-4)。⑥起票経緯: 2026-04-25 ユーザー分析「PL に Rule of Three の倍率と営業外損益指標を追加したい・前者はブティックでは構造が崩れやすいので価値ベース移行可視化と組合せる・後者は段階的昇格機構で公庫融資フェーズに対応」を受け、F-49/F-41/S-69 等の個別税務最適化と並列で「価格戦略の P/L 可視化」「財務体質の異常検知」を独立領域として確認。件数更新: §1 未着手 138 → 140 / P2 69+ → 71+ / Domain 層 46 → 48 / レイヤー別合計 138 → 140 / 業務 OP 38 → 39(use_cases v1.3 → v1.4)。 |
| 2026-04-25 | TODO_future.md F-61 行新設 | F-61 キャッシュ実効税率(Cash ETR)トラッキング機能を新規起票(合法節税範囲・税負担抑制案サジェスト)。F-49 賃上げ税制控除(✅完了)/ F-41 繰越欠損金(📝)/ S-69 共済シミュレーター(📝)等の個別税務最適化が空白の統合指標領域として独立起票。①計算式の二系統実装: 系統 A (Cash Tax Rate・実納付日ベース) + 系統 B (Effective Tax Rate・帰属事業年度ベース)。系統 B をデフォルト・系統 A はドリルダウン。②分子の構成: 法人税国税 + 地方法人税 + 法人住民税 + 法人事業税 + 特別法人事業税。消費税(預り金)と源泉所得税(前払)は除外判定ロジック実装。③前提タスク: 勘定科目マスタへの「税目分類」属性追加 OR 別マスタ 12_mst_tax_classification 新設(DDL 拡張・実装着手前に Step 0)。④3 年移動平均(Normalized Cash ETR)で創業初期の単年揺らぎを吸収。⑤期ズレ補正で中間納付・確定納付の二期跨ぎを fiscalYearApplied 管理。⑥信号機表示(🟢<20% / 🟡20-30% / 🔴>30%)+ 繰越欠損金食い潰し翌期反動の警告アノテーション。⑦予測 Cash ETRで節税施策プラン(共済掛金・役員報酬・税額控除)から逆算シミュレーション。⑧合法節税の優先順位サジェスト: 賃上げ税制(F-49)/ R&D 税制(N-42 連携)/ 繰越欠損金(F-41)/ 小規模企業共済(S-69 月 7 万・年 84 万・全額所得控除)/ 経営セーフティ共済(S-69 月 20 万・年 240 万・全額損金)/ 役員報酬最適化(F-57/F-58)/ 社宅家賃按分(F-57)/ 出張日当(F-57)/ 法人 vs 個人デッドヒート(F-57 §3.2)/ 800 万境界軽減税率 / 設備投資減税(F-13 連携)。⑨ガードレール: 租税回避(同族会社の行為計算否認・法人税法 132 条)警告 / 国税通則法 68 条 重加算税相当の警告 / 過大役員給与認定リスク / 偽装請負リスク(F-60 連携)/ 海外移転価格・タックスヘイブンはスコープ外明示 / Disclaimer 必須。⑩新規実装: 400_domain/448_cash_etr_simulator.js(純粋関数)+ TaxPaymentRepository 追加 + tax_classification マスタ DDL + 03_sys_params に F61_* キー。⑪連携: F-03/F-08/F-40/F-41/F-49/S-69/N-42/F-57/F-58/F-59/F-60。⑫ID 採番判断: 既存 F-40/F-41/F-49 等の税務系案件が F-* 系列で運用済のため、新規プレフィックス(TAX-XX/FIN-XX)を切らず F-61 を採用(CLAUDE.md「案件 ID 採番時は既存を必ず grep で確認・衝突回避」遵守)。⑬期待される効果: 法定実効税率 34% との乖離可視化で節税設計の費用対効果を月次レビュー対象化 / 13 週 CF 予測・ランウェイ精度向上 / 繰越欠損金食い潰しの跳ね返りリスク事前察知 / 顧客向け管理会計支援サービスの差別化要素(汎用ライブラリとしてテンプレート資産化)。⑭起票経緯: 2026-04-25 軽量 FP&A 機能設計の検討中、ユーザー要望「キャッシュ実効税率(見込み)を試算、および抑制案を検討する機能も欲しい・あくまでも節税の範囲で」を受け独立起票。件数更新: §1 未着手 137 → 138 / P2 68+ → 69+ / Domain 層 45 → 46 / レイヤー別合計 137 → 138。 |
| 2026-04-25 | TODO_future.md F-60 行新設 / use_cases.md v1.3 OP-X7 追加 | F-60 組織構成シミュレーター(役員 / 従業員 / 業務委託の比率最適化)を新規起票 + use_cases.md OP-X7 追加。既存 F-12(人員逆算)/ F-44(ポジションテンプレ)/ F-48(採用 TCO)/ F-49(賃上げ税制)/ F-57(社保ロジック・代表役員のみ)はいずれも「個別の役職を扱う」前提で、「役員 / 従業員 / 業務委託の比率最適化」を扱う仕様は空白領域だった。新案件 F-60 として独立起票。①役職タイプ 7 種: 代表役員 / その他役員 / 正社員 / 契約社員 / 業務委託(個人)/ 業務委託(法人)/ アルバイト・パート。②非対称な税務 / リスク: 業務委託 = 外注費(社保なし)+ 偽装請負リスク + フリーランス新法(S-71 連動)/ 正社員 = 給与 + 社保 + 雇保 + 退職金引当 + 解雇規制リスク / 役員 = 役員報酬 + 法人社保 + 過大役員給与認定リスク。③出力: 3 段階推奨ミックス(保守型 / バランス型 / アグレッシブ型)+ コスト合計 / CF 影響 / 税務最適化指数(F-49 賃上げ + N-42 R&D 連動)/ リスクスコア / 必要年商(F-58 連携)。④新規実装案: 400_domain/447_workforce_mix_optimizer.js(純粋関数・組合せ最適化)+ 03_sys_params に F60_* キー追加。⑤前提依存: F-12/F-44/F-48/F-49 ✅完了 / F-58 📝完了 / S-71 📝完了 → F-58 実装後に着手可能・F-59 と並行起草可能。⑥use_cases.md OP-X7 追加: 随時オペとして「組織構成シミュレーション」シナリオを新設し、業務委託比率 > 70% で偽装請負リスク警告・役員比率 > 50% で過大役員給与認定リスク警告を組込。⑦bizlp 自身の使用機会: SZ-1 → SZ-2 遷移期(2027-2028 年想定)に最も価値が出る。起票経緯: 2026-04-25 ユーザー要望「自分だけじゃなく企業の規模が増えてきた時の他の役員・従業員・業務委託等の比率のシミュレーションもできたらいい」を受け、SZ-1 → SZ-2/SZ-3 遷移期の組織ミックス最適化が既存仕様空白領域と確認。世界事例調査: 既存の海外 FP&A SaaS(Pigment/Causal/Runway)は HC 配分を扱うが日本の業務委託(インボイス影響・フリーランス新法)と社員(社保適用拡大)の非対称性を扱える製品は不在で、bizlp の差別化機会の追加カードとなる。件数更新: §1 未着手 136 → 137 / P2 67+ → 68+ / Domain 層 44 → 45 / レイヤー別合計 136 → 137。use_cases.md: v1.2 880 行 → v1.3 約 895 行(業務 OP 37 → 38)。 |
| 2026-04-25 | use_cases.md v1.2 | コンテキスト軸シナリオ(PH/SZ/BZ)14 件追加。フリークエンシー軸(時間)と直交する 3 つの状態軸を新設。フェーズ軸(PH-0〜PH-4・5 件): 創業前 → 創業期(bizlp 現在地)→ 黎明期 → 成長期 → 安定/拡大期。規模軸(SZ-1〜SZ-4・4 件): ソロ法人(bizlp 現在地)→ マイクロ法人 → SMB 成長期 → SMB 拡大期。業種軸(BZ-1〜BZ-5・5 件): コンサル/受託 → SaaS → 物販(対象外)→ 製造業(対象外)→ ハイブリッド(bizlp 現在地)。6 要素記述: 条件 / 特有の問い / 使うべき機能群 / 避けるべきこと / 卒業条件 / bizlp 適用度。整合マトリクスで PH × SZ × BZ 典型組合せと bizlp の 5 年軌跡(PH-1+SZ-1+BZ-5 → PH-4+SZ-3+BZ-2/5)を可視化。軸間連携: 「同じ OP でもコンテキストにより運用が変わる」原則を明示し、F-56/F-59 がユーザープロファイル別優先表示する UX を将来想定。v1.1 689 行 → v1.2 約 920 行(+230 行・章単位 Edit 4 分割で idle timeout ゼロ完走)。 |
| 2026-04-25 | use_cases.md v1.1 | 業務オペレーションシナリオ(フリークエンシー軸)37 件を追加。戦略 UC-1〜UC-5(経営判断ループ)と並列で、年次 8 件(OP-A1〜A8: 確定法人税申告 / 5 カ年計画策定 / 翌期予算策定 / 賃上げ税制申告 / R&D 税制 / 社保算定基礎届 / 事前確定届出給与 / 投資ハードルレート見直し)/ 月次 8 件(OP-M1〜M8: 月次決算 / KPI レビュー / 予実差異 / RPA 6 種一括 / Action A→B / 給与振込 / 請求書 OCR バッチ / PJ 月次採算)/ 週次 7 件(OP-W1〜W7: ランウェイ確認 / パイプライン確度 / PJ 進捗 / What-if / 採用候補レビュー / 月初予算消化率 / KPI 赤色化検知)/ 日次 8 件(OP-D1〜D8: 銀行明細取込 / クレカ消込 / 領収書 OCR / 日次 CF / 小口現金 / 請求書 HitL / 例外承認 / エラーログ)/ 随時 6 件(OP-X1〜X6: F-56 対話 / 採用 / 投資 / 資金調達 / 税務最適化 / F-59 連鎖オーケストレーション)。各 OP は トリガー・主役・操作・出力・判断基準・異常時対応 の 6 要素を記述。Persona × Frequency 主務マトリクス(P1 CFO / P2 経理 / P3 開発者 / PM / 顧問税理士 / 顧問社労士の 6 ペルソナ × 5 周期)を末尾に追加。用途: 完成形では UC と OP の境界が曖昧になり F-56/F-59 がリアルタイムでオペデータから戦略判断シナリオを立ち上げる位置付け。新規ペルソナ(PM・顧問税理士・顧問社労士)が PRD P1-P3 を補完し、商用化時のサポート設計に直結。v1.0 → v1.1 で 287 → 689 行(+402 行、章単位 Edit 方式で idle timeout ゼロ完走)。 |
| 2026-04-25 | docs/product_overview.md (新設) / docs/_config.json / prd.md | 完成形プロダクト全体像(鳥瞰ビュー)の新設。PRD(詳細仕様)/ BRD(Solo-CEO 特化)/ use_cases.md(経営判断シナリオ)/ TODO_future.md §1(実装状況サマリ)/ RQ-035 synthesis(世界事例調査)を統合した鳥瞰ビューを新設。新規読者・経営層・採用候補者向けに「全 219 案件が完成すると何が出来上がるか」を 1 ページで把握できる。12 セクション構成: ①一文要約・②4 重構造(データ取込→会計エンジン→分析 FP&A→経営意思決定)・③第 1 層(I-* 系約 30 案件)・④第 2 層(S-* / RPA 約 60 案件)・⑤第 3 層(F-* 系約 50 案件)・⑥第 4 層(F-56/F-57/F-58/F-59 + S-69)・⑦一人法人特化 3 差別化機会(社会保険料壁ロジック / 法人 B/S × 個人 B/S 統合 / ソロ CEO 年収最適化)・⑧基盤運用コンプライアンス(N-* / DS-* 約 50 案件)・⑨規模感(35 ✅ + 3 🟡 + 45 📝 + 136 未着手 = 219)・⑩完成形 UX シナリオ(PRD UC-1〜5 + Solo CEO 軸の 6 シナリオ)・⑪技術スタック最終形(Cloud Run + LangGraph + Vertex AI)・⑫ロードマップ別商用化到達点(P2 = 商用化開始可能ライン)・⑫ひとことサマリ。nav 登録: §1 グループに 00.0 完成形プロダクト全体像(鳥瞰ビュー・全 219 案件統合) として追加(index.md と use_cases.md の間)。PRD 冒頭にもリンク追加で導線確保。起票経緯: 2026-04-25 ユーザー要望「ドキュメントを精読してすべて実装完了するとどんなプロダクトになるかを網羅的に説明してほしい」を受け、Claude Code セッション内の蓄積コンテキスト(PRD / BRD / RQ-035 / F-57/F-58/F-59 spec / TODO 全体)を統合した網羅記述を作成。Explore agent でのカタログ取得は idle timeout で不完全終了したが、メインセッションのコンテキストで網羅性を確保。本ドキュメントは F-59 仕様書 v1.0 起草時の SSoT としても機能し、商用化準備の各種ステークホルダー説明資料の起点となる。 |
| 2026-04-25 | docs/_internal/research_prompts/RQ-035_* (4 ファイル新設) / ai_agent_tips.md §8 / dev_mas-058_required_revenue_solver.md v1.1 / TODO_future.md F-59 行 | RQ-035 (Agentic AI 財務意思決定支援システムの世界先行事例調査) 完了 + 主要仕様への横断反映。Claude Research × Gemini Deep Research の並行実施結果を突合し SSoT 化。4 ファイル新設: RQ-035_*_prompt.md (調査プロンプト本体) / RQ-035_*_result_claude.md (深さ重視・arXiv 引用・GitHub Issue 番号付き根拠) / RQ-035_*_result_gemini.md (広さ重視・JPMorgan/Wells Fargo/Vena 等の事例網羅) / RQ-035_*_synthesis.md (両者突合 + 統合結論 14 項目)。主要発見 3 つ: (1) ソロ CEO × 5 カ年 × AI 提案ループ統合 SaaS は世界空白 (両者一致でブルーオーシャン確証)、(2) 真のツリー UI は主要 FP&A SaaS で誰一人採用していない (Pigment/Causal/Runway/Anaplan は git 風並列ブランチに収斂) → Progressive Disclosure 必須、(3) bizlp E 案の Firestore checkpointer は実装不可 (Claude が GitHub Issue #6533/#3380 で公式パッケージ未存在を確認) → Cloud SQL Postgres (公式 langgraph-checkpoint-postgres) に推奨変更。ai_agent_tips §8 新設: LangGraph / Agentic AI 採用前のチェックリスト (致命的アンチパターン 5 + 採用すべきパターン 5 + 規制留意点 + コスト試算)。Recursion 暴走対策 (一人法人を一晩で破産させうる課金事故防止) を最優先項目に明記。F-58 spec v1.1: 注意事項 §11 「Causal AI (do-calculus エンジン) は v1 不採用 / DAG 思考フレームのみ採用」+ §12 「LLM に計算結果を復唱させない (Air Canada v. Moffatt 2024 BCCRT 149 型責任回避)」を追加。F-59 TODO: 推奨スタック確定 (LangGraph + Cloud SQL Postgres + LangSmith + Vertex AI Gemini 1.5 Pro / 月 $56-95) + 真のツリー UI から Runway 型カード並列 UI + Progressive Disclosure に方針変更 + Causal AI 不採用 + LLM 計算復唱禁止 + HITL 金額閾値 + Autonomy Slider 設計を組み込み。EU AI Act: SMB 一般財務計画 AI の高リスク該当性は Annex III ガイドライン (2026/2 予定) 待ち・Claude 側の保留判断採用。コスト試算: Vertex AI Agent Engine + Gemini 1.5 Pro が最安 (月 $56)、Cloud Run + LangGraph OSS + Cloud SQL Postgres + LangSmith Developer + Gemini 1.5 Pro が推奨 (月 $70)。F-59 仕様書 v1.0 起草前にこの 4 ファイル + ai_agent_tips §8 を必読化。docs-only 改訂で prod 自動デプロイには影響なし。 |
| 2026-04-25 | ai_agent_tips.md | §7 UX 方針: スライダー禁止・離散単位ドロップダウン優先(新設)。F-57 / F-58 / F-59 等のシミュレーション系 UI でスライダーを使わずドロップダウン or ±ボタンを優先する方針を確定。理由: (1) 連続スライダーはドラッグ中再計算でパフォーマンス懸念、(2) GAS クォータ消費、(3) 一人社長の意思決定では離散単位の方が判断しやすい(年収 600 万 vs 601 万に意味はない)、(4) 標準報酬月額等級が離散のため整合性高い。推奨ドロップダウン粒度 10 項目: 年収 50-100 万単位 / 月額報酬 5 万単位(等級境界整合)/ 賞与 50 万単位 / 原価率 5% / 稼働月 10-12 のみ / 固定費 10 万単位 / 社宅負担率 10% / 共済月 1 万単位 / 採用人員 1 人単位 / 採用タイミング 月単位。実装ガイド: <select> 基本、±ボタン併用可、サンキーダイアグラム自体は維持(スライダーと別概念・離散値を流量可視化する用途 OK)。次セッションで一括書換予定: brd_solo_ceo_financial_navigator.md §6 / dev_mas-057_solo_ceo_cockpit.md(アンブレラ名称 + Phase 3)/ dev_mas-058_required_revenue_solver.md(F-57 Phase 3 統合部分)/ TODO_future.md F-57/F-58/F-59 の「スライダー」言及。今回は ai_agent_tips §7 に備忘録化のみ(軽量・即記録)、本格書換は F-57 Phase 2 着手前の次セッションで実施する運用分離。起票経緯: 2026-04-25 web ワークスペースで F-59 起票直後、ユーザー指摘「処理が重くなりそうなスライダーは避け、ある単位ごとのプルダウン方針で」を受け、仕様起草時の SSoT として §7 確立。 |
| 2026-04-25 | TODO_future.md | F-59 新規起票 — 一人法人 成長計画ワークスペース(統合意思決定ツリー UI・F-57b 候補の具体化)。F-56 (Chat UX) / F-57 (スライダー UX) / F-58 (逆算ソルバー) / F-12 / F-48 / F-17 を連鎖オーケストレーションする意思決定ツリー層として新案件化。既存の個別機能は「点」で完成度が高いが「希望報酬 → 必要売上 → 人員計画 → 採用投資可否 → 資金調達 or 計画調整」の試行錯誤ループ全体を 1 画面で回せる UI/ロジックは空白領域だった。F-57b 候補(2026-04-24 会話で合意された左右分割ワークスペース UI)の具体化案件として位置付け。①想定ワークフロー: 年収入力 → F-58 必要年商逆算 → F-12 人員逆算 → F-48 TCO + CF 影響 → 制約違反サジェスト(F-17 資金調達 / F-11 計画後ろ倒し / F-58 年収下方の 3 択)→ シナリオ分岐保存 → 再ループ。②新規実装: 400_domain/446_decision_tree_orchestrator.js(純粋関数・各計算エンジン順呼出 + 制約違反検知 + Next Actions 返却)+ F-57b 左右分割ワークスペース UI(右 = 操作 / 左 = ツリー可視化 + AI インサイト)を N-56 Stage 2 SPA 基盤上に実装。③サジェストエンジン: ルールベース(採用 BEP > 12 ヶ月 → 融資検討、人月単価 > 300 万 → 案件ポートフォリオ見直し 等)+ LLM ハイブリッド(callClaudeApiOnVertex_)。④シナリオ分岐管理: F-56 40_scenario_registry に親シナリオ ID 列を追加し分岐ツリー再現可能化。⑤前提依存: F-56 Phase 2 / F-57 Phase 3 / F-58 実装 / F-17 実装 / N-56 Stage 2(✅ PR #363 で完了)。前提揃う想定 2026 Q3 以降。⑥起票経緯: 2026-04-25 ユーザー指摘「希望報酬 → 必要売上 → 人員計画 → 採用投資可否 → 資金調達 or 計画後ろ倒しの試行錯誤できる機能にしたい」。既存 F-56/F-57/F-58 は個別機能として高品質だが連鎖オーケストレーション層が空白なため新案件として切出。F-57b 候補の具体化形にもなる。件数更新: §1 未着手 135 → 136(+1)、P2 カテゴリ 66+ → 67+、層横断 4 → 5、レイヤー別合計 135 → 136。カテゴリは「シミュレーション・UX」、P2 ★★★(商用化後の最大の UI 差別化機能)、状態=未着手。本改訂は sub ワークスペース担当のドキュメント整備で、コード・仕様書への影響なし(TODO 起票のみ・仕様書本体は F-17 実装 or F-57 Phase 3 着手時に後続 PR で作成予定)。 |
| 2026-04-25 | dev_mas-058_required_revenue_solver.md / TODO_future.md / docs/_config.json / ai_agent_tips.md | F-58 開発仕様書 v1.0 — 希望年収逆算型 必要年商シミュレーター + Stream idle timeout 対処 Tips。F-57 の逆問題(順方向: 年収 → 手取り最適化)に対する逆方向ソルバー(希望年収 Y1-Y5 + 財務健全性 6 制約 → 必要年商・粗利率・人月単価)を新規仕様化。章単位 Edit 方式で idle timeout ゼロ完走(v0.1 骨組み 78 → v0.2 修正方針 242 → v0.3 エッジケース 328 → v1.0 実装プロンプト 442 行)。(I) 健全性制約 6 項目: (1) P/L 黒字、(2) ランウェイ ≥ 6 ヶ月 (UC-4 整合)、(3) 緊急予備 ≥ 3 ヶ月 (UC-5 整合)、(4) 営業利益率 ≥ 10% (SPI Research 2025 コンサル中央値 9.8%)、(5) 税引後留保率 ≥ 20% (商用化投資 + 緊急予備両立)、(6) 労働分配率 ≤ 65% (コンサル労働集約前提)。業態別 default ガイドで SaaS/物販/製造の切替方針も明記。(II) ソルバーアルゴリズム: 二分探索(30 反復で 10 万円精度)。単調性による収束保証 + F-57 SocialInsuranceTierEngine / PersonalTaxEngine を逆順呼出で純粋関数化。(III) 3 段階出力: Minimum (赤字回避) / Healthy (6 制約全充足) / Buffered (+20%)。齋藤 Baseline Y5 年収 1,200 万 → Healthy 2,150 万と試算。(IV) コンサル/受託特有: 必要人月単価 (稼働 10 ヶ月 default) で営業力・案件ポートフォリオ判断材料化。Y5 Healthy 2,150 万 → 月単価 215 万/人月。(V) 新規ファイル: 400_domain/445_required_revenue_solver.js(純粋関数・IIFE パターン)+ 03_sys_params に F58_* キー 6 個追加 + 900_test/901_test_runner.js に F58-01〜F58-13 単体テスト 13 件。(VI) 前提依存: F-57 Phase 1/1.5 (✅完了)・F-03 KPI 閾値整合・F-08 ランウェイ計算。(VII) 後続連携: F-56 Phase 2+ 対話 Tool 登録・F-57 Phase 3 SPA UI に「年商逆算」toggle 追加。(VIII) エッジケース 13: 希望年収 0 / 原価率境界 / 月額下限違反 / 二分探索収束失敗 / 標準報酬 50 等級上限 / 40 歳境界 / 個人所得税ブラケット境界 / 法人税軽減税率境界 / 賞与配分 40% 超税務否認警告 ほか。(IX) 人間検討事項 12: 業態プリセット v2 / 稼働月数 default / 二分探索 vs 解析解 / F-57 統合時期 / F-56 Phase 連携権限 / シート DDL 管理化 / 原価率年商依存 / 労働分配率妥当性 / F-03 閾値同期 / MENU 配置 / 賞与 40% 警告ほか。(X) 併せて ai_agent_tips.md §6 に Stream idle timeout 対処 Tips を新設(長文仕様書は骨組み先出し → 章単位 Edit で 1 操作 200 行以下に抑える運用ルール)。本案件はその運用の初回適用事例として記録。件数更新: §1 仕様書完了 44 → 45(+1)、未着手 136 → 135(-1)。nav §E.5.37 に登録。実装タスク化のタイミング: F-57 Phase 2 着手時または F-57 Phase 3 UI 設計時。 |
| 2026-04-25 | ai_agent_tips.md | §6 Stream idle timeout 対処 Tips 新設(F-58 仕様書生成事例から知見抽出)。Claude Code CLI で長文 Write 時に発生する API Error: Stream idle timeout - partial response received の原因(モデル側トークン送出 60 秒途切れでクライアント切断)と対処(骨組み先出し → 章単位 Edit / 1 操作 200 行以下 / Sonnet 4.6 の方が長文安定 / ANTHROPIC_API_TIMEOUT_MS 環境変数で延長可能)を明文化。事例欄に F-58 仕様書生成(2026-04-25)の復旧手順(Step 1 骨組み 78 行 → Step 2-4 章単位 Edit で累計 442 行完走)を記録。§5「トークン消費 Tips」の姉妹セクション。 |
| 2026-04-25 | TODO_future.md | F-58 新規起票 — 希望年収逆算型 必要年商シミュレーター(F-57 逆問題)。F-57 が「年商・原価・固定費・年収 → 手取り最適化」の順方向なのに対し、F-58 は「希望年収 Y1-Y5 + 財務健全性制約 → 必要年商・必要粗利率・必要人月単価」を逆算するソルバー仕様を起票。起票経緯: 2026-04-25 web ワークスペースで F-57 5 カ年シミュレーション検討時、ユーザー指摘「コンサル/受託売上前提で健全な財務体質を維持しつつ希望年収を取れる年商水準を推測する仕様が欠けている」を受け、既存 F-24(一般 P/L BEP)/ F-12(売上→人員逆算)/ F-48(採用→必要売上)では埋まらない空白領域と確認。健全性制約 4 条件の同時充足: (1) P/L 黒字、(2) ランウェイ ≥ N ヶ月(default 6・F-08 連携)、(3) 税引後留保率 ≥ 20%、(4) 労働分配率 ≤ 50%(F-03 連携)。3 段階出力(Minimum / Healthy / Buffered)。コンサル/受託特有: 必要人月単価を示唆して営業力・ポートフォリオ設計の判断材料化。新規ファイル案: 400_domain/445_required_revenue_solver.js(純粋関数・F-57 エンジンを逆順で呼ぶソルバー)+ 03_sys_params に 4 キー追加。前提依存: F-57 Phase 1/1.5(✅ 完了)。F-56 連携: 対話 Tool として登録。F-57 Phase 3 統合: スライダー UI に「年商も逆算」toggle 追加案。件数更新: §1 未着手 135 → 136(+1)、P2 カテゴリ 65+ → 66+、Domain 層 43 → 44、レイヤー別合計 134 → 135。カテゴリは「シミュレーション」、P2 ★★、状態=未着手。本改訂は sub ワークスペース担当のドキュメント整備で、コード・仕様書への影響なし(TODO 起票のみ・仕様書本体は後続 PR)。 |
| 2026-04-25 | 800_ops/813_migration_n56_sys_params.js (新設) / 000_infra/002_constants.js / scripts/pre-push-check.sh | N-56 Stage 2 の運用整備 — sys_params シーダー + pre-push 検証追加 [cross-workspace]。Stage 2 実装コミット (efaf005) 後の main 側推奨タスク #1・#2 を web から先行対応。#1 sys_params シーダー: 800_ops/813_migration_n56_sys_params.js に migrationN56SysParams() を新設。N56_ENABLE_SPA='false' / N56_STATE_MGMT_LIB='ZUSTAND' を 03_sys_params に冪等投入する(既存キーがあれば値を上書きせずスキップ・手動変更済の値を守る安全措置)。実行後は Constants._paramsCache を null リセットして次回 getParam() で再読込させる。dev では手動で N56_ENABLE_SPA=true に変更する運用。Utils.auditLog('MIGRATE', ...) + SpreadsheetApp.getUi().alert + Utils.logInfo/logError の既存 migration パターン (812 に準拠) に揃える。000_infra/002_constants.js:341 の 📋 サイドバー: 🔧 マイグレーション カテゴリに「N-56: SPA フィーチャーフラグ投入」エントリを追加。#2 pre-push 検証拡張: scripts/pre-push-check.sh に SPA ビルドパイプライン検証を追加。①cd webapp_client && npx --no-install tsc --noEmit で型チェック / ②npm run build で単一 HTML をリビルド / ③git status --porcelain templates/sidebar_spa_shell.html で未コミット差分を検知(非空なら push 停止)。webapp_client/ or node_modules/ が無い環境 (古い branch / 初期 clone 直後) では WARN で継続し誤停止を回避。既存のルート直下 *.js 検知は維持。番号体系更新: CLAUDE.md 記載の「次のマイグレーションは 810 から」は 810/812 既使用のため 813 を採用。検証: bash scripts/pre-push-check.sh 単体実行で pass(SPA type-check 0 エラー・build 成功・成果物差分なし)確認済。実機検証待ち: migrationN56SysParams() の dev 環境での動作確認は main 側で npm run push:dev 後のメニュー実行が必要(web ワークスペースからは clasp 未セットアップで実行不可)。 |
| 2026-04-25 | 300_ui/302_spa_bridge.js (新設) / docs/spec/sidebar_api.d.ts (新設) / 100_config/101_sys_config.js / 000_infra/002_constants.js / webapp_client/** / templates/sidebar_spa_shell.html | N-56 Stage 2 実装 — I-03 v2 HitL サイドバーの Vite+React SPA 版 [cross-workspace]。N-41 続編・N-56 仕様書 v1.3 の Stage 2(「未着手」判定)を web ワークスペースから着手。main 担当ルール越境のため [cross-workspace] として PR 化。GAS 側新設: 300_ui/302_spa_bridge.js(openInvoiceHitlSidebarSpa / getInitialStateForSpa_(view) / handleSpaDoGet_(e) / _getPublicSysParamsForSpa_() / _sanitizeSpaView_())。v1.3 Critical に従い view 伝達は HtmlOutput.append('<script>window.SPA_INITIAL_VIEW="..."</script>') のステートレス JS 注入(PropertiesService race condition を回避)+ String(view).replace(/[^a-z_0-9-]/g, '') で XSS サニタイズ。N56_ENABLE_SPA=false && !isDev で例外を throw する feature-flag を実装。GAS 側最小編集: 100_config/101_sys_config.js:400 の doGet(e) に /_spa$/.test(view) 分岐 3 行追加(PoC 3 関数 spaPocGetEnvInfo/spaPocEcho/openSpaSidebarPoc は並存期間ゆえ削除せず)+ 000_infra/002_constants.js:232 MENU_DEFINITION に 🗂️ HitL レビュー (SPA) エントリ追加。フロント SSoT 新設: docs/spec/sidebar_api.d.ts(v1.3 Major 対応・type JSONSafe<T> = T extends Date ? never : T extends Function ? never : ... で Date 型戻り値をコンパイル時に never に潰す強制ガード + SidebarApi interface で HitL 系 6 関数 + getInitialStateForSpa_ のシグネチャを集約)。webapp_client 拡張: react-router-dom ^6.28.0 追加、main.tsx を HashRouter + window.SPA_INITIAL_VIEW プリマウント読取で FOUC 対策(v1.3 Minor)、gas-bridge.ts に callApi<K extends keyof SidebarApi>() typed ラッパー追加、App.tsx を初期状態取得 + Routes 振分に書き換え、panels/InvoiceHitlPanel.tsx(451 行)で既存 templates/invoice_hitl_sidebar.html(464 行・vanilla JS)を React 移植(承認/スキップ/処理完了/新規登録/複数選択紐付け 全機能等価)、components/StatusBar.tsx + styles/sidebar.css(旧 CSS 移植)を新設。tsconfig.json の include に ../docs/spec/sidebar_api.d.ts を追加して SSoT 参照を有効化。Go/No-Go 指標達成: bundle 178KB raw / gzip 58KB(目標 < 500KB gzip・余裕 441KB)/ tsc --noEmit 0 エラー / Vite production build 成功 (968ms・37 modules)。実地確認待ち(dev 環境): 初回ロード時間 / HitL 承認クリック反応 / CSP 違反ゼロ / 既存 openInvoiceHitlSidebar() との UX 同等性。未実施(main 側で対応予定): scripts/pre-push-check.sh への npm run build:spa && tsc --noEmit && git status 検証前置 / 03_sys_params への N56_ENABLE_SPA / N56_STATE_MGMT_LIB の実シード。変更規模: 新規 6 ファイル (302_spa_bridge.js / sidebar_api.d.ts / InvoiceHitlPanel.tsx / StatusBar.tsx / sidebar.css + README 改訂) / 変更 5 ファイル (101_sys_config.js / 002_constants.js / webapp_client/package.json / tsconfig.json / sidebar_spa_shell.html / App.tsx / main.tsx / gas-bridge.ts) / 再生成 templates/sidebar_spa_shell.html。 |
| 2026-04-25 | dev_mas-232_sidebar_spa.md / tasks/reviews/2026-04-24T11-50-57_gemini_review_f44_f45_f48_f49.md | N-56 spec v1.3 — Gemini v1.2 レビュー CONDITIONAL GO 指摘 5 件を全反映(Critical 1 + Major 2 + Minor 2)。🔴 Critical (Race Condition): v1.1 で指定した PropertiesService.getUserProperties() 経由の view 伝達(_setSpaView_ / _consumeSpaView_)は複数タブで上書き競合が発生する致命的バグのため完全撤回。HtmlOutput.append('<script>window.SPA_INITIAL_VIEW="...";</script>') によるステートレス JS 変数注入に変更(各 iframe が独立 window を持つため競合なし)。XSS 予防のため String(view).replace(/[^a-z_0-9-]/g, '') でサニタイズ。Step 5 の設計原則を今後の全 SPA サイドバー標準パターンとして確立。🟡 Major (実装プロンプト矛盾): v1.2 までは実装プロンプト セクション 3 で 101_sys_config.js 拡張 として旧方針が残存 → AI 実装時の混乱源。セクション 3 を 300_ui/302_spa_bridge.js 新設に書き換え、セクション 4 を 101_sys_config.js 最小編集(doGet 分岐 3-5 行 + MENU_DEFINITION 1 行)に分離。🟡 Major (Date 型禁止の型強制): コメント規約のみでは Jr が誤用するリスク。type JSONSafe<T> = T extends Date ? never : ... ユーティリティ型を sidebar_api.d.ts 先頭に定義し、SidebarApi 全戻り値を JSONSafe<T> でラップ → tsc がコンパイル時に弾く。🟢 Minor (1MB 分割 案 B 削除): vite-plugin-singlefile と相性が悪い「案 B GAS include 結合」を撤回、「案 A Multi-Page Application ビルド」のみを現実的策として明記。🟢 Minor (FOUC): main.tsx マウント前に window.SPA_INITIAL_VIEW 読取 → HashRouter initialEntries に即設定する実装例を Step 5 に追加。変更規模: spec 約 700 → 約 750 行。v1.2 で確立した Stage 1 PoC 結果(webapp_client/ 配置・gasRun 名称・templates/ プレフィックス)は維持し、Stage 2 以降の指針のみ修正。CONDITIONAL GO 2 条件全達成で実装着手可能状態に昇格。 |
| 2026-04-25 | dev_mas-232_sidebar_spa.md / TODO_future.md | N-56 spec v1.2 — main PoC Stage 1 実地検証(PR #361)を反映。main 側で 2026-04-24 に Vite+React+vite-plugin-singlefile の GAS HtmlService 対応 PoC を commit 274b67d でマージし 4/4 検証項目クリア(bundle 145KB/gzip 47KB・CSP 違反 0・google.script.run 疎通 OK・useState 再描画確認)したため、仕様書 v1.0/v1.1 で「暫定推奨」としていた論点を実地追従。確定事項: (1) 採用技術スタック: Vite 5.4.10 / React 18.3.1 / TypeScript 5.6.0 (strict: true) / vite-plugin-singlefile 2.0.3 / @vitejs/plugin-react 4.3.4。ビルド設定 assetsInlineLimit: 100_000_000 + cssCodeSplit: false + inlineDynamicImports: true。(2) ディレクトリ構成: webapp_client/(repo root 直下)採用(tools/webapp-client/ や templates/sidebar_spa/ は不採用・理由: templates 配下はソース混入リスク、tools は既存慣習なし)。(3) 型安全 API bridge: 関数名を v1.0 の runGas から gasRun<T = unknown>(fnName: string, ...args: unknown[]): Promise<T> に修正(PR #361 実装準拠・GasScriptRun / GasGlobal interface 定義含む全文を引用)。(4) GAS エントリ配置(Stage 1 実装): 100_config/101_sys_config.js:423-451 に openSpaSidebarPoc / spaPocGetEnvInfo / spaPocEcho の 3 関数暫定配置(v1.1 で指定した 300_ui/302_spa_bridge.js 分離は Stage 2 本格エントリ着手時に実施・分離コスト > 利益と判断)。仕様書構成変更: Step 1 を「PoC Stage 1 で確立済」の位置付けに再定義し実構成を引用。Step 3 で gas-bridge.ts 実装全文を引用。段階移行を Stage 1-5 に精緻化(Stage 1 PoC ✅ / Stage 2 I-03 HitL / Stage 3 I-33 実装待ち / Stage 4 I-32 実装待ち / Stage 5 N-41 operations 統合)。注意事項 2 件追加: #15 HtmlService.createHtmlOutputFromFile の templates/ プレフィックス必須(PR #361 実地で判明した落とし穴)/ #16 運用ルール(CI 未整備・手動ビルド → commit → push 厳守)。新規セクション「運用ルール」: Stage 1-5 共通の手動フロー + .claspignore 確定設定 + N-48 CI 完成時の自動化プラン。人間検討事項 4 件解消: ディレクトリ命名(webapp_client/ 採用)/ TypeScript 厳格度(strict: true 成功)/ 状態管理ライブラリ(Stage 1 は useState で足りた・Stage 2 で判断)/ F-57 Phase 3 との統合(並行可)。spec 623 → 約 700 行。v1.1 で Gemini 反映済の evaluate() 撤廃 / UI 層分離 / Date 型禁止は Stage 2 着手時に適用(Stage 1 PoC では createHtmlOutputFromFile 採用・単機能ゆえ他 2 件は Stage 2 先送り)。TODO_future.md N-56 行を「仕様書完了 (v1.2) + Stage 1 完了」に更新。 |
| 2026-04-25 | dev_mas-232_sidebar_spa.md / TODO_future.md / docs/_config.json / tasks/reviews/2026-04-24T11-37-41_gemini_review_f44_f45_f48_f49.md | N-56 開発仕様書 v1.0 初版作成 + Gemini レビュー反映 v1.1。v1.0 で Step 1-5 構成 + PoC 前提の暫定推奨仕様を定義した直後、Gemini 3 Pro Preview レビュー(CONDITIONAL GO)指摘 6 件(Critical 1 + Major 3 + Minor 2)を同一 PR で v1.1 として全反映。🔴 Critical + 🟡 Major (Vite ビルド HTML と evaluate() の矛盾 + 500KB 超 HTML 性能劣化): v1.0 の template.initialView='hitl'; evaluate() 方式は Vite 静的出力にタグが存在しないため値が渡らず、かつテンプレートパース遅延が初回 2 秒目標を破綻させる。→ createHtmlOutputFromFile() + PropertiesService.getUserProperties() 経由のワンショット view 伝達パターンに変更(_setSpaView_ / _consumeSpaView_ private helper 新設)。設計原則「<?= ?> 評価禁止」を v1.1 で今後の全 SPA サイドバー標準として確立。🟡 Major (UI 層責務越境): v1.0 で openInvoiceHitlSidebarSpa() / getInitialStateForSpa_() を 101_sys_config.js(設定層)に配置指示 → Modular Monolith 層分離原則違反。→ 300_ui/302_spa_bridge.js(新設) に SPA UI エンドポイント集約、101_sys_config.js の doGet は handleSpaDoGet_(e) へ委譲のみ。🟡 Major (Date 型シリアライズ乖離): google.script.run 経由で Date オブジェクトが自動文字列化される問題 → sidebar_api.d.ts に「JSON-safe 型のみ許容・Date 型禁止・日時は ISO8601 string or epoch ms」規約を先頭コメントで明記。🟢 Minor (Vite Proxy ハイブリッド開発): 人間検討事項 #7 に mock 運用 vs Vite dev Proxy + GAS Web App CORS の 2 案比較を追加(PoC 中に並行検証)。🟢 Minor (clasp 1MB 制限): 人間検討事項 #13 新設(チャンク分割案 A view 別 / 案 B 共通ライブラリ分割)。spec 約 490 → 約 530 行。CONDITIONAL GO 3 条件全達成で実装着手可能状態に昇格。v1.0 本体の主要要素: Step 1-5 構成(ツールチェーン / ディレクトリ / 型安全 API bridge / 段階移行 / GAS 配信エンドポイント)、段階移行順 (a) I-03 HitL PoC 本命 → (b) I-33 → (c) I-32 → (d) N-41 operations、03_sys_params 追加 2 キー(N56_STATE_MGMT_LIB / N56_ENABLE_SPA)、CSP 制約明文化(外部 CDN 禁止 / eval 禁止 / HashRouter 強制)、Go/No-Go 6 項目マトリクス(bundle < 500KB / 初回 < 2 秒 / クリック反応 < 100ms / CSP 違反 0 / TS エラー 0 / 回帰 0)、F-56 Phase 1 / F-57 Phase 3 / F-57b 候補の共通基盤。PoC 前提の暫定推奨は維持(ディレクトリ・状態管理・段階移行順は v1.2 で確定)。§1 サマリー件数更新: 仕様書完了 43 → 44(+1)、未着手 136 → 135(-1)。nav §E.1.22 に登録。 |
| 2026-04-25 | dev_mas-057_solo_ceo_cockpit.md / tasks/reviews/2026-04-24T11-11-44_gemini_review_f44_f45_f48_f49.md | F-57 spec v1.7 — §実データ検証を main 実装と ±1 円一致に更新 + Gemini レビュー CONDITIONAL GO 指摘 4 件を全反映。(I) 検証値 4 パターン差し替え(ユーザー指示・主眼)v1.6 で deflect していた手計算概算値を実計算値に差し替え(ユーザー指示)。ズレの原因 2 点: (A) 月額側は 17_mst_soci_tier の標準報酬月額等級で丸めてから料率適用(raw 月額 × 料率ではない)、(B) 賞与側は健保(年累計 573 万)と厚年(1 回 150 万)の上限が非対称・齋藤 40 歳未満想定なので介護保険料はゼロ(v1.5 で誤加算していた)。更新後の実計算値(福井県 2026-03 料率・労使合算・年額): A=1,145,400 / B=1,168,308(+22,908)/ C=1,060,980(-84,420 削減) / D=1,168,308(+22,908)。定性結論の大幅修正: v1.5 の「C 最有利 14.5 万・D 11.4 万削減」は誤り、実際は C のみが唯一の削減(約 8.4 万円)・B/D は Baseline より約 2.3 万円増加。パターン D は 150 万ちょうどで突破せず月額側増の負担のみ(151 万以上にしないと厚年 1 回上限突破は発動しない)。パターン C の上限突破内訳を計算式レベル(min(2_400_000, 1_500_000) = 1_500_000 + 端数処理 Math.round)で明文化。新規サブセクション「上限の種類を混同しないこと」追加し、厚年 = 1 回 / 健保 = 年累計 / 介護 = 40 歳以上のみ の非対称性を表で整理。v1.6 の「実装との整合性メモ」は役目終了のため削除。単体テスト F57-22 〜 F57-39(901_test_runner.js 18 件)との ±1 円一致を検証基準として明記。(II) Gemini レビュー 4 件反映: 🔴 Critical - v1.3 で撤回済の「TypeScript ES Module 複製」が Phase 3 プロンプト + 注意事項 #12 に取り残されていた点 + GAS V8 の ESM 非互換を未明示だった点を修正。注意事項 #14 に GAS-Vite ブリッジ方式 3 択((a) vite-plugin-commonjs / (b) window 露出 / (c) Rollup UMD 生成)を明記。IIFE + グローバル変数宣言パターン(既存 Phase 1 442_*.js 方式)を SSoT として確定。🟡 Major - PersonalTaxEngine に税法上必須の 2 段階端数処理(課税所得 1000 円未満切捨・最終税額 100 円未満切捨)を Phase 1 修正方針に追記。🟡 Major - Phase 3 action=F57_INSIGHT に専用プロンプトビルダー buildInsightPrompt_(currentValues, diff) を新設({ annualIncome, monthlySalary, bonusYearly, allocationRatio, cashflowTake, netWorth5y } + 配分/年収変更 2 種テンプレート)。🟢 Minor - MST_SOCI の「適用開始年月」に regex バリデーション(^20[2-3]\\d-(0[1-9]|1[0-2])$)追加。calcBonusPremiums / Phase 1 / Phase 1.5 実装への変更なし(Phase 3 プロンプトと Pure 化指針の精緻化のみ)。F-57 spec 602 → 約 655 行。 |
| 2026-04-25 | dev_mas-057_solo_ceo_cockpit.md / TODO_future.md | F-57 spec v1.6 + TODO 追従 — main 側 Phase 1.5 実装 (calcBonusPremiums・PR #356) を反映。main 側で BRD v1.2 の年収最適化転換を受けて calcBonusPremiums がPhase 2 計画から Phase 1.5 に前倒し実装完了したため、sub ワークスペースで spec と TODO を実装実態に合わせて追従。(1) F-57 spec Phase 1 修正方針の calcBonusPremiums 記述を実装シグネチャに合わせて改訂: options を 4 キー(isOver40 / accumulatedBonusThisFiscalYear / singleBonusCapPension / yearlyBonusCapHealth)に絞り、v1.3 で想定した料率直接注入を tierMap 経由の _extractUniformRates_ 抽出に統合(Pure Function 性は保持・tierMap を bootstrap 配信すれば等価)、targetYm は省略(tierMap が既に適用期間でフィルタ済前提)。戻り値の命名を isOverPensionCap → isPensionCapped / isOverHealthCap → isHealthYearlyCapped(受動態)に修正、newAccumulatedHealthBase / total / pensionBase / healthBase / carePremium を追加。(2) §実データ検証の齋藤 4 パターン期待値(114.5 / 114.5 / 100.0 / 103.1 万)に実装との整合性メモを追記: sub 側手計算は「戦略方針の定性確認(パターン C 最有利・約 14 万円差)」に留め、数値精度は 901_test_runner.js F57-22 〜 F57-39(18 件)を SSoT とする旨を明記。実装テスト具体値例(240 万賞与 → 厚年 137,250 / 健保 233,040 / 合計 373,740 円)も記録。(3) TODO_future.md F-57 行のステータスを「Phase 1 完了」→「Phase 1.5 完了」に昇格、概要欄に Phase 1.5 実装内容(千円未満切捨・厚年 1 回上限 150 万・健保年累計 573 万・反復呼出対応・18 件単体テスト)を追記。§1 サマリーラベルを「MVP 完了 / Phase 1 完了」→「MVP 完了 / Phase 完了」に一般化。(4) 本件は実装整合のみで設計変更なし・件数変動なし(3 件のまま)。spec 590 → 602 行の軽微改訂。 |
| 2026-04-25 | TODO_future.md | TODO 実装状況の一括棚卸し — 8 案件のステータスを現物コード/PR と突合して最新化。直近 PR (#336-#355) の実装完了状況を確認し、TODO 上で古いステータスのまま取り残されていた 8 案件を更新。ステータス変更: (1) F-12 目標逆算型人員計画 未着手 → ✅ 完了 (PR #337 600_report/612_sim_headcount.js 新設)、(2) F-42 投資ハードルレート & Go/No-Go 判定 未着手 → 🟡 MVP 完了 (PR #336 29_mst_investment_hurdle + 431_investment_analyzer.js 統合)、(3) F-44 ポジション別 HC テンプレートマスタ 未着手 → ✅ 完了 (PR #339 18_tmpl_hc_position + PositionTemplateRepository)、(4) F-48 採用 TCO & BEP シミュレーター 未着手 → ✅ 完了 (PR #343 400_domain/412_hiring_tco_simulator.js + 69_report_hiring_tco)、(5) F-49 賃上げ促進税制効果シミュレーター 未着手 → ✅ 完了 (PR #346 400_domain/414_wage_tax_credit_simulator.js)、(6) F-57 Solo-CEO Financial Navigator 仕様書完了 → 🟡 Phase 1 完了 (PR #354 400_domain/442_social_insurance_tier_engine.js 新設・239 行、Phase 2-3 未着手)、(7) I-03 請求書 PDF→INV 自動起票 v2 仕様書完了 (v2) → ✅ 完了 (v2) (PR #349 バッチ処理 UI 追加完了)、(8) N-40 Vertex AI 移行 仕様書完了 → ✅ 完了 (PR #347 領収書 OCR に Claude Sonnet フォールバック ADR-0007 含む)。§1 実装状況サマリーの件数更新: ✅ 完了 29→35 (+6)、🟡 MVP/Phase 1 完了 1→3 (+2)、📝 仕様書完了 46→43 (-3)、未着手 141→136 (-5)。§1 未着手の Phase 別内訳: P1.5 14→13 (F-48 除外)、P2 66+→65+ (F-49 除外、F-57 を Phase 1 完了で明示)、P3 30→27 (F-12/F-42/F-44 除外)。§1 未着手のレイヤー別内訳: Domain 47→43 (F-12/F-42/F-48/F-49 除外)、Data 24→23 (F-44 除外)、合計 139→134。主な案件列に実装完了マーカー ✅ + 完了日を付記。調査手法: git log --grep="^feat" と ls 400_domain/ で実ファイル存在確認 + 該当 TODO エントリの個別読み取りで突合。本改訂は sub ワークスペース担当のドキュメント整備で、コード・仕様書への影響なし(ステータス表示の現物追従のみ)。 |
| 2026-04-25 | dev_mas-057_solo_ceo_cockpit.md | F-57 spec v1.5 — main 側 Phase 1 実装(commit 242e0a9)との整合追従。main 側での F-57 Phase 1 実装着手時に migration 番号が当初想定の 810 から 812 に繰り上げ(810/811 が他マイグレーション案件で先行採用)されたため、仕様書内 6 箇所の 810_migration_f57_tier_seed.js 参照を 812_* に一括更新。影響範囲テーブルと人間検討事項 #3 の採番根拠を現状(812 確定)に更新。Phase 1 実装の API 整合確認: 実装された SocialInsuranceTierEngine は findTier / calcPremiums / calcBreakEvenPoint + 別名前空間 PersonalTaxEngine を持ち、仕様書 v1.3 と一致。calcBonusPremiums(賞与 API)は Phase 1 スコープ外で Phase 2 で並列追加する計画通り(非破壊拡張)。仕様書と実装の API 面齟齬なし。本件は軽微な番号追従のみで設計変更なし。F-57 spec 589 → 590 行。運用示唆: マイグレーション番号の「仕様書着手時 grep → 実装直前 grep」の 2 段確認フローが機能した実例を仕様書に記録。 |
| 2026-04-24 | brd_solo_ceo_financial_navigator.md / dev_mas-057_solo_ceo_cockpit.md | BRD + F-57 v1.4 改訂 — 趣旨を「フロー × ストックのバランス最適化」に再整理。v1.2-v1.3 で「合算純資産一本最大化」に寄っていた Mission を、ユーザー指摘(「単年のフロー、累積ストックのバランスを最適化したい」)を受けて「単年手取り(フロー)× 累積純資産(ストック)のトレードオフ可視化 + ユーザー選択」に再定義。(a) BRD §1 Mission 改訂、(b) §2 Core Value に単年手取りと 5 カ年累積純資産を同時評価指標として明示、(c) §5.1 出力を「フロー × ストックの 2 軸 + パレート最適解 XY プロット」に構造化、(d) §5.2 5 カ年推移を「フロー時系列折れ線 + ストック時系列棒グラフ + 統合 2 軸ビュー」に拡張、(e) F-57 §概要・§目的を「純資産最大化」→「フロー × ストックのバランス最適化」に改訂。設計への影響: Phase 3 UI にシナリオ XY 散布図(手取り X 軸 × 純資産 Y 軸)が追加。システムは単一最大化アルゴリズムではなく「パレート・フロンティア上の候補点を提示しユーザーが選ぶ」型に転換。計算エンジン API は不変(calcPremiums / calcBonusPremiums 戻り値で両指標を構成可能・追加実装不要)。BRD 169 → 約 180 行、F-57 spec 588 → 約 600 行の小規模改訂。 |
| 2026-04-24 | brd_solo_ceo_financial_navigator.md / dev_mas-057_solo_ceo_cockpit.md / tasks/reviews/2026-04-24T10-34-32_gemini_review_f44_f45_f48_f49.md | BRD + F-57 v1.3 改訂 — Gemini 3 Pro Preview レビュー(CONDITIONAL GO)指摘 6 件を全反映。v1.2 年収スコープ転換版を scripts/4_review_specs_by_gemini.js で同時レビューし、両文書とも CONDITIONAL GO 判定。Critical 1 + Major 2 + Minor 3 を反映し main 実装着手可能状態に昇格。🔴 Critical: ドメインロジック二重管理(DRY 違反)解消: v1.2 想定の「TypeScript 複製 + Vite バンドル」を撤回、**GAS 側 442_*.js を依存のない Pure JS(ES Modules/UMD)として書き、Vite から ../../400_domain/ 直接 import する単一ソース共有(SSoT)**に変更。Engine 内の Utils / Constants 直接依存も排除(料率・定数は引数注入、ログは warnings 配列返却)。🟡 Major (BRD): 税務否認リスク警告追加: §5 シナリオ B に「月額 30 万・賞与 240 万は社保免脱目的認定リスク高」警告、§8 末尾に免責事項セクション新設(税理士・社労士助言に代替不可・賞与比率 40% 以上否認リスク・届出ずれで全額損金不算入)。🟡 Major (F-57): INCOME_TAX_BRACKETS 引渡経路統一: Phase 3 の「バンドル時定数埋め込み」削除、action=F57_BOOTSTRAP JSON 配信に一本化(GAS 側更新時にクライアント再ビルド不要)。🟢 Minor (BRD): 届出期限アラート方針: §6 UX に「決算月 → 届出期限算出 → 30 日以上緑 / 7-29 日黄 / 6 日以内赤」色分け表示を追記。🟢 Minor (F-57): targetYm 引数追加: findTier / calcPremiums / calcBonusPremiums / calcMonthlyAllowance に targetYm(YYYY-MM)を追加、マスタ「適用開始年月」と突合して期間別料率を動的選択。🟢 Minor (F-57): TMPL_PDIEM バリデーション追加: 日当単価 / 交通費上限 の range 型、宿泊有無 の regex 型(`(有 |
| 2026-04-24 | brd_solo_ceo_financial_navigator.md / dev_mas-057_solo_ceo_cockpit.md | BRD 本旨を「年収(月額報酬 + 賞与)の最適化」に転換 + F-57 spec に calcBonusPremiums 並列追加(v1.2)。main ワークスペースの F-57 Phase 1 実装中の気付き(賞与も社保計算対象・年累計 573 万・1 回 150 万の独自ロジック)から、BRD 本旨自体を「役員報酬月額最適化」から「年収(月額報酬 × 12 + 賞与)の最適化」に再定義。sub ワークスペース担当で BRD / F-57 spec / changelog の 3 文書を連動改訂。(1) BRD 全面改訂(120 → 160 行): §1 Vision/Mission を年収単純最大化 → 合算純資産最大化のパラダイムシフトに書き換え、§2 Core Value に月額/賞与を同じ土俵で扱う旨明記、§3.1 社会保険料の壁に賞与上限ロジック(厚年 1 回 150 万 / 健保年累計 573 万)を追加し「月額を抑えて賞与に振る逆方向最適化」パスを言及、§4.2 報酬設定を「年収を親・月額/賞与配分を子」の階層構造に再編(事前確定届出給与の損金算入要件も明記)、§5 シナリオ A-D を「年収固定配分最適化(A: 全額月額 / B: 賞与配分型 / C: 社保最適化 + 生活最適化)」+「年収最適化(D: 内部留保優先)」の 2 系統に拡張、§6 UX を2 段スライダー(年収 + 配分) または 10 万円単位離散選択フォールバック の併記に改訂(SPA 基盤 N-56 未着手時にも動作可能)、§8 齋藤 Baseline を「年収 600 万 × 配分 4 パターン(A/B/C/D)」に更新、§9 用語定義セクション新設(年収/月額報酬/賞与/標準賞与額/賞与累計上限)。(2) F-57 spec 改訂(535 → 567 行): 概要・目的を年収スコープに書き換え、Phase 1 修正方針に calcBonusPremiums(bonusAmount, tierMap, options) を SocialInsuranceTierEngine に並列追加(既存 findTier / calcPremiums / calcBreakEvenPoint / PersonalTaxEngine API は不変・main 実装との衝突回避)。options = { isOver40, accumulatedBonusThisFiscalYear, singleBonusCapPension = 1_500_000, yearlyBonusCapHealth = 5_730_000, prefectureKey }、千円未満切り捨ての標準賞与額ロジック明記。03_sys_params に F57_BONUS_PENSION_CAP_SINGLE / F57_BONUS_HEALTH_CAP_YEARLY / F57_INCOME_INPUT_MODE(SLIDER or DISCRETE_10M)の 3 キーを追加(計 9 キー)。実データ検証に齋藤 Baseline 年収 600 万 × 配分 4 パターンの社保総額逆転点を手計算期待値として追加(A: 114.5 万 / B: 114.5 万 / C: 100.0 万(-14.5 万) / D: 103.1 万(-11.4 万)・パターン C の厚年 1 回上限 150 万突破効果で最有利)。Phase 3 UI に離散選択モード(10 万単位ドロップダウン)とサンキーダイアグラムの「厚年賞与上限突破部分 = 社保ゼロ流入」色分け表示を明記。人間検討事項に #12(事前確定届出給与の届出タイミング制約・税理士ヒアリング必須)/ #13(賞与と定期同額給与の税務関係・月中変更不可)/ #14(22_bud_headcount 賞与列追加は別案件 F-58 候補として Phase 2 以降に切出推奨)を追加。移行方針: 既存 calcPremiums API シグネチャは変更せず calcBonusPremiums を並列追加で後方互換を維持。main 側 Phase 1 実装(commit 2 本)との衝突リスクなし。削除最小・追記中心で進めたため diff 肥大化を抑制。本改訂は docs/_config.json への影響なし(既存エントリの本文改訂のみ)。 |
| 2026-04-24 | dev_mas-057_solo_ceo_cockpit.md / TODO_future.md / tasks/reviews/2026-04-24T09-35-25_gemini_review_f44_f45_f48_f49.md | F-57 仕様書 v1.1 改訂(Gemini 3 Pro Preview + Deep Think レビュー指摘 6 件を全反映)。scripts/4_review_specs_by_gemini.js(Gemini 3 Pro Preview + Deep Think)で本件仕様書単体レビュー実行、CONDITIONAL GO 判定 + Critical 2 + Major 2 + Minor 2 件の指摘を受領。🔴 Critical 1 (GAS 通信レイテンシとスライダー UX のミスマッチ): Phase 3 の「debounce 100ms で google.script.run → サーバー再計算」設計を廃止し、シミュレーション計算をクライアントサイド JS で実行する設計にピボット。GAS 側 API は「マスタ一括配信(?action=bootstrap)」と「AI インサイト生成(?action=insight)」に限定。Phase 1/2 純粋関数を ES Module として tools/webapp-client/src/engines/ に TypeScript 複製し、GAS 側と同一入出力を CI で担保する。🔴 Critical 2 (税率管理の非対称性): 20_mst_income_tax_bracket シート + IncomeTaxBracketRepository の新設を取りやめ、Constants.INCOME_TAX_BRACKETS を 002_constants.js に追加する形に変更。法人税 TAX_RATES.brackets と対称な Constants 一元管理とし、税制改正時の更新箇所を単一ファイルに集約。新規シート 3 → 2、新規 Repository 3 → 2 に縮小。2026 年時点 7 段階累進テーブル(5% / 10% / 20% / 23% / 33% / 40% / 45%)を定数で定義。🟡 Major 3 (F-56 依存方向反転): F-57 Phase 1/2 を F-56 実装状態に依存せず独立完成する方針に変更。F-56 実装時に F-57 エンジン(SocialInsuranceTierEngine.calcPremiums() 等)を呼び出す形とし、F-57 先行実装で開発ブロッカーを解消。🟡 Major 4 (AI インサイトのクオータ枯渇リスク): F57_INSIGHT_DEBOUNCE_MS: 500 パラメータを廃止し、F57_INSIGHT_TRIGGER_MODE(ONMOUSEUP_2SEC / EXPLICIT_BUTTON)に変更。スライダー操作終了から 2 秒待機 or 明示的「💡 インサイトを更新」ボタンクリックのみで AI 呼び出し。🟢 Minor 5 (40 歳境界テスト追加): エッジケース #16 + §実データ検証 §40 歳境界 + Phase 1 実装プロンプトのテスト要件に age = 39/40/41 で介護保険料が 0 / 8100 / 8100 となる境界テストを追加。🟢 Minor 6 (シート名短縮): 17_mst_social_insurance_tier → 17_mst_soci_tier に短縮(既存 mst_acct / mst_part のパターンに整合)。併せて注意事項 #12 #13 を新設(クライアント側計算設計の堅持 + Constants vs DDL の責務分離方針「全国一律固定値は Constants、会社固有・都道府県差は DDL」)、エッジケース #17(クライアント/サーバー計算の数値不整合検知)と人間検討事項 #10 #11(クライアント側ロジック二重実装の SOP / AI インサイトトリガーモードのデフォルト選定)を追加。TODO_future.md F-57 行の④⑤項を v1.1 に合わせて更新(シート 3 → 2、所得税は Constants 管理)。合格判定: Gemini の CONDITIONAL GO 条件 3 点(Phase 3 スライダー UX 設計変更 + 所得税 Constants 統合 + AI トリガー頻度制御)を全て満たしたため、main 実装着手可能状態に昇格(仕様書 449 → 約 520 行)。レビューコスト約 $0.50・Gemini 3 Pro Preview の Deep Think 応答品質は 2.5 Pro より深い設計批判を提供(GAS レイテンシ考慮 + 対称性原則の理解)。 |
| 2026-04-24 | dev_mas-057_solo_ceo_cockpit.md / brd_solo_ceo_financial_navigator.md / TODO_future.md / docs/_config.json / scripts/1_generate_prompts_gemini.js / scripts/4_review_specs_by_gemini.js | F-57 開発仕様書 初版作成(449 行)+ BRD 新規保存 + Gemini 3 Pro Preview + Deep Think 移行。F-56(意思決定対話 UI / Chat UX)を補完する「スライダー + サンキー型ビジュアルコックピット」をアンブレラ仕様として定義。BRD docs/brd_solo_ceo_financial_navigator.md(Vision: 全ての 1 人社長に「財務のコックピット」を / Mission: 額面給与の最大化 → 純資産の最大化のパラダイムシフト)を入力に、scripts/1_generate_prompts_gemini.js(Gemini 3 Pro Preview + Deep Think へ切替・疎通確認 OK 4 秒)+ scripts/4_review_specs_by_gemini.js の両スクリプトでモデル切替、Gemini + Claude Sonnet 添削の 2 段パイプラインで tasks/prompts/task_F-57.md(297 行)生成 → Phase 1-3 を現ブランチで自走実行。新規ドメイン層 3 ファイル: 400_domain/442_social_insurance_tier_engine.js(標準報酬月額等級マスタ検索 + 厚生年金上限突破 BEP)/ 443_corporate_housing_optimizer.js(社宅賃貸料相当額の個人⇔法人按分・F57_HOUSING_CALC_METHOD で SIMPLE_50 / FORMAL_FIXED_ASSET 切替)/ 444_per_diem_policy_engine.js(出張規程ベース非課税日当計算)。新規マスタシート 3 種(番号空き確認済 2026-04-24): 17_mst_social_insurance_tier(健保 50 + 厚年 32 = 82 行の全国一律等級表・DDL 管理 MST_SOCI)/ 20_mst_income_tax_bracket(個人所得税累進税率テーブル・MST_INCM)/ 13_tmpl_per_diem_policy(出張日当規程テンプレ・TMPL_PDIEM)。3 Repository 新設(PartnerRepository / AccountRepository と完全対称の 5 要素構造): SocialInsuranceTierRepository / IncomeTaxBracketRepository(findAsMap の代わりに findAsBrackets() でブラケット配列返却・意図的な非対称)/ PerDiemPolicyRepository。マイグレーション: 800_ops/810_migration_f57_tier_seed.js 新規(冪等性必須・日本年金機構 2026 年 3 月分〜料率を投入・マイグレーション運用ガイドライン準拠、番号 810 は 809 backup_tool の次として空き確認済)。3 Phase 実装計画(計 3 ヶ月・週 10h 前提): Phase 1 (1 ヶ月・Sonnet 推奨・単独可) 社会保険料壁エンジン + 2 Repository + DDL + マイグレーション + テスト。Phase 2 (1 ヶ月・Opus 推奨・F-56 Phase 3 完了後) 社宅 / 日当 / 共済統合 + F-56 calculateOptimalCompensation() への組み込み。Phase 3 (1 ヶ月・Opus 1M 推奨・N-56 基盤前提) スライダー + サンキー UI + AI インサイト(callClaudeApiOnVertex_ or callGeminiForReasoningOnVertex_)+ F-11 5 カ年連動。03_sys_params に F57_* 6 キー追加(HOUSING_CALC_METHOD / INVESTMENT_YIELD / OPTIMIZER_SALARY_STEP / SANKEY_LIBRARY / INSIGHT_AI_MODEL / INSIGHT_DEBOUNCE_MS)。DRY 原則: F-56 の F56_FUKUI_* 料率キーを F-57 側でコピーせず Constants.getParam('F56_FUKUI_HEALTH_RATE', 0.0971) で直接参照、税制改正時の更新箇所を F-56 側に一元化。appsscript.json は編集なし(既存 cloud-platform スコープで Vertex AI 利用可能・failure_patterns #26 部分追記禁止遵守)。エッジケース 15 件 + 実データ検証(齋藤 Baseline 月 50 万 → 等級・保険料の手計算期待値 + 13 パターンスキャン結果特定)+ 人間検討事項 19 件(Deep Research 10 + Claude 追記 9)を定義。TODO_future.md に F-57 行追加(P2 ★★★・未着手)、§3.2 シミュレーション・UX 枠、F-56 Phase 3 完了後の着手推奨を明記。F-56 実装未着手を Phase 1 調査で確認(400_domain/ に 440/441 存在せず)→ calculateOptimalCompensation() は「要調査」として扱い架空関数参照禁止(failure_patterns #18-#20)を厳守。nav §E.5.36 追加 |
| 2026-04-24 | TODO_future.md | §1 に「未着手のレイヤー別内訳」セクション新規追加。Phase 別内訳(優先度軸)と直交する第 3 の軸として、GAS Modular Monolith のレイヤー別グルーピング(🎨 UI / 🧠 Domain / 💾 Data / 🔧 Infra / 📥 Import / 📊 Report / 🛠️ Ops / 🧪 Test / 🌐 層横断 / 🗑️ 廃止候補)を追加。分類結果: 未着手 139 件を 10 レイヤーに配分、Domain 47 件 (34%) / Ops 27 件 (19%) / Data 24 件 (17%) / UI 14 件 / Infra 11 件 / Report 5 件 / Import 2 件 / Test 1 件 / 層横断 4 件 / 廃止 4 件。自動分類スクリプトで TODO_future.md の 対象ファイル / 概要 / カテゴリ 列から Python ベースで機械分類、人間レビューで MED 確信度のものも確定(境界ケース 0 件達成)。主な気づき: (1) Domain 層が圧倒的に多く会計ロジック・シミュレーション・ワークフローの拡張要求が集中、(2) Ops 層が予想より大きく特に Jr 採用 D-180 関連(N-47/N-50/N-51/N-53/N-54)が集中、(3) UI/Report/Import は成熟フェーズで漸進改善、(4) 層横断 4 件(F-47 / I-34 / N-49 / S-71)は仕様書分割候補。活用目的: N-54 Jr 採用時の担当領域明確化、レイヤー間実装負荷バランス可視化、サブエージェント並列実装の領域分担。目次に「未着手のレイヤー別内訳 🆕」を追加 |
| 2026-04-24 | dev_mas-056_conversational_scenario_ui.md / TODO_future.md / docs/_config.json | F-56 開発仕様書 初版作成(857 行)。D.11 9 ステップ財務意思決定プロセス + RQ-034 Gemini Deep Research 更新版の成果を全反映した本格設計。4 フェーズ × 計 4 ヶ月 の実装計画を確定。Phase 1 MVP (1.0 ヶ月): Vite+React + vite-plugin-singlefile + GAS doGet + クライアント側ポーリング + Gemini Flash 連携 + F-48 採用 TCO のみ Tool 化(永続化なし)。400_domain/440_conversational_ui.js 新設、namespace ConversationalUI で doGet(e) / startChatJob(req) / checkStatus(jobId) + 内部関数 7 つ。時間差トリガーで重処理を分離し 30/60 秒タイムアウト完全回避。000_infra/004_utils.js に callVertexAI 汎用 API を追加(N-40 のスコープ微拡張)。Phase 2 (1.5 ヶ月): 40_scenario_registry(親・DDL 管理)+ 44_scenario_drivers(子・Deep Research 推奨 41 は 41_trn_budget 衝突のため 44 に修正)+ Drive JSON 会話履歴(セル 50,000 字制限回避)+ F-11/F-13 Tool 追加 + カード並列型 UI(モバイル横スワイプ)。Phase 3 (1.0 ヶ月): 400_domain/441_compensation_optimizer.js 新設で calculateOptimalCompensation() 総当たり探索(福井県 2026 年料率 健保 9.71%/介護 1.62%/子ども 0.23% + 軽減税率 15% + インボイス 70%控除) + Claude 3.7 Sonnet ハイブリッドルーティング + F-45 予算転記連動。Phase 4 (0.5 ヶ月): CacheService 高速化(100KB/key・6h TTL)+ モバイル洗練 + エラーリカバリー UX。03_sys_params に F56_* 17 キー追加(モデル名・ポーリング周期・福井県料率・軽減税率・インボイス率・Optimizer 設定・Drive フォルダ ID・暗号化キー)。appsscript.json に webapp: {access: 'DOMAIN', executeAs: 'USER_DEPLOYING'} 追加。F-05 を吸収・再定義(固定 3 シナリオ切替 → 対話による任意数シナリオ管理)。F-54 Monte Carlo は拡張点として併存。前提依存: N-56(Vite+React SPA 基盤)が Phase 1 の前提 → 先行実装 or 統合着手の判断は実装時決定。エッジケース 18 件 + 人間検討事項 20 件(方針済 10 + 実装時決定 10)+ 推奨実行モデル 12 工程(Opus×3 / Sonnet×7 / Haiku×2)を定義。実装プロンプトは Phase 1 MVP 版のみ記載(Phase 2-4 は別 PR で追加)。TODO_future.md の F-56 ステータスを 未着手 → 仕様書完了 2026-04-24 に更新、件数サマリー 仕様書完了 45→46 / 未着手 142→141、Phase 別内訳 P2 67+→66+。nav §E.5.35 追加 |
| 2026-04-24 | RQ-034 結果(更新版) / TODO_future.md / research_questions.md | RQ-034 Gemini 回答の更新版で全面差し替え + F-56 TODO を再精緻化。初回回答から 2 時間後に投入した更新版で、2026 年最新の税制・社保料率・モデル価格に基づく精緻な推奨に置き換え。主な差分: (1) 通信方式: google.script.run だけでなくクライアント側ポーリングを追加(GAS 側で重い処理を時間差トリガー起動に逃がし、クライアントから数秒おきに checkStatus(id) 問い合わせ、30/60 秒タイムアウトを完全回避)、(2) AI モデル選定: 単一 Gemini 2.5 Flash 案からハイブリッド構成へ(対話・ルーティング = Flash $0.03-0.30/$1.50 per 1M、複雑な財務 JSON 抽出・考察 = Claude 3.7 Sonnet $3/$15 or Gemini 2.5 Pro $1.25-2.50/$10-15)、(3) 永続化: 40_scenario_registry + 子テーブルに加え、会話履歴本体は Drive JSON ファイルに保存し file_id を親に記録(セル 50,000 字制限回避)、(4) 個人 B/S 関数名: runIntegratedWealthSimulation → calculateOptimalCompensation、総当たり探索方式を明示、(5) 税制データ: 社保 9.15% 概算 → 2026 年福井県料率(健保 9.71% / 介護 1.62% / 子ども子育て支援金 0.23%)+ インボイス経過措置 70%控除(2026 年 10 月〜)、(6) 機密情報: PropertiesService.getUserProperties() 保存の AES 暗号化キーで暗号化(平文シート保存禁止)、(7) キャッシュ: CacheService 詳細(100KB/key・6 時間 TTL・In-memory)、(8) コスト試算: 月 $3 → 月額 1,000 円未満(1 セッション 100K トークン → 数円、1 日 3 回 × 30 日)、(9) ロードマップ: 4 フェーズ 15-17 週間 → 月単位の精緻化(1.0 + 1.5 + 1.0 + 0.5 = 計 4 ヶ月)、Phase 4 最適化フェーズ新設(CacheService 高速化 + モバイル洗練 + エラーリカバリー)、(10) 確定すべき 10 項目 を更新(ポーリング制御・ハイブリッドルーティング・2026 年税制ロジックなどを反映)、(11) Claude 追記 を 7 → 9 項目に拡張(ポーリング周期 2/5/10 秒設計、AI ルーティング閾値の埋め込み先、時間差トリガー結果保存先と 6h TTL 切れの扱いを追加)。重要: 更新版でも 41 衝突(41_trn_budget 既存)は残るため Claude 側で引き続き 44_scenario_drivers への修正を維持(grep 確認済)。F-56 TODO エントリの概要欄を大幅再編、論点欄も新チェックリスト 10 + Claude 9 点に更新 |
| 2026-04-24 | RQ-034 結果 / TODO_future.md / research_questions.md / research_prompts/README.md / docs/_config.json | RQ-034 Gemini Deep Research 初回回答を保存 + F-56 TODO エントリに設計方針反映。8 設計論点すべてに具体的推奨が確定。主要な方針: ①Chat UI 基盤=React + Vite (vite-plugin-singlefile) + HtmlService 配信、②AI モデル=Gemini 2.5 Flash メイン($0.03/セッション・月 $3、Claude 3.5 Sonnet 切替オプション保持)、③オーケストレーション=クライアント主導型(1 ターン 1 ツール実行で GAS に返す → React が再呼び出し、GAS 6 分 + 30 秒タイムアウト完全回避)、④UX=チャット左 30% + シナリオカード並列右 70% スプリットビュー(Causal 参考)、⑤永続化=40_scenario_registry(親)+ 44_scenario_drivers(子)(Deep Research 推奨の 41 は 41_trn_budget と衝突するため Claude 側で grep 確認 → 44 に修正)、⑥個人 B/S 統合=runIntegratedWealthSimulation() で役員報酬 5 万円刻み最適化(軽減税率 + 社保 9.15% + 標準報酬月額上限 + 福井県料率)、⑦SaaS 競合=「一人法人 × 個人 B/S 統合」は空白領域確認(Causal/Runway は法人のみ)、⑧実装ロードマップ=4 フェーズ・約 15-17 週間(MVP F-48 のみ 4-6 週 → マルチシナリオ 4 週 → 永続化 + F-45 3 週 → 個人 B/S 4 週)。確定すべき 10 項目チェックリスト + Claude 追記 7 点(シート 41 衝突回避 / F-05 吸収タイミング / F-45 実装順 / N-24 アクセス制御 / モバイル重要度 / Flash フォールバック UI / N-56 先行実装優先度引き上げ)を付記。研究ステータス ⏳ 準備完了 → ✅ 完了・F-56 仕様書反映待ち、件数サマリー 調査完了 2→3。F-56 TODO エントリの論点欄を大幅拡張(11 論点 → 設計確定済の主要 8 論点要約 + 残論点 10+7 項目)、概要欄にフェーズ分け明記。nav §C.1.2.16 追加 |
| 2026-04-24 | scripts/5_generate_rq_prompt.js / RQ-034 Deep Research プロンプト / RQ-034 結果ファイル(空) / research_questions.md / research_prompts/README.md / docs/_config.json | RQ-034 Deep Research プロンプト生成(Gemini 2.5 Pro 経由)+ 汎用スクリプト新設。新規スクリプト scripts/5_generate_rq_prompt.js で RQ-NNN のメタプロンプト + 参照コンテキスト(CLAUDE.md / prd.md / D.11 / N-40 / F-11 / F-13 / F-48 / F-45 / TODO_future.md 計 9 ファイル・320K chars)を Gemini 2.5 Pro に投入し、Deep Research に直接投入可能な完成版プロンプト(11K chars / 258 行)を生成。主要構造: 調査設定(3 ペルソナ: GAS × AI Chat UX アーキテクト / FP&A SaaS アドバイザー / 日本一人法人財務コンサル)→ 事実パッケージ 6 点(プロジェクト全体像 / GAS 技術制約 / 既存エンジン呼び出し規約 / ユーザー像 / 個人 B/S 統合要件 / シナリオ永続化現状)→ 調査項目 8 セクション(Chat UI 実装 / Tool Use / マルチシナリオ UX / 永続化スキーマ / 個人 B/S 統合モデル / パフォーマンス&コスト / SaaS 競合事例 / 実装ロードマップ)→ 出力フォーマット要件(「結論 → 根拠 → 比較表 → 推奨案 → 参考リンク」構造 + F-56 確定すべき 10 項目チェックリスト)→ 除外論点 4 点。スクリプトの汎用性: 任意の RQ-NNN を引数に取り、メタプロンプト内の相対パス参照を自動抽出 + --context file1,file2 で追加コンテキスト指定可能。出力は {RQ_ID}_{slug}_prompt.md(確定プロンプト)+ {RQ_ID}_{slug}_result.md(空テンプレ)+ tasks/rq_prompts/{timestamp}_{RQ_ID}_raw.md(デバッグ用生応答)の 3 種。コスト Gemini 2.5 Pro 単発 $0.10 程度・所要 87.6 秒。research_questions.md RQ-034 ステータス 📝 メタプロンプト作成済 → ⏳ Deep Research 投入準備完了、件数サマリー 準備完了 0 → 2(RQ-001 既存 + RQ-034 今回)。nav §C.1.2.15 追加 |
| 2026-04-24 | TODO_future.md / research_questions.md / RQ-034 メタプロンプト / research_prompts/README.md | F-56 起票 + RQ-034 メタプロンプト作成(一人社長の意思決定対話 UI)。D.11 9 ステップ財務意思決定プロセスと F-05 動的シナリオ UI の論点を統合する大型案件を起票。F-56 (P2 ★★★): スプレッドシート外の独立 Web アプリ(GAS doGet(e) ベース、G-10 の初のキラーユースケース)として、Gemini / Claude(N-40 Vertex AI 基盤)と会話しながら F-11 What-if / F-13 投資分析 / F-48 採用 TCO を Tool Use で横断呼び出し。マルチシナリオ並行探索(「採用優先 / 報酬最大化 / 投資抑制」等)、個人 B/S 統合(D.11 Step 9 吸収)、確定シナリオの永続化(新規マスタ XX_scenario_registry + 子テーブル、シート番号 40 番台 or 90 番台要確定)、F-45 連携で 22_bud_headcount / 23_bud_subscription 転記。F-05 を吸収・再定義(固定 3 シナリオ切替 → 対話による任意数シナリオ管理)、F-54 Monte Carlo は拡張点として併存。論点 11 項目(F-05 扱い / シナリオ番号採番 / 会話履歴保存 / GAS 6 分 + 30 秒 UrlFetch 制約 / Tool Use モデル選定 / 個人資産機密性 / UX パターン / F-54 融合 / 認証 / モバイル / 本格設計移行)。RQ-034: F-56 本格仕様書着手前の設計論点を Gemini 2.5 Pro Deep Research に相談するメタプロンプト作成(事実パッケージ 6 点 + 調査項目 8 セクション: Chat UI 実装 / Vertex AI Tool Use / マルチシナリオ UX / 永続化スキーマ / 個人 B/S 統合モデル / パフォーマンス&コスト / SaaS 競合事例 / 実装ロードマップ)。research_questions.md に新セクション §3.6 プラットフォーム・アーキテクチャ を追加、件数サマリー 未着手 141→142、P2 66+→67+。メタプロンプト作成済件数 1→2 |
| 2026-04-24 | ref_financial_decision_9step_retrospective.md / docs/_config.json | 調査レポート追加: D.11 9 ステップ財務意思決定プロセスの振り返り。初年度決算前後の財務判断を巡る Claude との対話セッションを振り返り、「どういう論点をどういう順序で議論したか」 を 9 ステップに再構築(基礎知識 → 自社適用 → IRR 試運転 → 長期方針 → 現在地把握 → 次期施策設計)。単なる会話ログではなく、各ステップで管理会計 ERP(bizlp-gas-accounting)の機能設計・ダッシュボード構造・運用ワークフローへの反映ポイントを抽出。主要な示唆: (1) Step 1 の EBT/FCF/ROIC/WACC/IRR を汎用 KPI として整備、(2) Step 2 のフェーズ別推奨 KPI セット(Phase 1 / 2 / 3 別)、(3) Step 3 の用途別ビュー分割(融資審査 / 月次セルフ / 採用シミュ / SaaS 事業)、(4) Step 4 は F-48 採用 TCO シミュレーターで仕様書化済、(5) Step 5 の 3 軸目標(事業規模 / キャッシュ / 個人資産)、(6) Step 6 の経営方針記録は新規案件候補、(7) Step 7 の定常化ビュー(一過性コスト除外・稼働月数補正)も新規案件候補、(8) Step 8 の役員報酬シミュレーション(F-49 と F-48 連携)、(9) Step 9 の資産形成ポートフォリオ統合設計(S-69 節税・共済効果シミュレーターの中核、P1.5 ★★★)。設計 3 原則: 意思決定支援ツールとして設計 / 経営方針と数字を紐付け / 法人と個人を統合的に扱う。既存 TODO_future.md 案件との対応マトリクスを掲載し、最優先着手候補 = S-69 + F-48 を確認。nav §D.11 追加 |
| 2026-04-23 | dev_mas-048_hiring_tco_bep_simulator.md | F-48 仕様書の不整合修正: 出力シート 68 → 69 + F-44 実装反映。main スペースで F-48 実装着手時に判明した 2 件の不整合を修正。(1) 出力シート番号衝突: F-48 仕様書の 68_report_hiring_tco が F-42 Go/No-Go 判定 MVP(PR #336)で既に使用されている 68_report_investment_gonogo(CLAUDE.md DDL 管理外リスト登録済)と衝突。69_report_hiring_tco に変更、仕様書内 21 箇所 を一括置換(概要 / 列構成 / Step 1 DDL 外シート生成 / Step 2 writeToReport / 影響範囲 / エッジケース / 実データ検証 / 実装プロンプト / 変更履歴)。(2) F-44 実装(PR #339)で確定した追加列の反映: MST_HC_TMPL schema に F-44 実装で追加された 4 列(月次追加固定費 / 立ち上がり月数 / 売上貢献 / 稼働率)を F-48 仕様書に反映。PositionTemplateRepository.findAsMap() の 11 フィールド戻り値(monthlyFixedCost / rampUpMonths / revenueContributing / utilization を含む)のフォーム自動入力設計を Step 4 UI 実装セクションに詳細記述。loadActualAverages に 売上貢献フラグ FALSE 除外ロジック(F-12 PR #337 と同じ判定、顧問会計士・顧問社労士等のコスト型 HC を平均算出から除外)を追記。Step 3 計算ロジックに「稼働率考慮の BEP 補正」と「revenueContributing=false ポジション扱い」の MVP / Phase 2 分離方針を追記。人間検討事項 #11〜#13 を追加(稼働率 BEP 補正 / 立ち上がり月数 Payback 反映 / 売上貢献 FALSE ポジション試算モード)。本修正は F-48 実装前の仕様整合で、F-49 仕様書には影響なし |
| 2026-04-23 | dev_mas-012_headcount_simulation.md / dev_mas-013_investment_simulation.md / dev_mas-042_investment_hurdle_rate.md / TODO_future.md | 全仕様書横断の不整合 4 件を修正(実装影響ゼロの品質整備)。Gemini 主導の不整合監査(全 F-XX 仕様書 vs 実装済コード vs TODO_future.md の横断チェック)で検知した不整合 4 件を一括解消。Critical 0 件 / Major 1 件 / Minor 3 件の内訳で、実装済案件の動作への影響はゼロ、未着手案件の将来実装時の混乱防止が主目的。🟡 Major (1) — TODO_future.md の F-46 / F-50 行で仮採番していたシート番号 (19_mst_investment_catalog / 18_mst_kpi_benchmark) が F-44 / F-55 確定値 (18_tmpl_hc_position / 19_tmpl_saas_catalog) と衝突する旨を備考欄に明記。実装着手時に別番号を再採番する指示を残す。🟢 Minor (3) — (1) F-12 仕様書の「シミュレーションロジックファイルの配置先は人間検討事項」記述を「600_report/612_sim_headcount.js(PR #337 で実装済)」に更新(実装現状との整合化)、(2) F-13 仕様書の変更履歴テーブルの時系列逆転(2026-04-22 が 2026-04-23 の後ろに位置)を正しい昇順に並べ替え、(3) F-42 仕様書の applyGoNoGoToReport_() / screenHiringInvestments_() / detectOutsourcingAlerts_() が プライベートサブ関数(末尾 _ GAS 慣例)であることを明示し、公開エントリは runInvestmentGoNoGoAnalysis() のみという設計意図を強化。衝突マトリクス・解決済事例(F-13 シート 25→30 / F-42 ファイル 430→431 / F-44 SAAS_ADD 対称性を F-55 独立化で解消)も監査で確認済 |
| 2026-04-23 | dev_mas-044_hc_template_master.md / dev_mas-055_saas_catalog_master.md / TODO_future.md / docs/_config.json | F-44 を HC テンプレ限定に縮小 + SaaS カタログ部分を F-55 として独立起票。main スペースの採用判断機能群への注力方針を反映し、F-44(旧: ポジション別 / SaaS 別テンプレートマスタ)から SaaS カタログ部分を F-55 に切り出し。(1) F-44 ファイル名を git mv で dev_F-44_hc_saas_template_master.md → dev_mas-044_hc_template_master.md に変更(履歴保持)。(2) F-44 内容から 19_tmpl_saas_catalog / MST_SAAS_TMPL / SaasTemplateRepository / 23_bud_subscription 補完言及 / SAAS_ADD dropdown 拡張を全削除、18_tmpl_hc_position / MST_HC_TMPL / PositionTemplateRepository / 22_bud_headcount 補完 / HC_ADD dropdown のみ保持。(3) F-55 新規仕様書作成(F-44 と完全同型の Repository パターン、19_tmpl_saas_catalog / MST_SAAS_TMPL / SaasTemplateRepository / SAAS_ADD 分岐、23_bud_subscription プリロード補完)。(4) TODO_future.md F-44 行を HC 限定に縮小、F-55 行を F-54 の前に追加(P3 ★★)。件数サマリー 未着手 140→141、Phase 別内訳 P3 29→30(F-55 追加)。(5) nav §E.5.30 を F-44 新ファイル名に更新、§E.5.34 に F-55 を追加。Gemini レビュー指摘の SAAS_ADD 並列実装対称性論点は F-55 側に移譲(F-44 は HC_ADD のみで対称性無効化) |
| 2026-04-23 | scripts/4_review_specs_by_gemini.js / tasks/reviews/2026-04-23T11-40-22_gemini_review_f44_f45_f48_f49.md | 採用まわり 4 仕様書の Gemini レビュースクリプト + 結果保存。Claude Opus が直接執筆した F-44 / F-45 / F-48 / F-49 を通常パイプライン(Gemini + Sonnet 添削)で経由していなかったため、第三者アーキテクト視点の補完レビューを新規スクリプト scripts/4_review_specs_by_gemini.js で取得。Gemini 2.5 Pro 単発で 4 仕様書(計 1.6K 行)+ CLAUDE.md + failure_patterns + コアコード 5 ファイルを入力し、A-F の 6 観点で構造化レビュー。出力 6.5K chars、15 件の指摘、コスト $0.30。判定結果: 4 仕様書とも CONDITIONAL GO、🔴 Critical 2 件 + 🟡 Major 5 件 + 🟢 Minor 5 件。Claude Opus による真偽再検証で Utils.toastResult / Constants.RPA_DEFAULTS の「架空」判定は誤指摘(L520 / L169 に実在)と判明。正しい指摘(Critical 2 + Major 5 件)は PR #334 で直接反映済(直前エントリ参照) |
| 2026-04-23 | dev_F-44_hc_saas_template_master.md / dev_mas-045_whatif_to_budget_transfer.md / dev_mas-048_hiring_tco_bep_simulator.md / dev_mas-049_wage_increase_tax_credit_simulator.md | Gemini レビュー(PR #335)指摘を 4 仕様書に反映(Critical 2 + Major 5 件)。🔴 Critical 対応 (F-45): 架空関数 Utils.findLastRowByCol を削除、200_data/202_repository.js 末尾に HeadcountRepository / SubscriptionRepository を新設(InvoiceRepository.append パターン準拠)で層分離原則を維持、Domain 層からの直接シート書き込みを撤回。Step 構成を 4 → 5 Step に再編(Repository 新設を独立 Step 2 に)。🟡 Major 対応: (a) F-44 getWhatIfDefaults の Step 3 実装例に SAAS_ADD 分岐を追記(#25 並列実装対称性漏れ回避)、(b) F-48 冪等性を「同一 ID 上書き」から「純粋追記」に変更し F-45 挙動と統一(ユーザー混乱回避)、(c) F-49 サイドバー UI に「役員特殊関係者除外」常時表示ヒント追加(税制要件の知識差による誤計算防止)、(d) F-49 結果表示エリアに「基本控除 0 時の加算不適用」動的メッセージ追加、(e) F-45 ハイライトをサーバー側 Utilities.sleep(3000) からクライアント setTimeout フェードに変更(UI フリーズ回避)。🟢 Minor 対応: F-44 Constants.RPA_DEFAULTS / SHEET_DEFAULTS / 本案件マスタの 3 者住み分けを明確化。Gemini 誤指摘(Utils.toastResult / Constants.RPA_DEFAULTS を架空と判定 → 実在する)は訂正せず、必要に応じて記述明確化のみ実施。各仕様書の変更履歴に 1 行追記 |
| 2026-04-23 | dev_F-44_hc_saas_template_master.md / dev_mas-045_whatif_to_budget_transfer.md / dev_mas-048_hiring_tco_bep_simulator.md / dev_mas-049_wage_increase_tax_credit_simulator.md / docs/_config.json | 採用まわり 4 案件の開発仕様書を一括作成(F-44 / F-45 / F-48 / F-49)。main スペースで採用まわりを連続実装する前提整備として 4 仕様書を新規起票。実装順序は F-44(基盤・テンプレマスタ) → F-48(本丸・採用 TCO & BEP・P1.5 ★★★) → F-49(賃上げ税制) → F-45(予算転記)。F-42 / F-12 は仕様書完成済のため main で並行着手可能。F-44 ポジション別 / SaaS 別テンプレートマスタ: 18_tmpl_hc_position / 19_tmpl_saas_catalog 新設、PositionTemplateRepository / SaasTemplateRepository 追加、F-11 サイドバーに dropdown 追加で選択 → 全フィールド自動入力。実績ゼロ時(創業直後)の補完として機能。F-48 採用 TCO & BEP シミュレーター: 400_domain/412_hiring_tco_simulator.js 新規で D.9 §2 / §5 の計算フレーム(法定福利費 15.68% + 採用費 + 研修費 + 設備按分 = 給与 600 万 → 実コスト 873 万)を実装、68_report_hiring_tco(DDL 管理外)に試算履歴追記、03_sys_params で 13 パラメータ管理(ハードコード禁止)、離職率 52.7% 調整 Payback 計算。F-49 賃上げ促進税制効果シミュレーター: 400_domain/414_wage_tax_credit_simulator.js 新規で令和 8 年度改正後の中小企業版(最大 45% / 法人税額 20% 上限 / 5 年繰越)を実装、創業期シナリオ(前期役員報酬のみ → 今期従業員採用で +100% 超)で D.9 §9.1 例示の 126 万円控除と一致。F-48 と連携し採用者 1 名の税額控除寄与を計算。F-45 What-if 予算転記: 400_domain/415_whatif_budget_transfer.js 新規で F-11 結果を 22_bud_headcount / 23_bud_subscription に末尾追記、Human-in-the-Loop 準拠(確認ダイアログ + 有効フラグ=FALSE 下書き + 黄色ハイライト + 98_audit_log 記録)、F-44 テンプレ ID 連携余地あり。全 4 仕様書で既存 F-10 / F-11 / F-13 / F-42 / F-43 と同一フォーマット(14 セクション)踏襲、エッジケース各 12-15 件・人間検討事項各 10 件・推奨実行モデル各 4-5 工程を定義。nav §E.5.30〜§E.5.33 追加 |
| 2026-04-23 | TODO_future.md | §1 実装状況サマリー + F-11 / F-13 行の最新化(PR #320 / #329 反映)。(1) F-13 投資回収シミュレーション を 仕様書完了 2026-04-21 → 完了 2026-04-23 に更新(PR #329 600_report/610_service_investment_analysis.js 新設・429 行・NPV/IRR/回収期間/ROI/ROIC(年次 + 加重平均) 実装)。概要欄のシート番号 25_bud_investment_case → 30_bud_investment_case に訂正(PR #325 改番反映)、分析期間 5 カ年 29 列版(PR #324)および Web アプリ doGet 対応 _notifyUser_ フォールバック実装を明記。(2) F-11 MVP 完了日を PR #320 polish(実績平均精度向上・変動費比率連動・5 カ年表示改善)反映で 2026-04-22 → 2026-04-23 に更新、V2 残件補完手段として F-44 / F-45 を明記。(3) §1 件数サマリー: ✅ 完了 28 → 29(F-13 昇格)、📝 仕様書完了 46 → 45(F-13 卒業)、🟡 MVP 完了 1 を新規表示、未着手 140 継続、バグ修正 11 継続。サマリー日付 2026-04-20 → 2026-04-23 に更新。(4) §2 未着手 Phase 別内訳: F-13 は元々「仕様書完了」で未着手ではなかったため P3 未着手数に変動なし(29 維持)。F-11 も「MVP 完了」のまま未着手計上外で変動なし。ソース §3.2 の F-11 / F-13 行が真の SSoT、§1 件数は §3 ソースに整合する形に修正 |
| 2026-04-23 | TODO_future.md | D.8-D.10 抽出 13 案件を TODO_future.md に正式登録(PR #330 の提案を採用)。S-XX は採番衝突のため ID シフト(提案 S-68/69/70 → 実採番 S-69/70/71、S-68 は S-48 後追い対応で既使用)。最終採用 13 件: §3.2 に 8 件追加 F-46 投資カタログマスタ / F-47 RICE スコアリング / F-48 採用 TCO & BEP シミュレーター / F-49 賃上げ促進税制効果 / F-50 投資回収期間ベンチマーク比較 / F-51 PSF 特化 KPI ダッシュボード / F-52 軽量版 Stage-Gate ワークフロー / F-54 Monte Carlo シミュレーション(F-53 欠番)。§3.1 に 3 件追加 S-69 節税・共済効果シミュレーター / S-70 workType 列 DDL 追加 / S-71 フリーランス新法対応管理。§3.3 に 1 件追加 N-59 補助金・助成金管理台帳。§3.4 に 1 件追加 I-34 開発者向け AI ツール投資 ROI 管理。すべて未着手ステータス。全エントリに「(D.8/D.9/D.10 派生)」を明記し調査原典との紐付けを保持。概要内の既存シート番号は PR #325 で確定した 30_bud_investment_case を参照(提案文書の 25_bud_investment_case 記述を訂正)。件数サマリー 未着手 127→140(+13)、Phase 別内訳 P1.5 11→14(+3: F-48 / S-69 / I-34)、P2 62+ → 66+(+4: F-49 / N-59 / S-70 / S-71)、P2.5 11→15(+4: F-46 / F-47 / F-50 / F-51)、P3 27→29(+2: F-52 / F-54)。仕様書本体は未着手のため後日 Gemini + Sonnet パイプラインで個別作成予定 |
| 2026-04-23 | scripts/3_extract_backlog_from_reports.js / tasks/proposals/backlog_from_d8_d10.md | D.8-D.10 調査レポートから新規開発案件候補 13 件を抽出(Gemini + Sonnet 二段パイプライン)。新規スクリプト scripts/3_extract_backlog_from_reports.js で (1) Gemini 2.5 Pro が 3 レポート(計 66K chars)+ CLAUDE.md + failure_patterns + TODO_future.md(125K chars)を読み込んで 14 件の候補を抽出、(2) Claude Sonnet が実装者目線で添削(架空シート名 67_report_investment_analysis を「要調査」に差し替え、F-47 の対象シート誤認識を 25_bud_investment_case に修正、F-46 を P1.5→P2.5 に降格、F-48 を P2→P1.5 に昇格、F-53 を削除)。最終 13 件: F-46 投資カタログマスタ / F-47 RICE スコアリング / F-48 採用 TCO & BEP シミュレーター / F-49 賃上げ促進税制効果 / F-50 投資回収期間ベンチマーク比較 / F-51 PSF 特化 KPI ダッシュボード / F-52 軽量版 Stage-Gate ワークフロー / F-54 Monte Carlo シミュレーション / S-68 節税・共済効果シミュレーター / S-69 workType 列 DDL 追加 / S-70 フリーランス新法対応管理 / N-59 補助金・助成金管理台帳 / I-34 開発者向け AI ツール投資 ROI 管理。F-53 は欠番(1 人目採用前フェーズでは premature として削除、論点は F-48 の人間検討事項へ吸収)。優先度分布: P1.5 ★★★ 3 件(S-68 / F-48 / I-34)、P2 ★★ 3 件、P2.5 ★★ 4 件、P3 ★ 2 件。コスト: Gemini 約 $0.4 + Sonnet $0.45 = $0.85 程度。出力は tasks/proposals/backlog_from_d8_d10.md(20,532 bytes、13 案件 + 分析メモ + 添削差分サマリー)+ tasks/proposals/backlog_from_d8_d10.gemini.md(Gemini 原版 18,074 bytes)。TODO_future.md への正式登録は別 PR で実施(ユーザーレビュー後) |
| 2026-04-23 | ref_investment_roi_kpi_benchmarks.md / docs/_config.json | 調査レポート追加: D.10 投資回収 KPI の実務数値地図。中小企業の投資判断軸(Payback / ROI / NPV / IRR / CAC Payback / LTV/CAC)を採用・業務委託・設備・システム・SaaS の 5 カテゴリーで横断整理。主要ファインディング: (1) 中小企業の回収期間目標が従来 3-5 年から 2 年以内に短期化、(2) 中小企業経営強化税制 B 類型の要求 ROI が 5%→7% に引上げ(2025 年改正)、(3) 採用 Payback は営業・コンサル 6-12 ヶ月 / エンジニア 12-18 ヶ月 / 新卒 24-36 ヶ月、(4) 業務委託判定は「月 50 万 × 12 ヶ月超継続なら正社員化で 20-30% コスト減」の 12 ヶ月ルール、(5) SaaS ユニットエコノミクス健全性 4 点セット(LTV/CAC≧3.0 / CAC Payback≦18 ヶ月 / NRR≧110% / Rule of 40 達成)、(6) 日本 SaaS 実態(freee・マネフォ・Sansan・SmartHR・カオナビの IR 開示値)、(7) 日米 Revenue per Employee 格差 5-7 倍・営業利益率格差 3-5 倍、(8) AI-native 小規模組織は従来比 5 倍速で ARR $30M 到達(ARR/FTE $250K+)。2025-2026 年最新制度・相場準拠、公的統計・一次 IR 開示中心。マイクロ法人の判断軸(法人+個人の税引後手取り合計最大化)・役員報酬最適レンジ・Go/No-Go 早見表を含む。nav §D.10 追加 |
| 2026-04-23 | ref_boutique_fpa_investment_catalog.md / ref_boutique_first_hire_simulation.md / docs/_config.json | 調査レポート 2 本を §D リファレンス資料に追加。(1) D.8 ブティック FP&A 投資カタログ完全設計書: 1 人法人〜100 人規模まで拡張可能な軽量 FP&A 機能を GAS/TypeScript 基盤で内製するための投資カテゴリー網羅的カタログ(8 カテゴリー a–h: マーケ / R&D / IP / 人材 / IT / 財務 / ガバナンス / M&A)+ 統一 Star Schema(6 テーブル)+ Three Horizons × PSF ポートフォリオ配分 + KPI/ベンチマーク体系(SaaS/PSF/日本中小の 3 階層)+ 意思決定フレームワーク(RICE/ICE/Kano/MoSCoW/Stage-Gate/Real Options)+ Rolling Forecast/Monte Carlo の GAS 実装パターン。2025-2026 年最新制度・相場準拠。(2) D.9 一人法人 1 人目採用 財務シミュレーション完全ガイド: 株式会社ビズリンクパートナーズ(創業 7 ヶ月・福井越前市)向け、採用 TCO 完全分解(法定福利 15.68%・給与額面別 400 万〜1,000 万の実額試算)+ 雇用形態別比較(正社員/契約/業務委託/副業/派遣)+ 候補者タイプ別年収相場(AI エンジニア/バックオフィス/営業コンサル・東京 vs 福井格差)+ 7 計算フレーム(ランウェイ/BEP/Payback/Rule of Three/稼働率)+ 3 シナリオ × 3 職種試算 + Exit Cost 試算(労働審判中央値 150 万・平均 285 万・最悪 2,000 万超)+ 福井・国の助成金最新情報 + GO/WAIT/NO-GO 8 項目判定マトリクス + 5 ステージゲート式段階採用フロー。現段階の推奨結論は「WAIT」(AI + 業務委託 + 副業の擬似組織を 6-12 ヶ月運用してから正社員判断)。nav §D.8 / §D.9 追加 |
| 2026-04-23 | dev_mas-013_investment_simulation.md | F-13 入力シート番号を 25 → 30 に変更(衝突回避)。F-13 実装着手時に 25_bud_investment_case が既存 25_bud_finance(BUD_FIN キー・RPA / DDL / バリデーションで使用中)と番号衝突することが判明。仕様書の「20 番台(予算系)の空き番号 25 を使用」は既存シートを確認漏れした誤認識だった。29 は F-42 仕様書で 29_mst_investment_hurdle として予約済みのため 30 番を新設(30_bud_investment_case)。仕様書内 28 箇所を一括置換、人間検討事項の番号採用理由を「25_bud_finance との衝突回避のため 30 番を新設、29 は F-42 予約」に更新。<details> プロンプト記録も実装時の参照整合性を保つため一括置換対象に含めた。動作ロジックは無変更、シート番号のみの変更 |
| 2026-04-23 | dev_mas-013_investment_simulation.md | F-13 分析期間を 10 年 → 5 年に縮小 + 列数表記修正。F-10 5 カ年モデル(94_fs_longterm_forecast)と粒度を揃え、列数を抑えて運用負荷を下げるため、F-13 実装着手前に分析期間を縮小する方針に確定。併せて仕様書の「47 列」表記ミスを正しい「29 列」(9 共通列 + 年次 4 項目 × 5 年 = 29)に訂正。修正内容: (1) 1〜10 → 1〜5 の期間指定(L111)、(2) 年次列の列範囲 J〜AW(10 年分)→ J〜AC(5 年分)(L114-117)、(3) 接頭辞ループ 1 年目〜10 年目 → 1 年目〜5 年目(L119, L208)、(4) エッジケース > 10 → > 5(L227, L395)、(5) 47 列 → 29 列 を 8 箇所(L197, L247, L332, L346, L381, L409, L420, L429)、(6) 列 A〜AW → 列 A〜AC(L247)、(7) 計 40 列 → 計 20 列(L346)、(8) 変更履歴に 1 行追記。<details> プロンプト記録(L518)は歴史アーティファクトとして原状維持 |
| 2026-04-23 | dev_mas-042_investment_hurdle_rate.md / tasks/prompts/task_F-42.md | F-42 ファイル番号 430 → 431 にリネーム(F-11 との衝突回避)。F-11 MVP (PR #315) で 400_domain/430_what_if_simulator.js が実装されており、F-42 仕様書の 400_domain/430_investment_analyzer.js と番号衝突。GAS のファイル番号体系 (000_infra/ 100_config/ ... 900_test/ の 3 桁プレフィックスによる読み込み順制御) で衝突はビルド段階の曖昧化要因となるため、F-42 を 431 に変更。仕様書内 8 箇所 + tasks/prompts/task_F-42.md 6 箇所を一括置換。仕様書の変更履歴に 1 行追記。動作仕様・ロジックは無変更、ファイル番号のみの変更 |
| 2026-04-23 | TODO_future.md | F-44 / F-45 新規起票(F-11 MVP 後継案件 2 件)。F-11 What-if シミュレーション(PR #315 MVP + #320 polish)で表面化した次の発展方向を PRD レベルに登録。F-44 ポジション別 / SaaS 別テンプレートマスタ (P3 ★★): 18_tmpl_hc_position(営業 Jr/Sr、エンジニア Jr/Mid/Sr、CSM、Manager 等)と 19_tmpl_saas_catalog(ChatGPT Team / Notion Plus / GitHub Team / AWS 基本枠 等)の 2 枚を新設し、F-11 サイドバーのテンプレート選択 dropdown から自動入力可能にする。F-11 polish の実績平均プリロードを補完し、実績ゼロ期(創業直後・新ポジション)でもフォールバック値が出る状態を実現。F-45 What-if 結果の予算シート転記 (P3 ★★): F-11 で設定した値を 22_bud_headcount / 23_bud_subscription に新規行として転記する機能。サイドバー結果表示後に「📥 この条件で予算に反映」ボタンを追加、転記前に Human-in-the-Loop 確認ダイアログ、98_audit_log に operation='CREATE' / targetSheet='22_bud_headcount' 等で記録。5 カ年モードで確定した採用計画を F-10 連携ベースラインに直接取り込める運用を実現。両案件とも P3 ★★・仕様書本体は後日作成。件数サマリー 未着手 125→127、Phase 別内訳 P3 25→27 |
| 2026-04-23 | dev_mas-043_hybrid_track_profitability.md / docs/_config.json | F-43 開発仕様書 初版作成。ブティック・一人ファーム構造(BLP)に適した RICE/VALUE/SEED 3 トラック採算管理。汎用「人件費 × 3 倍」ルールが一人ファーム(販管費 15-20%)には構造過剰という認識から、ハイブリッド構造(RICE 2 倍台 + VALUE 5-10 倍)を数値で見える化。実装は 4 Step 構成: (1) Constants.TRACK_TYPES(RICE/VALUE/SEED/UNCLASSIFIED)定数追加、(2) 14_mst_project.案件種別 列追加(DDL スキーマ拡張 + setVali ドロップダウン設定)、(3) 400_domain/420_project_profitability.js に buildProjTrackMap_ 新設 + トラック別 Cost Multiplier 集計(79_pj_monthly 新列)、(4) 600_report/609_datamart_kpi.js に renderHybridTrackSection_ 新設 + 3 新規セクション(稼働時間配分 / 一人ファーム健全性指標 / 失敗パターン検知)を 93_kpi_dashboard に追加。出力先シート不一致(MENU description「78 タブ」vs 実コード 79_pj_monthly)を Phase 1 で確定し本案件では 79_pj_monthly を正として扱う(description 修正は N-38 管掌)。失敗パターン検知 3 種: RICE キャップ超過 / VALUE フロア割れ / 同一クライアント RICE/VALUE 併存時の単価コンタミネーション。Contracts.toDtoList の戻り値プロパティ誤用(rows vs dtos)を注意事項として明示。エッジケース 15 件 + 人間検討事項 10 件 + 推奨実行モデル 4 工程(Step 1/2 Haiku、Step 3/4 Sonnet)を定義。Gemini Pro + Claude Sonnet 添削パイプライン経由(tasks/prompts/task_F-43.md)。nav §E.5.29 に追加 |
| 2026-04-23 | dev_mas-042_investment_hurdle_rate.md / docs/_config.json | F-42 開発仕様書 初版作成。29_mst_investment_hurdle 新設 + HurdleRateRepository(AccountRepository パターン準拠)+ 新規 400_domain/430_investment_analyzer.js で 4 機能を集約: (1) applyGoNoGoToReport_() — F-13 出力 67_report_investment_analysis に Go/グレー/No-Go 判定ラベル列を追記、(2) screenHiringInvestments_() — 22_bud_headcount 採用予定行に対して採用費 + オンボーディング工数(年収 × 0.25)× 離職リスク係数(0.527・厚労省小規模法人 3 年以内離職率)から実効 Payback を算出、(3) detectOutsourcingAlerts_() — 23_bud_subscription の 契約形態='業務委託' 行から月 50 万円 × 継続 12 ヶ月超を検知し Utils.persistLog('WARN', ...) + Utils.toastResult() で 2 段通知、(4) MENU_DEFINITION に「📈 投資案件 Go/No-Go 判定」を追加。初期閾値は 2026 年水準(設備 Payback 2 年 / SaaS 1.5 年 / ERP 3 年 / ROI 20% / 中小経営強化税制 B 類型 7%)を想定し、閾値変動をマスタ更新のみで吸収可能な設計。F-13 の既存ロジックは無変更(出力シートへの判定列追記のみで連携)。Utils.auditLog() の operation 引数にログレベル(WARN 等)を渡す API 誤用を明示的に禁止事項として記載。エッジケース 15 件 + 人間検討事項 10 件 + 推奨実行モデル 4 工程(Step 1 Opus / Step 2 Sonnet / Step 3 Haiku / Step 4 Sonnet)を定義。Gemini Pro + Claude Sonnet 添削パイプライン経由で生成(tasks/prompts/task_F-42.md)。nav §E.5.28 に追加 |
| 2026-04-22 | TODO_future.md / dev_mas-010_financial_modeling.md / dev_mas-011_what_if_simulation.md | F-11 MVP 完了反映 + F-10 simulateWithOverlay 公開 API ドキュメント追加 (PR #315)。新規 400_domain/430_what_if_simulator.js(WhatIfSimulator.run() / getWhatIfDefaults() 公開関数)+ 新規 templates/what_if_sidebar.html サイドバー UI で、ドライバー単位 (人員追加 / SaaS 追加) の操作による P/L・CF インパクトをインメモリで即時試算(スプレッドシート永続化なし)。評価期間 2 モード: ANNUAL (マートエンジン 12 ヶ月 Total) / FIVE_YEAR (F-10 ベースラインに overlay 重ね合わせ)。F-10 側 (600_report/611_financial_modeling.js) に simulateWithOverlay(overlay, opts) 公開 API を新設(既存の projectMonthlyPL_ / computeBsCfLinkage_ / aggregateByFiscalYear_ は無変更で再利用、_applyOverlay_ / _fyToSummary_ ヘルパ追加)。overlay 形式 `{pYm, amt, kind: 'revenue' |
| 2026-04-22 | TODO_future.md | F-40 / F-41 新規起票(法人税計算の精緻化 2 案件)。F-10 / F-13 / F-18 Phase 2 の法人税計算は現状「暦年(1-12 月)ベースで年税額を 12 等分」する簡易実装のため、将来の改善余地として起票。F-40 法人税計算の会計年度ベース化 (P2 ★): CFG_FISCAL_START_MONTH(例: 8)ベースで FY 境界の累進閾値判定(800 万円境界)と均等割年割り計算を行う。computeCorporateTax_ / projectMonthlyPL_ / calcEffectiveTaxRate_ を拡張。会計年度決算書と F-10 予測のズレ解消、初年度・急成長期の精度向上。F-41 繰越欠損金・税制優遇の計算反映 (P3 ★): 4 項目を統合(① 欠損金 10 年繰越控除、② 所得拡大促進税制、③ 中小企業軽減税率特例、④ F-38 R&D 税制統合)。赤字期の税額過大推計の解消、投資家向け損益予測・銀行融資ランウェイ計算の精度向上。前提: F-10/F-13/F-18 Phase 2 + F-38 完了。仕様書起票は実装着手時に改めて実施(本 PR は TODO エントリのみ)。F-39 は「ABC 分析」で既使用のため採番スキップ。件数サマリー 未着手 123→125、Phase 別内訳 P2 60+→61+ / P3 23→24 |
| 2026-04-22 | RQ-033 結果 / research_questions.md / docs/_config.json | RQ-033 Gemini 回答結果を記録 (✅ 完了)。Gemini 2.5 Pro(SaaS アーキテクト + CTO 採用アドバイザー ペルソナ)からの回答を構造化保管。結論: 「AI パイプラインを使いこなせるフルスタック TypeScript エンジニア 1 名(プロファイル A)」の単独採用を圧倒的推奨(★5)、分業体制は非推奨(★1)。プロファイル A 詳細: TS/Node.js/API 必須、生成 AI 開発パイプライン経験歓迎、経験 3-5 年、業務委託 40-60 万/月(週 15-20h)or 正社員 600-800 万、会計知識不問(仕様書 + AI で補完可能)。契約形態: 業務委託 3-6 ヶ月 → Phase 3 商用化時に正社員化 + RSU 付与の段階的アプローチ推奨、R&D 税制では業務委託費を「委託研究費」として税額控除対象に計上可。引き継ぎ戦略: 1/3/6 ヶ月マイルストーン + 代表者関与は週 3h → 2h → 1h に逓減、教育バランス「ドキュメント(AI)90% : ペアプロ 10%」。手放す領域順序: インフラ → 外部 API → フロント、会計ロジック要件定義とデータモデル設計は代表者が死守。採用ルート: YOUTRUST / LAPRAS が最適、有償技術課題(1-2 万円)で「コードの質ではなく AI の操縦力」を評価、求人票文言「Claude Code メタプロンプトを操る次世代の AI ネイティブ開発。GAS の泥臭い限界を AI で突破し、GCP/SaaS 化を牽引する 1 人目アーキテクト募集。会計知識不問。」。代替プラン: 半年以内に見つからない場合は独力 AI 運用継続 + Phase 5 商用化 1 年延期が最適解(★5)、細切れ外注は非推奨(★1)。4 行提言: (1) プロファイル A を業務委託で確保、(2) 仕様書は AI コンテキスト資産として機能、(3) 代表者は会計仕様策定と R&D 税制証拠作りに専念、(4) 分業 PM 化を避ける。後続アクション: N-54 採用要件定義の更新、有償技術課題の設計、YOUTRUST/LAPRAS/Findy 比較、N-42 タイムトラッキング先行導入。nav §C.1.2.13 追加、RQ-033 ステータス ⏳ 準備完了 → ✅ 完了 |
| 2026-04-22 | RQ-033 メタプロンプト / RQ-033 Gemini 投入プロンプト / research_questions.md / docs/_config.json | RQ-033 新規起票: 開発を 1 名に委任する場合の最適人材像・採用戦略 Gemini 相談。代表者が実装負担を 1 名に委任して経営・顧客折衝・製品戦略に専念する前提で、Gemini 2.5 Pro にプロファイル 3 候補・リスクと対策・契約形態(R&D 税制との相性含む)・引き継ぎ戦略・1 人 vs 分業(2-3 人体制 N-54 との関係)・採用ルート・半年以内に見つからない場合の代替プランを構造化相談するための完成版プロンプト。事実パッケージ 5 点を docs/index.md / docs/prd.md / CLAUDE.md / docs/adr/0009-separation-strategy.md / TODO_future.md / dev_F-10 / dev_I-03 / dev_F-18 / failure_patterns.md から抜粋(脚色せず引用)し、Gemini の推測補完を予防。関連案件 N-54(採用要件定義)/ N-47(オンボーディング)/ N-52(業務委託契約書)と直接連動。RQ-009 を候補採番として検討したが S-18 受取利息案件で既使用のため RQ-033 に採番。nav §C.1.2.11 / §C.1.2.12 追加、research_questions.md §3.2 に P1 として登録 |
| 2026-04-22 | security_framework_mapping.md / dev_mas-234_security_roadmap.md / TODO_future.md / docs/_config.json | N-58 セキュリティ基準準拠ロードマップ 新規起票 + CIS Controls v8 マッピング台帳作成。投資家アピール・金融機関顧客監査・P マーク取得(DS-09)の前提基盤として、CIS Controls v8 を骨格に NIST CSF 2.0 / ISO 27001:2022 Annex A / FISC 安全対策基準との対応を整理。マッピング台帳(379 行、73 行テーブル): 全 18 Controls × 56 IG1 Safeguards + 主要 IG2 13 件を網羅、既存案件(N-03/N-25/N-29/N-30/N-37/N-38/N-39/N-40/N-46/N-53/I-08/DS-06/DS-09)を横断マッピング、電帳法・P マークの日本固有マッピング含む。IG1 充足率: ✅実装済 16 / 🟡一部 17 / ❌未 11 / ⚪N/A 12 = N/A 除外ベース 75%。N-58 仕様書: Phase 0(現状把握・1-2h・800_ops/814_audit_security_config.js)→ Phase 1(基礎衛生・4-6h・gitleaks + appsscript-json-guard.yml で failure_pattern #26 再発防止)→ Phase 2(アクセス管理・4-6h・Drive 監査 + GCP SA 最小権限化)→ Phase 3(監査ログ・6-8h・N-37 + Gemini 異常検知)→ Phase 4(データ保護・4-6h)→ Phase 5(インシデント対応・仕様書起票のみ)→ Phase 6(ガバナンス・仕様書起票のみ・ADR-0010)の 7 Phase。エッジケース 10 件 + 人間検討事項 10 件。主要ギャップ 5 件(インシデント対応 / 脆弱性管理 / セキュリティ意識 / バックアップ復旧演習 / データ分類)を特定。N-46 名称衝突回避: 当初「N-46 セキュリティ基準準拠ロードマップ」で依頼されたが N-46 は既に「開発端末・リモート開発環境セキュリティポリシー」で起票済のため N-58 に変更。nav §C.4.1 マッピング台帳 + §E.1.21 N-58 仕様書 追加。TODO_future.md §3 に N-58 追加、件数サマリー 仕様書完了 45→46 |
| 2026-04-22 | dev_mas-010_financial_modeling.md / dev_mas-013_investment_simulation.md / dev_mas-018_financial_statement_linkage.md / TODO_future.md / docs/_config.json | 中長期財務モデリングスイート整備(F-10 新規 + F-13/F-18 補強)。(1) F-10 新規仕様書: 過去 12〜36 ヶ月実績から CAGR + 季節性指数 + 変動費率 + 固定費月平均を抽出し、60 ヶ月月次 P/L ベースライン予測を 94_fs_longterm_forecast に出力。新規 600_report/611_financial_modeling.js(FinancialModelingService / run() / extractHistoricalMetrics_ / projectMonthlyPL_ / writeToSheet_)+ 03_sys_params に F10_ プレフィックス 4 キー。MVP は P/L のみ先行、B/S・CF は F-18 連動エンジン完成後に段階拡張。エッジケース 17 件(実績 12 ヶ月未満・ゼロ除算・異常値 >100%/<-50%・固変区分欠落・Constants.TAX_RATES 累進税率等)+ 人間検討事項 10 件。scripts/1_generate_prompts_gemini.js(Gemini Pro + Claude Sonnet 添削)経由で生成。(2) F-13 補強: §補強 追記で F-10 への重ね合わせ接続口 generateFiveYearCashImpact_(caseId, startYm) と感度分析マトリクス(売上 ±20% / CAPEX ±10% / WACC ±2pp / 回収期間 ±1 年)の UI 設計を追加。(3) F-18 補強: §補強 追記で F18LinkageService.computeBsCfLinkage(plRows, prevBsSnapshot, paramsMap) 公開 API 契約を定義し F-10 / F-13 から共通利用、運転資本連動(在庫・売掛金・買掛金)は後続 F-18b で追加する段階移行方針(Phase 1-3)を明記。nav §E.5.27 に F-10 追加。TODO_future.md §3 の F-10/F-13/F-18 ステータスを仕様書完了に更新、件数サマリー 仕様書完了 42→45 / 未着手 126→123 |
| 2026-04-21 | dev_mas-018_financial_statement_linkage.md | 初版作成。CAPEX(24_bud_capex_loan)をインプットに固定資産計上・減価償却・借入返済の 3 イベント仕訳を自動生成する設計。Phase 1 調査で既存 generateCapexInvoices (403_rpa_capex.js:10) が INV パイプライン経由で大部分を実装済みと判明したため、本案件スコープは (A) 42_trn_journal DDL に 参照元種別/参照元ID 追加、(B) 既存 INV 生成への参照元メタデータ付与、(C) 仕訳ステータス 選択肢に '自動計上案' 先行追加(予約的)、(D) LockService 排他ロック追加、の 4 点に集約。601_datamart_ingest.js は 42_trn_journal を集計ソースとしないため変更不要(601_datamart_ingest.js:6 コメント準拠)。実シート名 24_bud_capex_loan(_loan サフィックス付き)・列名 償却月数/返済月数・CF シート 81_cf_indirect(_monthly なし)の実データ乖離を「実データ検証」セクションで明記。命名規約(参照元種別 vs 既存 WRK_ORDR.参照元区分)は Human Review で要決定とした |
| 2026-04-22 | dev_mas-125_order_status_workflow.md / docs/_config.json | S-53 仕様書 Phase 2-3a〜2-4 を追記して完成。既存骨格(概要〜注意事項)に追加して、エッジケース 18 件(許可遷移 / 禁止遷移 / 終端遷移 / 未定義 oldStatus / 同値再保存 / 複数行ペースト / ヘッダー行 / 列・シート絞り込み / 完納自動遷移の冪等性 / INV 0 件 / 未承認 INV / 残高非ゼロ / 手動完納 / RPA append 経由 / 発注ID 空欄 / 数式セル上書き)、実データ検証 5 件(ステータス値ユニーク抽出 / 発注残高数式判定 / ヘッダー位置 / Utils.auditLog operation 許容値 / onEdit 内ハンドラ実行順序)、関連ドキュメント 7 件(CLAUDE.md 規約・S-50 / S-52 / N-03 / failure_patterns)、人間検討事項 7 件(差戻しの可否 / 検収日列の独立化 / ログ記録方式案A vs 案B / 手動完納警告の要否 / LockService 排他制御 / 数式上書き対応 / 38_ord_status_log のシート番号)を定義。実装プロンプトには VALID_ORDER_TRANSITIONS 定数(5 値: 見積中 / 発注済 / 検収済 / 完納 / キャンセル)・handleOrderStatusEdit_ のバリデーションフロー(複数セル編集は警告のみ・oldStatus が未定義値ならスキップ・正常遷移時のみ Utils.auditLog('UPDATE', ...) 記録)・checkAndFinalizeOrder_ の自動完納判定ロジック(InvoiceRepository.findAll() / OrderRepository.findAll() で全 INV 承認済 ∧ 残高 0 を検証)・InvoiceRepository.save()/append() 末尾への try/catch 付きフック追加方法を完全な JS スニペットで提示。100_config/101_sys_config.js の onEdit 既存 N-03 ログ記録の直後・handleUxAssist 直前への 1 ブロック挿入を指示。動作確認 8 項目(許可遷移 / 禁止遷移 / 終端遷移 / 検収済→完納 / 複数セルペースト警告 / 自動完納成立 / 既完納 ORD への冪等性)を定義。推奨実行モデル(Step 1/2 = Sonnet、案B DDL 追加と nav 登録 = Haiku)を記載。docs/_config.json §E.2 バグ修正・バリデーション節に E.2.21 として nav 登録 |
| 2026-04-21 | dev_mas-214_menu_catalog.md | N-38 仕様書を実装済みコードを正に全面リライト。Constants.MENU_DEFINITION(000_infra/002_constants.js L196〜L324)/ onOpen() 動的メニュー生成化(100_config/101_sys_config.js L323〜L350、privileged・separator・サブメニューの 3 分岐)/ setupAllSchemas() への CAT_MENU システムキー追加(L823)と schemas DDL 追加(L900、Constants.COLORS.HEADER_DARK_GREEN)/ readAuditLog_() 軽量リーダー(L1636〜L1645、readSheetAsDtos_ を直接呼ばず独立実装)/ updateMenuCatalog_() 集計関数(L1651〜L1743、LockService.tryLock(5000) + 末尾 5,000 行集計 + funcName index 6 フォールバック index 5)の 5 ステップ構成を行番号付きで確定。失敗パターン #18-#20(メニュー名造語・シート名誤記・コード未読)対策として実装プロンプトに Read 逐語確認ルールを明記。エッジケース 13 項目(未作成・データゼロ・未実行・MENU_DEFINITION 未登録 funcName 除外・5,000 行超ウィンドウ・index 5 フォールバック・破損日時・privileged × 非特権・LockService 失敗・description 未設定 等)と人間検討事項 7 項目(集計期間 03_sys_params 外出し・配置順・シート保護・クイックアクション列・未使用検出・登録漏れ検知・特権カタログ表示方針)を網羅。推奨実行モデルを Step 1-2=Opus / Step 3-4=Sonnet / Step 5=Haiku に再整理 |
| 2026-04-21 | dev_mas-126_auto_inv_from_ord.md | 初版作成。継続契約ORDから月次INVを自動生成する機能の仕様書 |
| 2026-04-21 | dev_mas-123_commitment_dashboard.md | 初版作成。S-51 発注残高・予算執行ダッシュボード仕様書。OrderDTO の科目名欠如を設計課題として記載 |
| 2026-04-22 | dev_mas-175_ocr_fallback_manual_entry.md / TODO_future.md / docs/_config.json | I-33 新規起票 + 開発仕様書初版作成。I-03 v2 で DocAI 抽出失敗した PDF(99_error/ 配置)の救済ツール。5 Step 構成: (1) サイドバー「🚨 OCR 失敗 PDF」一覧 UI + 4 アクション、(2) 手動メタデータ入力フォーム(10 項目・PartnerRepository プルダウン連携・税抜/消費税/税込の三者整合検証)、(3) 書類種別分類(請求書/見積書/領収書/契約書/その他、請求書以外は 06_not_invoice/ 退避)、(4) Gemini 直接投入フォールバック(callGeminiForReceiptOnVertex_ 流用 + confidence: 0.6 固定)、(5) フロー分岐(HitL 合流 / 直接 INV 作成 / 対象外退避)。前提: I-03 v2 Step 4-C runInvoiceBatch_ + N-40 Vertex AI 移行。関連: I-13(写真レシート OCR 統合余地)/ I-27(取引先マスタインライン自動登録)。新規ファイル 400_domain/414_ocr_fallback_service.js / templates/ocr_fallback_form.html + 000_infra/002_constants.js に FOLDER_KEYS.NOT_INVOICE_FOLDER_ID / MENU_DEFINITION 新セクション追加。エッジケース 17 件(Gemini 429/503・JSON パース失敗・三者整合ずれ・T 番号形式・並行実行 LockService・ファイル削除・未来日付・サイズ上限・削除 CANCEL 等)と人間検討事項 10 件(Gemini 料金・自動分類閾値・手動入力負荷軽減・I-13 統合・見積書独立案件起票・サイドバー配置・UI 形式・信頼度固定値・dev 初期展開・監査ログ)を定義。推奨実行モデル(Step 1/4/5=Haiku / Step 2/3=Sonnet / 統合テスト=Opus 4.7)明記。nav §E.6.32 追加、TODO_future.md §3.4 に I-33 行追加、件数サマリー 仕様書完了 41→42 |
| 2026-04-22 | dev_mas-135_payment_method_master.md | 初版作成。決済手段マスタ 18_mst_payment_method の新設仕様書。DDL 設計(MST_PMTM システムキー・7 列構成)・PaymentMethodRepository 新設(AccountRepository/PartnerRepository のキャッシュパターン踏襲)・決済日計算ロジックの共通化(400_domain/402_rpa_subscription.js L206-222 / 405_rpa_adhoc.js L94-101 / 406_rpa_pipeline.js L155-164 のインライン計算を RpaCommon.resolveSettlementTerms + calcSettleDate に集約)・onEdit 補完の 2 段フォールバック拡張(S-48 applyPartnerPaymentTerms_ の直後に applyPaymentMethodTerms_ を追加、「決済手段」列編集時にも発火)・プレビュー承認式冪等マイグレーション(800_ops/812_migration_payment_method.js 新規・Human-in-the-Loop)の 5 ステップ設計。優先順位 (a) 取引先マスタ(S-48) → (b) 決済手段マスタ(本件) → (c) 個別手入力値 を resolveSettlementTerms で単一参照点化。Phase 1 で S-47/S-49/F-35 が 17_mst_intellectual/18_mst_tax_rate/19_mst_loan_pattern を予約済み(未実装)であることを Read で確認し、シート番号衝突リスクを「人間が検討すべき事項」に明記。Utils.addMonths(004_utils.js L389)/Utils.adjustToBusinessDay(L430)は既存ユーティリティを再利用、'翌営業日'→'後'/'前営業日'→'前' のマッピングを確定。エッジケース 14 件(マスタ未登録・月末 31 日動的丸め・休日調整空欄・ラグ 0/負値・現金/未定の扱い・既存値保護・2 回目実行冪等・(a)(b) 両存在・部分補完・表記ゆれ・direction 引数・同名マスタ後勝ち・決済手段単独編集・マスタ未整備時互換性)と人間検討事項 7 件(TODO 既出 4 件 + シート番号最終決定・承認 UI 方式・INV onEdit スコープ・休日調整値域)を網羅。推奨モデル(Step 1/2=Haiku、Step 3=Opus、Step 4/5=Sonnet)を明記。nav §E.2.23 追加 |
| 2026-04-22 | dev_mas-133_fiscal_year_archive.md | 初版作成。トランザクション系 4 シート(31_wrk_order / 32_wrk_invoice / 33_wrk_bank / 42_trn_journal)の行積み上がり対策 E として、会計年度単位でのアーカイブ機構を設計。新規 800_ops/812_migration_s61_fiscal_year_archive.js(公開関数 archiveFiscalYear()、LockService 排他+シート存在チェックによる冪等性ガード+コピー→件数検証→降順 deleteRow ループの厳密フロー)と 200_data/202_repository.js の findAll() 4 関数末尾追記(正規表現 ^arc_{ベース}_\d{4}$ で複数年度のアーカイブシートを透過マージ)の 2 ファイル+ 000_infra/002_constants.js MENU_DEFINITION「📋 サイドバー: 🔧 マイグレーション」カテゴリへの 1 行追加で構成。Phase 1 で Constants.getParam に書き戻し手段が無いこと(002_constants.js L147-167)と Utils.getIdPrefixConfig(004_utils.js L482-487)/ handleUxAssist(301_ui_assist.js L75-76)が String.includes 部分一致を行うことを Read で確定し、命名規則は arc_{ベースシート名}_{年度} を採用しつつ arc_* プレフィックスの部分一致衝突リスクを「注意事項 #1」と「人間検討事項 #7」に明示。冪等性は アーカイブシート存在チェック(PropertiesService 直接利用は CLAUDE.md 規約により禁止のため)。新規ファイル番号は CLAUDE.md「次のマイグレーションは 810 から」記述後に 810/811 が後発で消費済(810_migration_partner_payment_terms.js / 811_audit_checker.js 既存)のため空き番号 812 を採用。メニュー実体は 100_config/101_sys_config.js ではなく 000_infra/002_constants.js の MENU_DEFINITION 動的ループ(N-38 構造)であることを Phase 1 で確定し編集先を後者に固定。シート別判定列は OrderDTO.起票日時 / InvoiceDTO.発生日(P/L計上日) / BankTxDTO.決済日_実績(空欄時 決済日_計画 フォールバック)/ JournalEntryDTO.発生日(P/L計上日) を 003_contracts.js から裏取りして確定。エッジケース 17 件(0 件アーカイブ・冪等性二重実行・コピー件数不一致ロールバック・CFG_FISCAL_YEAR_START 未登録フォールバック・境界日 <= 比較・LockService タイムアウト・findAll アーカイブ非存在・複数年度マージ・マート期間フィルタ波及・判定列空欄/不正書式・33_wrk_bank 実績日↔計画日フォールバック・10M セル制限警告・過去アーカイブ修正運用・getSheetByKey フォールバック等)と人間検討事項 11 件(粒度・別ファイル化判断・横断読込コスト・命名規則最終確定・冪等性方式最終確定・arc_ ガード追加要否・シート保護要否・自動バックアップ連携・本番計測・G-03 移植)を網羅。推奨実行モデル(Step 1=Sonnet / Step 2=Sonnet / Step 3=Haiku)を明記。nav §E.6.31 追加 |
| 2026-04-22 | dev_mas-132_monthly_row_grouping.md | 初版作成。32_wrk_invoice(発生日(P/L計上日)基準)/ 33_wrk_bank(決済日_実績基準)の行を年月単位で自動グルーピングし、過去月をデフォルトで折りたたむ新機能の仕様書。新規ファイル 300_ui/303_row_grouping.js(公開 API: buildMonthlyGroups(target) / clearMonthlyGroups(target)、4 本のメニューラッパー buildMonthlyGroupsInv / buildMonthlyGroupsStl / clearMonthlyGroupsInv / clearMonthlyGroupsStl)と、000_infra/002_constants.js MENU_DEFINITION への新カテゴリ「📋 サイドバー: 📂 表示設定」4 項目追加で構成。Phase 1 で onOpen() の所在を 100_config/101_sys_config.js:323 と確定しつつ、メニュー項目の実体は 002_constants.js L206 MENU_DEFINITION を動的ループする構造のため編集先は constants 側である旨を明記。InvoiceRepository._getSheet() / BankTxRepository._getSheet() のシステムキー('WRK_INVC' / 'WRK_BANK')、InvoiceDTO / BankTxDTO のヘッダー名(請求ID(INV) / 決済ID(STL) / 発生日(P/L計上日) / 決済日_実績)、Utils.getSheetByKey / getTrueLastRow / parseDateToYm / toastResult のシグネチャを 000_infra/ から裏取りして引用。破壊的変更(ソート)対策として LockService.waitLock(0) による即時排他 + 事前確認ダイアログ(OK_CANCEL)+ finally でのロック解放を必須化、Sheet.sort() 禁止で Range.sort({column, ascending: true}) のみ使用、グループ深さ 1 限定、sheet.getRowGroup() の null チェック必須、列インデックスはヘッダー名から動的取得の 6 点を注意事項として明記。エッジケース 14 件(未ソート実行・日付空欄/不正書式・ヘッダーのみ・全データ同一年月・全データ過去月・同時実行・getRowGroup null・CANCEL 押下・ソート列不在・シート不在・既存深さ 2 グループ・大量同一年月・数万行規模)と人間検討事項 10 件(TODO 既出 3 件 + 新カテゴリ新設判断・ソート周知・自動再構築拡張・深さ 2 対応・展開状態復元・他時系列タブ展開・アンドゥ可否)を網羅。302_filter_presets.js(S-58 で予約)との採番整合のため 303_row_grouping.js を採用。推奨実行モデル Sonnet を明記。nav §E.2.22 追加 |
| 2026-04-22 | dev_mas-131_conditional_formatting.md | 初版作成。完了行グレーアウト(条件付き書式)の設計書。100_config/101_sys_config.js の setupAllSchemas() 末尾(L1531/L1532 間)に applyCompletionFormattingRules_() 呼び出しを追加し、31_wrk_order(発注ステータス=完了)/ 32_wrk_invoice(請求ステータス=決済完了 OR 自動仕訳JNL_ID 非空)/ 33_wrk_bank(決済ステータス=消込済)/ 35_wrk_receipt(処理結果=消込済)/ 21〜26 番台予算タブ(最終起票年月日 非空)に対して背景 #d9d9d9 × 文字色 #999999 × 取り消し線の条件付き書式を冪等に適用。Phase 1 で 100_config/101_sys_config.js L1301〜1310 のプルダウン定義を実データ正として確定し、DTO コメント(003_contracts.js)の '検収済'/'完了' を '完了'/'決済完了' に更新(仕様書の「実データ検証」セクションに対応表)。WRK_RCPT のみ A 列が 管理ID でチェックボックスを持たないため例外的に空行除外を A 列で実施し、CLAUDE.md「列 B = ID 列」規約から逸脱する根拠を明記。Constants.MENU_DEFINITION の「📋 サイドバー: 🔧 開発・設定」カテゴリ(L240〜252)に「🎨 完了行の書式を再適用」項目を追加。エッジケース 11 件(ステータス列欠落 / 空行除外列欠落 / Utils.getSheetByKey null / 重複実行冪等 / 数万行描画速度 / DDL 列追加追従 / 表記揺れ / SKIP:* 終端の扱い等)と人間検討事項 7 件(既存手動ルール消去周知 / 取消ステータス追加判断 / SKIP:* 扱い / 最終起票年月日のみで完了判定の妥当性 / 数万行描画速度 / setupAllSchemasIncremental への呼び出し追加要否 / MST_DICT を SSOT とする将来拡張)を網羅。nav §E.2.21 追加 |
| 2026-04-22 | dev_mas-129_quote_comparison.md | 初版作成。31_wrk_order への案件ID(CASE_YYYYMMDD_NNNN)紐付け・HTMLモーダルダイアログによる横並び比較ビュー・採用決定とステータス一括更新(採用ORD→発注済 / 同一案件の他ORD→失注)の3フェーズ設計。OrderDTO に 案件ID プロパティ末尾追加、WRK_ORDR DDL ヘッダー末尾追加、MST_DICT 自動挿入の 発注ステータス カテゴリに ['ORD_LST','失注'] 追加(既存 existingEntries Setチェックで冪等性担保)、Constants.MENU_DEFINITION に新カテゴリ 📋 サイドバー: 📦 発注管理(source: 'sidebar')を追加。新規ファイル 400_domain/408_quote_comparison.js(assignCaseId_ / showQuoteComparison_ / adoptQuote_ / generateCaseId_)と templates/quote_comparison_dialog.html(google.script.run + withFailureHandler + クライアント側 window.confirm で採用確認)を定義。OrderRepository.save(dtos) が writeDtosToSheet_ 経由の全置換方式である点を踏まえ、採用決定は findAll() → 楽観的ロック検証(同一 案件ID 全 DTO の 発注ステータス === '見積中' 再確認)→ 採用/失注振分け → save(全dtos) の流れで実装。S-53(発注ステータス遷移ワークフロー標準化)の前提パスを「見積中→発注済→検収済」「見積中→失注」の2系統で確定。CASE_ 採番は ID_PREFIX_MAP 設計意図(特定シート紐付け)と合わないため独立ヘルパー generateCaseId_() で実装する方針を採用。エッジケース 13 件(誤シート実行・選択0件・ステータス混在・案件ID既設定の上書き確認・選択2件以上・案件ID空・単独見積・楽観的ロック失敗・ordId 不在・save 例外・並行編集・案件ID 列未追加・全件採用済み)と人間検討事項 7 件(採番ルール・保持期間・S-53連動・表示項目・自動INV起票連動・失注フィルタ規約・ダイアログ vs サイドバー判断)を網羅。nav §E.6.30 追加 |
| 2026-04-22 | dev_mas-128_order_approval_workflow.md | 初版作成。31_wrk_order への金額閾値ベース承認ワークフロー追加仕様。DDL に 5 列追加(承認ステータス・申請者・申請日時・承認者・承認日時)、handleUxAssist(300_ui/301_ui_assist.js)内に申請/承認フロー実装、Constants.getParam('APPROVAL_THRESHOLD_ORDER', 0) で閾値判定、閾値以下は自動承認(SYSTEM)・閾値超は MailApp.sendEmail で承認者通知。Phase 1 で onEdit の所在を 100_config/101_sys_config.js L409 と確認し、新規 onEdit 定義を回避(GAS 同名関数制約)。OrderRepository.save(dtos) がシート全置換であることから LockService.tryLock(30000) 取得後に再 findAll() を必須化。エッジケース 13 件(0円自動承認・マイナス値中断・閾値/承認者未設定中断・承認済の金額変更で自動巻き戻し・不正遷移検知・ロック失敗・ID 空・メール上限到達・NaN 閾値ガード・重複行)と人間検討事項 8 件(S-32 共通化・代理承認・取引先別例外・閾値初期値・複数承認者・却下理由列・WORM 監査ログ整合・リマインダ)を網羅。nav §E.6.29 追加 |
| 2026-04-20 | dev_mas-238_web_ui.md | 初版作成。Web UI / フロントエンド移行仕様書。GAS Web App JSON API + Next.js on Cloud Run 方式を定義 |
| 2026-04-21 | dev_mas-167_stl_duplicate_cleaner.md | 初版作成。33_wrk_bank の STL 重複行(Action A 多重実行等)を 3 パターンで検出・削除する専用ツールの仕様。Human-in-the-Loop 対応の確認ダイアログ付き |
| 2026-04-21 | scripts/1_generate_prompts_gemini.js | メタプロンプト強化 (Case A + hybrid)。N-40 生成時にメタプロンプトが薄くアーキテクトからの指示が 2〜3 行の概要に留まった反省を反映。(A) systemContext 先頭に ⚠️ 最重要指示 4 条(テンプレート 14 セクション遵守 / failure_patterns #1〜#27 必須反映 / コアコード実在関数引用必須 / 各 Step 5 項目以上+エッジケース 10 件以上)を追加。(B) generateMetaPrompt 内の【出力品質要件】ブロックを A〜E の 5 条で新設し、詳細性の最低ライン・テンプレート準拠・コアコード引用・failure_patterns 反映・スラグ命名規則を明文化。(C) 【推論すべき事項】を 4 項目→10 項目に拡張(再利用関数 / アーキ方針 / データアクセス規約 / エッジケース網羅 / 冪等性 / HitL / テスト / 影響範囲 / 運用デプロイ / 並行稼働)。(D) 出力テンプレート内の [※ここに...] プレースホルダを「最低 5 項目以上の箇条書き」「最低 10 件以上をテーブル化」等の具体的な数値要件に置換し、Step 2-2 は 5 観点(アーキ方針 / 再利用関数 / データアクセス規約 / failure_patterns / 段階移行)を必須化、Step 2-3a は 17 種のエッジケース分類候補を明示。これにより Gemini Pro が薄い指示を返すリスクを低減 |
| 2026-04-21 | dev_mas-037_depreciation.md | 初版作成。F-37 ソフトウェア資産の減価償却管理仕様書。新規シート 29_bud_software_asset(DDL 管理・13 列)、SoftwareAssetDTO @typedef、SoftwareAssetRepository(既存ヘルパー readSheetAsDtos_/appendDtosToSheet_ 再利用)、新規 400_domain/408_rpa_depreciation.js(generateDepreciationInvoices 公開関数、401_rpa_hc.js を骨格テンプレートとして流用)、600_report/604_datamart_bs.js への dmValidateSoftwareAssetBalance_ 追加、100_config/101_sys_config.js の BUD_SW_AST DDL スキーマと confSheet.appendRow 登録、000_infra/002_constants.js の ID_PREFIX_MAP/SHEET_DEFAULTS/MENU_DEFINITION(「📋 サイドバー: 📒 経理業務 (RPA / Action)」カテゴリへ「📥 ソフトウェア減価償却」追加)への追記を定義。Human-in-the-Loop(請求ステータス=未処理)による承認フローを維持し、冪等性キーは InvoiceDTO に 管理ID カラム未実在 を Phase 1 で判明したため 32_wrk_invoice ヘッダー改修を回避し、既存 isDuplicate_ パターンに倣って 摘要文字列 【RPA:DEP】AST_NNNN_YYYY-MM 資産名 月次減価償却費 の完全一致 で判定する方針に変更。シート番号は当初提示の 25_bud_software_asset が 既存 25_bud_finance と衝突 するため 29_bud_software_asset に確定。B/S 集計は Phase 1 で 600_report/602_datamart_main.js L49・604_datamart_bs.js L14-32 を Read し、科目マスタに「ソフトウェア」を 表示区分=無形固定資産 で登録すれば 既存 dmGetBsSectionId_ → asset_nca 分類で自動反映される ため、台帳直接集計は破壊的変更を避けて dmValidateSoftwareAssetBalance_ による 台帳残高 vs B/S 集計の ±1 円検証警告 に限定。減価償却の複合仕訳(借方: 減価償却費 / 貸方: ソフトウェア)は 決済手段='仕訳振替' の INV 1 件として起票し既存 Action A の振替ロジック(410_subledger_engine.js)に処理委譲、仕訳エンジンの改修は行わない方針。エッジケース 14 項目(ゼロ除算・端数・必須項目欠損・ステータス除外・有効フラグ・償却開始年月未来・最終月残簿全額・冪等性重複・科目未登録エラー停止・取得価額非整数・耐用年数範囲バリデーション・対象年月不正引数・シート不在ハンドリング)と人間検討事項 9 項目(耐用年数入力ルール・月次トリガー設定・B/S 集計方式・複合仕訳検証・資産取得時 INV 起票・書き戻し方針・除却処理・取引先名の扱い・F-34 連携)を定義。推奨実行モデル(Step 1=Haiku / Step 2/4/5=Sonnet / Step 3=Opus)を明記。nav §E.5.24 追加 |
| 2026-04-21 | dev_mas-216_vertex_ai_migration.md / TODO_future.md / docs/_config.json | N-40 開発仕様書 初版作成 (scripts/1 + scripts/2 パイプライン経由)。ADR-0008 実装 + ADR-0007 callClaudeApi_() 残タスクの仕様を確定。scripts/1_generate_prompts_gemini.js (Gemini Pro gemini-2.5-pro が failure_patterns.md / dev_spec_prompt_template.md / コアコード 4 ファイルを読込んで「神の視点」プロンプトを設計、cost $0.45) + Claude Sonnet 添削フローで生成された task_N-40.md をベースに執筆。主要設計: (1) ScriptApp.getOAuthToken() OAuth 2.0 認証 (Service Account JSON 不使用)、(2) callClaudeApiOnVertex_() を 004_utils.js に新規実装 + callGeminiForReceiptOnVertex_() を 502_receipt_reader.js に追加し既存 callGeminiForReceipt_() から Env.gcpProjectId() 分岐で委譲する 2 段階並行稼働方式、(3) asia-northeast1 → us-east5 リージョンフォールバック 1 回、(4) failure_patterns #26 対応で appsscript.json の oauthScopes 手動追加時は既存全スコープ完全列挙を必須化、(5) 回帰テスト合格基準 (領収書 5〜10 件で主要項目一致率 95% 以上) 設定。TODO_future.md ステータス: 未着手 → 仕様書完了 (2026-04-21)、件数サマリ 仕様書完了 40→41 / 未着手 112→111。nav §E.1.18 追加。設計根拠プロンプトは tasks/prompts/task_N-40.md.done / task_N-40.gemini.md に保管 |
| 2026-04-21 | dev_mas-215_gcp_project_setup.md / TODO_future.md | N-39 完了 (GCP プロジェクト整備、dev/prod 分離)。Part 1 (GCP コンソール 2 プロジェクト新設・Billing・API 有効化・IAM) / Part 2 (Env モジュール gcpProjectId() / vertexRegion() 実装、PR #277) / Part 3 (prod 側に GCP_PROJECT_ID_PROD = bizlp-gas-accounting-prod 登録済) 全完了を確認。prod 環境で testEnvGcp() 実行し GCP project ID: bizlp-gas-accounting-prod、Vertex region: asia-northeast1、Environment: prod の 3 値が期待通りログ出力。N-40 (Vertex AI 本番移行) の前提整備が揃った。TODO_future.md ステータス: 仕様書完了 → 完了 (2026-04-21)、件数サマリ 完了 27→28 / 仕様書完了 41→40、Phase 別内訳 P2 件数 58→57 |
| 2026-04-21 | dev_mas-147_invoice_ocr_auto_posting.md / RQ-008 meta prompt / RQ-008 result / TODO_future.md / dev_I-29 / docs/_config.json | dev_I-03 全面改訂 (v1 Gemini 単独 → v2 Document AI + Gemini ハイブリッド)。RQ-008 Gemini Deep Think v2 結果をメタプロンプト・結果ドキュメントとして永続化。仕様書を全面書き直し: 責務分離 (Fact=DocAI / Reasoning=Gemini)、T 番号カラム必須化、多段 Pass 0〜6 (1:N 分割マッチ実装格上げ)、複合確信度スコア (baseFactConf × 0.8 + geminiConf × 0.2) + 即死ルール (total_amount.confidence < 0.80 or currency != JPY で強制 LOW)、HitL サイドバー UI (PDF プレビュー + 候補提示 + 承認/オーバーライド/スキップ)、フォルダ分離・電帳法リネーム運用 (02_processed/請求書/YYYY-MM/ + YYYYMMDD_取引先名_税込_docNumber.pdf、I-08 統合)、非同期キュー 1〜2 件化 (DocAI 処理時間 10〜15 秒/件)、採否判断マトリクス (30 枚未満=v1 / 30〜200 枚=v2 / 1000 枚〜=Cloud Run)。前提案件に N-39 (GCP / Document AI 有効化) と I-08 (電帳法リネーム) を追加、関連に I-29 (Subset Sum 共通ヘルパー統合方針) を追加。v1 資産は feat/I-03-invoice-ocr-auto-posting ブランチに凍結、v2 実装時に必要部分のみ cherry-pick。nav §C.1.2.9 / §C.1.2.10 に RQ-008 追加 |
| 2026-04-21 | dev_mas-215_gcp_project_setup.md | N-39 Part 3 スクリプトプロパティ登録方法を簡素化。「各環境に _DEV / _PROD 両キーを必ず設定」→「各環境には対応するキーのみ必須 (dev に GCP_PROJECT_ID_DEV、prod に GCP_PROJECT_ID_PROD)、反対側キーはデバッグ用の任意設定」に変更。Env.gcpProjectId() は Env.isDev() に応じて片方のみ参照するため機能上は不要な設定を減らし、運用の混乱を回避。併せて Part 1 Step 1〜4 の prod 実施完了 (2026-04-21) を変更履歴に記録 |
| 2026-04-21 | 000_infra/001_env.js | N-39 Part 2 実装: Env モジュール拡張。gcpProjectId() (環境に応じて GCP_PROJECT_ID_DEV / _PROD を自動切替、未設定時は空文字) / vertexRegion() (未設定時はデフォルト asia-northeast1) の 2 メソッドを追加。ヘッダーコメントの「必須スクリプトプロパティ」リストに 3 キー (GCP_PROJECT_ID_DEV / GCP_PROJECT_ID_PROD / VERTEX_REGION) を追記。既存メソッドは変更なし。次は Part 3 (スクリプトプロパティ登録、代表者手動) → 動作確認 → N-39 完了 |
| 2026-04-20 | dev_mas-028_arr_mrr_tracking.md | 初版作成。F-28 ARR/MRR トラッキング仕様書。21_bud_pipeline(予算_売上パイプライン(狩猟/農耕))の継続契約データから月次 ARR/MRR・New/Expansion/Churn/Net New MRR を自動集計し新規シート 69_kpi_saas に出力する純粋レポーティング機能を設計。000_infra/003_contracts.js へ PipelineDTO @typedef 追記、200_data/202_repository.js へ読み取り専用 PipelineRepository.findAll 追記、新規 600_report/610_datamart_saas_kpi.js に buildSaaSMetrics() 実装、100_config/101_sys_config.js の schemas に KPI_SAAS(8列:対象年月/MRR/ARR/New MRR/Expansion MRR/Churn MRR/Net New MRR/顧客数)+confSheet.appendRow 追加、000_infra/002_constants.js の MENU_DEFINITION「📋 サイドバー: 📊 マート更新」カテゴリに「📈 SaaS KPI (ARR/MRR) 更新」メニュー追加。21_bud_pipeline への書き込み禁止・毎回クリア→全件書き込みで冪等性保証・契約形態 フィルタ値は MCP 実データ確認して定数 CONTINUOUS_CONTRACT_TYPE に切り出し(SHEET_DEFAULTS の スポット(狩猟) から対称類推しない方針)。エッジケース 11 項目(計上開始年月空欄・継続月数 0 以下・継続月額 0(要設計判断)・取引先名空欄・初月扱い・複数契約合算・文字列月数・有効フラグ列欠落・未来月・月数上限・契約形態空欄)と人間検討事項 7 項目(MRR 計上基準の契約 vs 入金・年額の月額換算前提・顧客識別キーの表記揺れ・0 MRR 扱い 2 案・算出結果定期検証・月次スナップショット保存要否・S-09 請負売上との整合)を定義。推奨実行モデル(Step 1-2=Haiku / Step 3-4=Sonnet / 実行前タスク=Sonnet)を明記。nav §E.5.22 追加 |
| 2026-04-21 | dev_mas-215_gcp_project_setup.md | N-39 仕様書 Step 3 改訂: Generative Language API の扱いを「任意で有効化」→「明示的に有効化しない」に変更。ADR-0008 方針 (本番 AI API は Vertex AI のみ) との整合を明確化し、既存 Gemini 呼び出しは "default gemini project" 側で N-40 完了まで継続させる方針を明文化。併せて dev プロジェクト側の Step 3 実施完了 (2026-04-21) を変更履歴に記録 |
| 2026-04-21 | dev_mas-027_m365_worktime_estimation.md | 初版作成。M365 Graph API からの監査ログ取得・Gemini API による PJ 推定・セッション区切りベース(CFG_M365_SESSION_TIMEOUT_MINUTES、デフォルト 30 分)の作業時間集計仕様を定義。Human-in-the-Loop 確認フロー(37_wrk_timesheet の ステータス 列 未確認/確認済 + 手動修正時間(分) 列による推定値上書き)と夜間バッチ冪等性(日付別 DELETE-INSERT:findAll()→filterで対象日除外→save()全置換)を設計。新規 GAS 500_import/503_m365_importer.js、新規 DDL シート 2 件(50_log_m365_audit / 37_wrk_timesheet:物理シート名は 500_import/ レイヤー対応の 50 番台と既存 wrk_ グループ(3X 番台)に整合。9X 番台は 90_test_results 等 DDL 非管理タブと衝突するため回避、71 番台は 71_bs と衝突するため回避)、200_data/202_repository.js 末尾への M365AuditLogRepository / TimesheetRepository 追記、100_config/101_sys_config.js の schemas/confSheet.appendRow / 000_infra/002_constants.js の SHEET_DEFAULTS / MENU_DEFINITION(📋 サイドバー: 🔍 消込・マッチング カテゴリ)への追記を設計。Graph API OAuth2 認証方式は Phase 1 時点で既存コードに前例なし→ ①GAS OAuth2 ライブラリ / ②Client Credentials + スクリプトプロパティ / ③Refresh Token ハイブリッド の 3 案を提示し実装前確認項目として明示。F-26 の 43_trn_timesheet(S-33 の手動入力工数)と並立させ、TDABC 入力源としての代替/補完方針は「人間が検討すべき事項」で整理。エッジケース 13 項目(LLM PJ 特定不可・時間差マイナス・重複ログ・セッションタイムアウト未設定・手動修正優先・同日再実行冪等・トークン期限切れ・レート制限・6 分実行制限・マスタ未登録 PJ・システムアカウント除外・未確認レコード扱い)と人間検討事項 8 項目(Graph API 認証方式・取得スコープと保持期間・プライバシー配慮・推定精度検証・LLM プロンプト設計・S-33 との代替 or 補完・未確認レコード TDABC 反映・Gemini コスト試算)を定義。失敗パターン #17/#18/#21/#22/#23 への対策を全面反映。nav §E.6.28 追加 |
| 2026-04-21 | dev_mas-026_tdabc_cost_allocation.md | 初版作成。TDABC計算ロジック(時間単価=人件費合計÷総供給時間、PJ別配賦額=PJ別消費時間×時間単価)・2ステップ運用フロー(79_pj_tdabc_calc で中間確認 → 78_pj_pl 共通費配賦セクションに差引設計で反映)・S-33(43_trn_timesheet シート)依存設計を定義。新規 400_domain/421_tdabc_allocator.js に TimesheetRepository / HeadcountRepository を同居(S-33 実装確定後に 202_repository.js 移管予定)。CLAUDE.md「DDL 非管理タブ」に 79_pj_tdabc_calc 追記、MENU_DEFINITION の「📊 マート更新」カテゴリに 2 項目(🕐 TDABC計算実行 / 🕐 TDABC→78タブ反映)追加。エッジケース 11 項目(総供給時間=0・人件費=0・43_trn_timesheet 未存在・未配賦時間あり・冪等性再実行等)と人間検討事項 7 項目(総供給時間算出ロジック A/B/C 案・S-33 との設計整合 α/β 案・人件費科目識別ロジック・未配賦時間の扱い A/B 案・工数粒度・対象期間・単価月次変動)を定義。nav §E.5.21 追加 |
| 2026-04-21 | dev_mas-023_monthly_comments.md | 初版作成。月次経営コメント入力機能の開発仕様書。マート再生成(buildBudgetTrendDataMart で 61_pl_monthly 等が clearContents → 全行再書き込みされる)でコメントが消える問題を回避するため、専用永続シート 94_dat_monthly_comments(DDL 管理・7 列: コメントID/対象シート名/対象年月/対象行ラベル/コメント本文/入力者/最終更新日時)に保存する方針を採用。MonthlyCommentRepository を 200_data/202_repository.js 末尾に新設し、既存 JournalRepository パターン+内部ヘルパー readSheetAsDtos_ / writeDtosToSheet_ / appendDtosToSheet_ をそのまま再利用(新規ヘルパー不要)。saveComments_ の同時保存競合は LockService.getScriptLock().waitLock(5000) で防御(Utils には追加せず GAS 組み込みサービスを直接使用)。MENU_DEFINITION は Phase 1 調査時点で「📈 FP&A」相当のカテゴリが未実装と確認したため、既存 📋 サイドバー: 📊 マート更新 カテゴリへ「📝 月次経営コメント入力/編集」項目を 1 行追加。HTML ダイアログは templates/monthly_comments_dialog.html 新規作成。Step 1(型定義・スキーマ・ID 発番)/ Step 2(Repository)/ Step 3(サーバーサイド関数 4 本)/ Step 4(メニュー+HTML)の 4 段階で実装。エッジケース 8 項目(行ラベル消滅・空コメント=削除・同時アクセス・シート未作成・許可リスト外シート名・年月形式不正・重複レコード自己修復・ID 発番タイミング)と人間検討事項 8 項目(対象シート選択肢の管理方式・編集権限・文字数上限・履歴管理・F-21 連携・N-15 連携時の上書きポリシー・自動 DDL 実行の是非・将来の独立カテゴリ新設)を定義。nav §E.5.20 追加 |
| 2026-04-21 | dev_mas-215_gcp_project_setup.md / TODO_future.md / docs/_config.json | N-39 (GCP プロジェクト整備) 開発仕様書を作成、ステータス: 仕様書完了。Part 1 (GCP コンソール手動作業、全 5 Step): bizlp.co.jp 組織配下に bizlp-gas-accounting-dev / -prod を新設、法人 billing 紐付け、Vertex AI / Cloud Audit Logs / Cloud Monitoring API 有効化、代表者をオーナーに設定、既存 "default gemini project" は N-40 完了後に段階廃止。Part 2 (GAS コード変更): 000_infra/001_env.js の Env オブジェクトに gcpProjectId() / vertexRegion() を追加、ヘッダーコメントに GCP_PROJECT_ID_DEV / GCP_PROJECT_ID_PROD / VERTEX_REGION スクリプトプロパティを追記。Part 3 (スクリプトプロパティ登録、手動): dev/prod 両環境にキーを設定。エッジケース 6 項目・人間検討事項 7 項目を定義。nav §E.1.17 追加、件数サマリ仕様書完了 40→41・未着手 113→112 |
| 2026-04-21 | dev_mas-021_financial_statement_export.md | 初版作成。財務諸表(P/L・B/S・C/F)を PDF または Excel でエクスポートする機能の仕様書。テンプレートシート複製方式(_TMPL_pl_bank 等 6 枚)+ try-finally による一時シート確実削除+ Sheets export URL(format=pdf / format=xlsx)を UrlFetchApp 経由で取得する方式を採用。MENU_DEFINITION へ 📋 サイドバー: 📤 エクスポート カテゴリ新設+openFinancialStatementExport() 関数追加+新規 GAS ロジック 600_report/609_financial_statement_export.js +サイドバー HTML templates/financial_statement_export.html の 4 箇所を変更。銀行提出用(シンプル)/取締役会用(分析付き= F-20 YoY・F-01 予実差異引用)の 2 フォーマット × 3 諸表 × PDF/Excel = 12 パターンの初期スコープ。OrderRepository 等の ERP 元帳 Repository はマートシートに非適用のため使用しないことを明記し、failure_patterns#21-24(getLastColumn() 禁止・全角スペース .replace(/[\s ]+/g, '')・apostrophe 前置・GAS 側でリテラル埋め込み)への対策を全面反映。エッジケース 10 項目(データ不在・テンプレ不在・ゼロ除算・連打・同名ファイル等)と人間検討事項 9 項目(テンプレ管理方針・Drive フォルダ ID 管理方式・Sparkline・命名規則・初期スコープ等)を定義 |
| 2026-04-21 | dev_mas-017_funding_simulation.md | 初版作成。エクイティ/デット 2 系統の資金調達シナリオを比較するシミュレーション機能仕様書。Utils.calculateLoanSchedule(principal, annualRate, periodsInMonths, type) 新規追加・94_sim_funding 動的生成(DDL 管理外 93_kpi_dashboard パターン準拠)・600_report/611_service_funding_simulation.js 新規作成。BudgetRepository/CapexRepository は 202_repository.js に非実在(Phase 1 で確認)であることから、予算・CAPEX データへの直接アクセスは回避し、既存 dmCalcCf_(ctx) 経由で生成される ctx.cashEnd[0..12] / ctx.cfFin[0..12] / ctx.targetMonths[0..11] を読み取り専用で再利用する方針に決定。計算ロジックは元利均等(A = P*r*(1+r)^n/((1+r)^n-1)、r=0 は A=P/n)・元金均等(P=principal/n、利息=残高×月利)の 2 方式に対応。エッジケース 17 項目(返済期間 0 ゼロ除算ガード・過去年月・エクイティの年利フィールド無視・シナリオ名重複・全シナリオエラー時の出力抑制・行数上限 10 件・月利 0 の無利子借入等)と人間検討事項 10 項目(助成金/社債/CB 等の追加調達手段・税引後 CF 影響・複数調達イベント対応等)を定義。メニューは 📋 サイドバー: 📊 マート更新 カテゴリに「💰 資金調達シミュレーション」として追加 |
| 2026-04-21 | TODO_future.md | §3.3.2 データ主権・プライバシー保護基盤 新設 + DS-01〜DS-09 新規起票 (9 件)。管理会計コンサル事業の差別化軸として「秘密計算 (TEE) × 差分プライバシー (DP) によるデータ主権保証アーキテクチャ」を実装する案件群を追加。P1: DS-09 (プライバシーマーク取得 ★★★)。P2: DS-06 (第三者監査・学術パートナー連携 ★★★) / DS-07 (HP 公開戦略 ★★) / DS-08 (契約書テンプレ整備 ★★)。P3: DS-01 (TEE 基盤 ★★★) / DS-02 (DP 統合 ★★★) / DS-03 (接続基盤 ★★) / DS-04 (Attestation 検証 ★★) / DS-05 (匿名化パイプライン技術実装 ★★)。プレフィックス選定: D-01〜D-10 は data_maintenance.md で既に使用済のため衝突回避として DS- (Data Sovereignty) を新設。既存案件との相互参照更新: N-24 (個人情報保護) ↔ DS-09、N-35 (SOC 2 / ISO 27001) ↔ DS-06、G-05 (データ移行) ↔ DS-01、MAS-05 (研究開発用データ収集) ↔ DS-05 (技術実装版) + DS-08 (法務)、MAS-01 (販売モデル) ↔ DS-01〜09 全体 (差別化要素)。ロードマップ更新: Phase 1 に DS-09、Phase 2 に DS-06〜08、Phase 5 に DS-01〜05 を追加。サマリー更新: 未着手 104→113、Phase 別内訳 P1 10→11 / P2 55→58 / P3 17→22。§4 FP&A ギャップ分析に「データ主権・プライバシー保護」行を追加 |
| 2026-04-21 | dev_mas-013_investment_simulation.md | 初版作成。投資回収シミュレーション(NPV/IRR/PaybackPeriod/ROI)計算エンジン設計、Constants.TAX_RATES 累進課税適用方針(EBT ≤ 0 は localMinimumAnnual 70,000 円加算 / 0 < EBT ≤ 800 万は実効 21.4% / 800 万超は加重平均で 33.6% を段階適用)、IRR 非収束 (1000 回反復)・割引率 ≤ -100% バリデーション・途中年 CF 空欄警告・分析期間超過等のエッジケース定義、25_bud_investment_case(DDL 管理・47 列)と 67_report_investment_analysis(DDL 管理外・動的上書き)の 2 枚構成、📋 サイドバー: 📊 マート更新 カテゴリへのメニュー追記方針を含む。新規 600_report/610_service_investment_analysis.js 1 本のみで完結し、既存マート生成ファイルは触らない設計 |
| 2026-04-21 | dev_mas-012_headcount_simulation.md | 初版作成。目標月次売上から採用必要人数を逆算するシミュレーション機能の仕様書。HeadcountRepository (22_bud_headcount 読み取り専用) 新設・MENU_DEFINITION への 1 項目追加・SimHeadcount.html ダイアログ・94_sim_headcount シート出力 (DDL 管理外・冪等) を含む。JournalRepository.findAll() の戻り値が { headers, dtos } オブジェクトである点を注意事項に明記 |
| 2026-04-21 | dev_mas-205_mfa_privilege_separation.md / TODO_future.md | N-29 完了 (Part 1 MFA 義務化 運用開始、D0 = 2026-04-21)。Workspace 管理コンソール 8 項目設定完了、代表者 ([email protected]) のパスキー登録 (MacBook Touch ID) 完了。シークレットウィンドウでのログイン試行でパスキー要求画面が発動することを確認済。Admin レポートの「2 段階認証プロセスによる保護: 保護されています」「登録: 登録済み」に反映。「適用」列は新規登録猶予期間扱いで「未適用」表示だが、後日自動で「適用済み」に更新見込み (実際の保護は機能中)。Part 2 (GAS 特権アカウント分離) は既に実装済のため、本日をもって N-29 案件全体をクローズ。TODO_future.md ステータス: 仕様書完了 → 完了 (完了日 2026-04-21)、説明文も Part 1 / Part 2 両完了に更新。完了件数 26→27、仕様書完了 41→40、Phase 別内訳 P1 件数 11→10 |
| 2026-04-21 | TODO_future.md | N-45 新規起票 (TODO 自動生成スクリプト)。§3 SSoT から §1 派生 view を自動再生成する scripts/3_rebuild_todo_summary.js 追加案件を P2 ★★ で起票。件数サマリ・Top N バックログ・Phase 別内訳・横断テーマを自動反映、npm script + pre-commit hook + CI で運用。Phase 1 整理 (手動削減 6→4) の次段階として残る 4 箇所の同期も自動化し、将来的にステータスの機械判定 (仕様書ファイル存在・PR merge 履歴) を組み合わせて同期負荷をゼロに近づける方向。Phase 別内訳の P2 件数 54→55 に更新 |
| 2026-04-21 | TODO_future.md | §1 の重複 view を削減 (Phase 1 整理)。更新漏れ・上書き事故の根本原因だった 📦 完了アーカイブ (26件) / 📝 仕様書完了・次に着手可能 (41件) の詳細テーブル 2 つを削除。代わりに「詳細一覧は §3 全案件マスタテーブル (SSoT) を参照」のポインターに置換。これにより 1 案件のステータス変更で更新すべき箇所が 6 → 4 に削減。§3 が唯一の真実 (SSoT) であることを明文化。次の Phase 2 (自動生成スクリプト scripts/3_rebuild_todo_summary.js 作成) で §1 件数サマリとロードマップを SSoT から自動再生成する想定 |
| 2026-04-21 | _internal/biz/n30_workspace_settings.md / docs/_config.json | N-30 Workspace 管理コンソール設定メモを運用資料として切り出し。dev_mas-206_external_sharing_policy.md (開発仕様書) から共有ポリシー 6 設定 (組織外との共有 / リンク共有 / 外部ドメイン移動 / 外部受信 / アクセスチェッカー / コンテンツ配信) の推奨値と根拠、03_sys_params 付帯キー (SHARING_WHITELIST / CFG_ADMIN_EMAIL)、運用開始チェックリスト、設定変更時の記録表を運用者 (Workspace 管理者) 向けリファレンスに抽出。nav §C.5.7 追加 |
| 2026-04-21 | 800_ops/811_audit_checker.js / dev_mas-206_external_sharing_policy.md | N-30 日次トリガー登録方法をプログラム登録化。checkExternalFileSharing_ は末尾 _ で GAS のトリガー UI から選択できなかった問題に対応し、installAuditCheckerTrigger / uninstallAuditCheckerTrigger をリポジトリ内の N-25 installBackupTriggers と同パターンで追加 (prod 限定・特権ユーザーチェック・既存トリガー削除で重複防止・日次 AM6 JST 登録)。仕様書の「時間トリガーの登録」節を手動 UI 登録からプログラム登録手順に書き換え、解除手順と dev 環境のスキップ挙動も明記 |
| 2026-04-21 | TODO_future.md | 未着手の Phase 別内訳テーブル更新。①P1: N-30 (外部共有制限) が 完了済みに移行したため例示から ✅ マーク付けに、N-38 (メニューカタログ) は 📝 (仕様書完了) に表記統一、件数 12→11。②P2: N-41 (サイドバー統合、🆕 仕様書完了) を例示に追加、件数 53→54。③P3: N-44 (フリート管理デプロイ調査、🆕) を例示に追加、件数 16→17。その他の Phase は変更なし。N-29 (MFA義務化) は Part 2 実装済 / Part 1 運用待ちの進捗表記に修正 |
| 2026-04-21 | dev_mas-205_mfa_privilege_separation.md | Part 1 (MFA 義務化) に管理コンソール設定値 8 項目を追記。Google Workspace 管理コンソール admin.google.com → セキュリティ → 認証 → 2 段階認証プロセス の具体設定値を明記 (2FA 有効化 ON / 適用: 指定日以降に強制 / 新規ユーザー登録期間 7-14 日 / 信頼できるデバイス登録 OFF / SMS 除外 / 停止猶予期間 1-3 日 / ローカルセキュリティコード 許可 / リモート OFF)。段階導入フロー (D-14 で予約・周知 → D-14〜D-1 で各自設定 → D-1 で未設定者フォロー → D0 で強制発動 → D+1 以降は停止猶予コードで救済) も運用テーブル化。運用日 (D0) は後日記入。関連 URL (設定ページ / 2FA 状態レポート / 停止猶予コード生成) も付記。設定作業の再現性・監査可能性を確保 |
| 2026-04-21 | dev_mas-164_bank_description_learning.md | 初版作成。銀行CSV消込の確定実績から12_mst_partnerの「銀行摘要名」列に自動蓄積する自己学習機能の仕様を定義。learnBankMemoMapping_() ヘルパー追加 + applyBankSettlement() 末尾への呼び出し挿入 + 手動学習メニュー learnBankMemoMappingManual() の仕様 |
| 2026-04-21 | _internal/biz/reorg_section_c_prompt.md / docs/_config.json | §C セクション構造再整理 実行プロンプト を保管。現状 §C の問題点 (C.1.2.* の 8 件フラット配列、C.5 の異種ドキュメント同居、C.5 の名称不整合、C.4 の孤立、将来の拡張性不足) を明文化した上で、ルール 1-4 (RQ グループ化 / C.5 役割別分割 / 名称見直し / 番号整合) と作業 Step 1-4 (現状分析・再構成案提示・confirm・実装・動作確認・PR) を規定した実行プロンプト。サブワークスペースで Claude Code に投入して使用する想定。nav §C.5.6 追加 |
| 2026-04-21 | scripts/2_run_writers.sh (旧: ルート 2_run_writers.sh) | 仕様書作成バッチスクリプトの拡張 + 配置整理。①scripts/ 配下に移動 (既存の 1_generate_prompts_gemini.js との対称性確保、.claspignore の scripts/** で既に除外対象)。②コマンドラインオプション 4 種追加: -n N (先頭 N 件のみ処理) / -i ID1,ID2 (特定 ID のみ処理、前後空白許容) / --dry-run (実行せず対象一覧のみ表示) / --continue-on-error (1 件失敗しても次の案件へ継続)。③付帯機能: -s SECS で待機秒数変更可 (デフォルト 60)、-h/--help でヘルプ表示、案件進捗表示 ((idx/total))、末尾の待機を省略、実行サマリ (成功件数 / 失敗案件リスト) 出力。従来のデフォルト動作 (全件処理・エラーで停止・60 秒待機) は維持 |
| 2026-04-20 | failure_patterns.md | #26-#27 新規追加: N-30 (外部共有監視) 実装時 (PR #245) に検出した 2 件のパターン。#26 GAS マニフェスト設定の見落とし: appsscript.json の oauthScopes を部分宣言すると自動検出が完全オフになり、既存の全スコープ (spreadsheets/drive/mail/ui 等) が消失して全機能崩壊。Advanced Service は enabledAdvancedServices 側で自動付与されるため oauthScopes に個別列挙は不要 (fix コミット 023e773)。#27 外部 API 仕様変動への過度な依存: AdminReports.Activities.list の eventName: 'acl_change' が現行仕様で change_user_access 等に分化されており「not found in manifest」エラー発生。名前指定を避け post-processing で絞る方式が堅牢 (fix コミット 439dcde)。教訓サマリー: GAS マニフェストの oauthScopes は「排他仕様」、Google Admin SDK 等の外部 API 名は時期で変わるため公式ドキュメント (2025 年以前の記事不信) で必ず確認、仕様書に API 名を書く際は「YYYY-MM 時点」のタイムスタンプを併記 |
| 2026-04-20 | biz/rd_tax_credit_estimation_2026.md / TODO_future.md | 節税試算を 3 シナリオ × 4 賞与パターンのマトリクス分析に再構成。売上 A. コンサバ (1500/1500) / B. 標準 (1800/1800) / C. 成長 (2500/3500) と、賞与 0 / 300 / 450 / 600 万円 の組合せで 3 年累計節税額を一覧化 (約 43 万〜205 万円の幅)。気づき: 低売上シナリオでは賞与を抑えた方が節税効果大 (営業利益増 → 控除限度増)、高売上シナリオでは賞与を上げても試験研究費が増えて有利という逆転現象。個人手取りとのトレードオフ分析も追加 (賞与 0 → 手取り 520 万・実質税負担 358 万 / 賞与 300 → 手取り 740 万・実質 471 万 / 等)。基準ケース「B. 標準 × 賞与 300」で 3 年累計 約 105 万円。売上シナリオ別の推奨賞与マトリクスも明示。N-42 description は「43 万〜205 万円の幅、基準 105 万円」の表現に更新 |
| 2026-04-20 | biz/rd_tax_credit_estimation_2026.md / TODO_future.md | 節税効果試算の実数値化改訂 (2 回目の大幅修正)。前回試算の前提を正確な実数値に差し替え: ①決算期を 7 月末に訂正 (初年度事業年度 2025-11-19〜2026-07-31、売上発生 7 ヶ月)、②初年度売上を 1,000 万円に訂正、③売上原価を 年 40 万円 (役員報酬除く) に訂正し粗利率は約 96%、④売上想定を コンサバ (1000/1500/1500 万円) に変更、⑤初年度役員報酬を 350 万円 (月 50 × 7) に訂正、⑥事前確定届出給与の期限を 2026-11-30 (2 年目向け) に確定。結果、3 年累計節税は約 170 万円 → 約 59 万円 に下方修正。繰越控除の失効リスク (売上横ばい想定で年 68 万円級が失効) を明示。役員報酬下げ感度分析 (賞与なし年 600 万円シナリオで累計 107 万円) も追加。4 年目以降の商用化成功シナリオ (売上 3,000 万) では控除限度拡大で年 75 万円級の控除見込みと明記。N-42 description の金額表現を「初年度約 29 万円 / 3 年累計約 59 万円」に修正、前提も正しい数値 (売上 1,000 万、粗利率 96%) に訂正 |
| 2026-04-20 | biz/rd_tax_credit_estimation_2026.md / TODO_future.md / docs/_config.json | 研究開発税制の節税効果試算 (2026 年度〜) を新規作成。bizlp の実数値 (初年度売上 1,500 万円・役員報酬月 50 万円・2 年目以降賞与 300〜600 万円想定・粗利率 80%・12 月決算想定) で 3 年間の節税効果を試算。結論: ケース A (API 代のみ) 3 年累計 約 30 万円 vs ケース C (R&D 50% 按分・高水準要件クリア) 3 年累計 約 204 万円 + 繰越 = 累計差 約 170 万円。初年度は控除限度 (法人税 × 35% = 26 万円) でケース B/C は頭打ちだが、2 年目以降の成長で差が拡大。税理士協議ポイント 5 点 (役員報酬按分強度 / 過去分遡及計上 / 事前確定届出給与 / 試験研究費の具体科目 / 繰越控除活用計画) も明記。N-42 description の金額表現を「数十万〜数百万円単位」から「初年度約 21 万円 / 3 年累計約 170 万円超」に修正 (本試算ドキュメントへの参照リンク付き)。nav §C.5.5 追加 |
| 2026-04-20 | adr/0009-separation-strategy.md / TODO_future.md / biz/ADR-0009_separation_consultation_result.md | ADR-0009 重要更新: F (クライアントワーク) 領域追加 + N-42 を P1 ★★★ に格上げ。bizlp の収益構造が「売上 1,500 万円の 100% がクライアントワーク (受託業務) で発生、bizlp-gas-accounting は売上ゼロの R&D 投資」であることが明確化。これを受けて: ①ADR-0009 コンテキストに収益構造を明記、②活動領域 A〜E に F (クライアントワーク) を追加し本 ADR スコープ外と明示、③理由セクションの R&D 税制論点を書き直し (代表が「専ら試験研究に従事」できない構造ゆえ、時間按分による積極算入が唯一の現実解と明示)、④N-42 のタグ設計に F-ClientWork を追加し、優先度を P2 → P1 ★★★ に格上げ (R&D 比率計算の分母にクライアントワーク時間を含める必要があり、これなしでは役員報酬按分が主張不能)、⑤consultation_result.md に後日判明情報を追記 (A 派 / B 派判断の解釈補正、N-42 格上げ根拠、F 領域追加の理由) 。決算期に向けて即時のタイムトラッキング開始が必須条件と明確化 |
| 2026-04-20 | adr/0009-separation-strategy.md / TODO_future.md / docs/_config.json | ADR-0009 新規起票 + 関連整備。活動領域 (R&D / 自社運営 / プロダクト開発 / 商用運用) の段階的分離戦略を確定。Gemini コンサルテーション結果を踏まえ、以下を決定: ①4 フェーズ構造 (Phase 1 物理分離なし / Phase 2 dev→prod 移行 / Phase 3 商用テナント新設 / Phase 4 成熟期)、②コードベースは α モノリス維持 + γ マルチテナント思想、Phase 3 でフリート管理型デプロイ (clasp + GitHub Actions で 1 コード → N 顧客環境)、③bizlp もテナント T-001 として抽象化する設計規律を今から徹底、④Phase 1 の今アクション: タイムトラッキング導入 / 試験研究費の勘定科目分離 / git log・ADR・仕様書を R&D 証跡として運用 / ADR-0009 本文自体を R&D 活動の明文化とする、⑤やらないこと: 稟議書 R&D 欄追加 / 経費規程 R&D 区分の詳細ルール / 重厚な規程類の早期整備 (仮装行為リスク回避)、⑥ガバナンスは発見的統制で代替 (代表 1 名で職務分離不能を正面から認める)、⑦Phase 3 デッドライン要件: Vertex AI 完全移行 (ADR-0008 と整合) + ToS / プライバシーポリシー / 情報セキュリティ基本方針の整備。あわせて TODO_future.md に 3 案件を起票: N-42 (タイムトラッキング導入・P2)、N-43 (bizlp 固有ハードコードのテナント抽象化リファクタリング・P2)、N-44 (フリート管理型デプロイ基盤設計調査・P3)。nav §A.9 追加、未着手件数サマリと P2 件数も更新 |
| 2026-04-20 | _internal/biz/ADR-0009_separation_consultation_result.md / docs/_config.json | ADR-0009 コンサルテーション結果保管 (Gemini Pro 回答)。5 論点すべてに詳細回答あり。主要な方針転換: ①稟議書 R&D 欄追加 / 経費規程 R&D 区分は非推奨 (代表 1 名で自分に稟議する行為は仮装行為と見透かされる)、②タイムトラッキング (Toggl 等) を今すぐ導入すべき (役員報酬按分の最強エビデンス)、③コードベース戦略は α モノリス維持 + γ マルチテナント思想、フリート管理型 (1 リポ → 顧客別 GAS/Sheets に一斉デプロイ) が GAS 系の現実解、④bizlp もテナント T-001 として抽象化する設計規律を今から徹底、⑤ガバナンスは予防的統制不可 → 発見的統制で代替、⑥Phase 3 直前に Vertex AI 移行 + ToS / プライバシーポリシー / 情報セキュリティ基本方針の 3 点整備が必須。回答全文と ADR-0009 本文への反映方針草案を同ファイルに記録。nav §C.5.4 追加 |
| 2026-04-20 | _internal/biz/ADR-0009_separation_consultation_prompt.md / docs/_config.json | ADR-0009 コンサルテーション用プロンプト保管。環境分離戦略 (R&D / 自社運営 / プロダクト開発 / プロダクト運用の領域分離、Phase 3 コードベース戦略 α/β/γ) について、執筆前に Gemini Pro に第三者意見を求めるプロンプトを Git 保管。会社概要 (資本金 300 万円・売上 1,500 万円・設立初年度・免税事業者) を明示し、4 つの論点 (4 フェーズ構造の妥当性 / コードベース戦略 / Phase 1 の今やること / 研究開発税制 / ガバナンス監査) で意見を求める。結果は同ディレクトリに _result.md として別途保管する運用。nav §C.5.3 追加 |
| 2026-04-20 | dev_mas-205_mfa_privilege_separation.md | N-38 整合改訂。N-38 (PR #230) で onOpen() が Constants.MENU_DEFINITION ループに移行済みであるため、N-29 仕様書の Step B (onOpen 修正) をハードコード置換から privileged フラグ + ループ内スキップ判定に再構成。①MENU_DEFINITION の対象カテゴリ (💾 バックアップ) に privileged: true フラグを 1 行追加 (000_infra/002_constants.js)。②onOpen() ループ冒頭に if (catDef.privileged && !isPrivilegedUser_()) return; を追加 (100_config/101_sys_config.js、既存ループ構造は維持)。ハードコード構造への逆戻りは禁止と明記。影響範囲・エッジケース・動作確認手順・実装プロンプトの制約/対象ファイル記述も N-38 後の状態に合わせて更新。将来サイドバー (N-41) の MENU_DEFINITION 化完了時に HTML 側でも privileged 参照で制御予定 (本案件では HTML 変更は対象外) |
| 2026-04-20 | dev_mas-160_unprocessed_alert_ui.md | 初版作成。月次締め前の未処理INV/STL/ORD横断スキャン・サマリーUI仕様 |
| 2026-04-20 | dev_mas-217_sidebar_catalog_and_readability.md / TODO_future.md / docs/_config.json | N-41 新規起票。「サイドバー項目を MENU_DEFINITION に統合 + 視認性改善」(P2 ★★、前提: N-38)。templates/operations_sidebar.html の 9 セクション・41 項目を Constants.MENU_DEFINITION に逐語統合して 00_menu カタログの完全性を確保 (HTML 側の動的生成化は別案件)。あわせてサイドバー視認性改善 5 案 (左ボーダー色 / カテゴリ背景色 / 高頻度強調 / 検索ボックス / 折りたたみ) を併記、推奨は 1+2+4。41 項目の label/funcName/description 表と CSS 実装例・検索 JS サンプルを仕様書に同梱。description の業務妥当性は実装前にユーザー (業務オーナー) レビュー必須の注記あり |
| 2026-04-20 | dev_mas-206_external_sharing_policy.md | 初版作成。外部共有制限・GAS監査バッチの設計 |
| 2026-04-20 | _internal/biz/README.md / _internal/biz/ringisho_template.md / _internal/biz/expense_policy.md / docs/_config.json | 社内運用ドキュメント 3 点新設。ADR-0008 の派生として「個人契約 SaaS を法人カード支払いする場合の税務裏付け」を整備。①稟議書テンプレート: 汎用 8 項目構成 (背景 / 提案 / 目的 / 代替案 / 勘定科目 / 業務使用裏付け / リスク / 決裁) と Claude Code 利用契約の記入例を同梱。②SaaS・AI ツール経費規程 (暫定): 支払い方法・契約主体・承認フロー (月額帯別 5,000 / 50,000 円閾値) ・業務使用裏付け・勘定科目統一ルールを規程化。数ヶ月以内に新設予定の社内規定リポジトリに移管予定。③README: Git 管理対象はテンプレ / 規程のみ、個別決裁書類 (PII 含む) は社内共有ドライブ保管という運用ルールを明文化。④nav 設定: _config.json §C に C.5 / C.5.1 / C.5.2 を追加 |
| 2026-04-20 | adr/0008-vertex-ai-consolidation.md | ADR-0008 追補。Claude Code 個人 Max プランの支払い方法を法人カードに差し替える方針を明文化。決定欄に「契約主体は個人、支払い主体のみ法人」を追記し、実装方針欄に「Claude Code の支払いと経費処理」節を新設 (①Anthropic 請求書の保管 / ②社内稟議書の整備 / ③git log の Co-Authored-By: Claude を業務使用実態の証跡とする、の 3 点で税務上の「事業使用目的」を裏付け) |
| 2026-04-20 | dev_mas-213_audit_log_protection.md | 初版作成。98_audit_log シートへのGASシート保護設定とUtils.auditLog()フォールバック強化 |
| 2026-04-20 | dev_mas-170_corporate_number_api.md | 初版作成。国税庁法人番号API連携・onEditトリガー・一括バッチ・キャッシュ設計を定義 |
| 2026-04-20 | adr/0008-vertex-ai-consolidation.md / adr/0007-gemini-receipt-parsing.md / TODO_future.md / docs/_config.json | ADR-0008 新規起票 + 関連整備。SaaS 商用化 (3〜12 ヶ月) を見据え、本番 AI API (Claude / Gemini) の契約・インフラ方針を確定。①ADR-0008 新規作成: 本番 AI API を Vertex AI に集約する決定を記録。Anthropic 法人直接契約は不要、開発ツール (Claude Code) は個人 Max を継続、GCP プロジェクトを bizlp.co.jp 組織配下で dev/prod 分離。決定理由は 7 項目 (subprocessor 一元化・DPA 統合・GCP インフラ統合・リスク分離・コスト一元化・監査ログ一元化・認証情報削減)。②ADR-0007 追補: 末尾の callClaudeApi_() 実装方針に「本番 AI API 呼び出しは Vertex AI 経由 (ADR-0008 参照)」の注記を追加。③TODO_future.md 新規起票: N-39 (GCP プロジェクトを bizlp 組織配下に整備・dev/prod 分離) / N-40 (Vertex AI 基盤整備 + callClaudeApi_() Vertex 実装 + Gemini OCR の Vertex 移行を統合) を P2 ★★ で起票。未着手件数サマリ・Phase 別内訳の P2 件数も更新。④nav 設定: _config.json §A に A.8 として ADR-0008 を追加 |
| 2026-04-20 | dev_mas-205_mfa_privilege_separation.md | 初版作成。MFA義務化手順とGAS特権アカウント分離の設計を記述 |
| 2026-04-20 | dev_mas-214_menu_catalog.md | 初版作成。N-38 自動生成型メニューカタログタブの開発仕様書。Constants.MENU_DEFINITION 設計・onOpen リファクタリング・00_menu DDL・updateMenuCatalog_ 実装仕様を定義 |
| 2026-04-20 | environment.md | §7.1 Claude モデル版を Opus 4.6 → Opus 4.7 (1M context) に更新。§7.2 Gemini モデル表記を gemini-3.1-pro-preview → gemini-3.1-pro(最新安定版を選択) に更新。§5 開発フローに 作業着手時の同期ルール(git pull origin main --no-rebase 必須、共有ファイル一覧、auto-pull メモリ運用)を追加。§7.2 Roo Code に Gemini Deep Research との連携方式セクションを新設(標準 API 経由のため Deep Research 直接呼び出し不可・2 段階方式 RQ-NNN パターンで運用)。§8 VS Code ワークスペースに 並行作業時の競合事故パターンと対策テーブルを追加(2026-04-20 に発生した N-38 dev 仕様書二重作成事案を教訓化) |
| 2026-04-20 | dev_mas-159_csv_import_idempotency.md | 実装完了 (PR #221)。WRK_BANK / WRK_CARD に「取込ハッシュ」列追加。出現回数カウントベースで同日同額同摘要の複数明細に対応。銀行: 金額完全一致 + 日付±3日、クレカ: computeCcHash_(yyyyMMdd|merchant|amount)。UX 改善として集計ダイアログに重複件数表示。drive-by fix: CC UNMATCHED 時の 確認FLG=FALSE セット漏れを同時修正 |
| 2026-04-20 | dev_mas-171_cc_combo_matching.md / TODO_future.md | 新規起票。I-29「クレカ明細 N:1 消込(複数カード明細 → 1 銀行STL 合算マッチ)」を起票し、dev 仕様書(初版)を作成。I-20(銀行側 N:1・実装済)の対称パターンでカード側 N:1 を設計。カード会社月次一括引落の消込を自動化する。前提: I-15(PR #221 完了済)。あわせて I-30「クレカ MATCHED 自動承認化の検討(HITL 緩和案)」 を P3 ★ で起票(I-15 実装検討時に論点化、3 方向性の比較検討) |
| 2026-04-20 | failure_patterns.md | #25 新規追加: 並列実装の対称性漏れ。I-15 実装時に検出した「CC UNMATCHED 時の 確認FLG=FALSE セット漏れ(銀行側は明示、CC 側は暗黙デフォルト依存)」をパターン化。教訓: bank/cc のような並列実装を編集する際は両方のコードを並べて対称性チェック。書き込み系は全分岐で明示(暗黙初期値に頼らない) |
| 2026-04-20 | dev_mas-214_menu_catalog.md に差し替えのため削除) | Constants.MENU_OPERATIONS を SSOT として新設、98_audit_log(N-03)を関数名グループ集計して最終実行日時 / 最終実行者 / 累計実行回数 / ステータス(⚠️未使用 / ✅稼働中)を可視化、validateMenuRegistry_ で HTML サイドバーとの整合性を自動チェック。(2) シートナビゲーション — 01_sys_config の GID を使った HYPERLINK で全タブへのワンクリック遷移、番号プレフィックス(00/10/20…)でカテゴリ自動グルーピング。00_menu タブを 2 セクション構成 (A. 操作カタログ / B. シートナビゲーション) で自動生成。13 エッジケース + 9 項 Human-in-the-Loop + 8 項実データ検証を網羅。前提案件: N-03(実装済 PR #157/#158/#205)、N-25(実装済 PR #209) |
| 2026-04-20 | dev_mas-139_data_validation.md | 初版作成。setupAllSchemas への setDataValidation 統合設計。 |
| 2026-04-20 | dev_mas-120_partner_payment_terms_autofill.md | 実装完了 (PR #215)。12_mst_partner に標準決済条件 5 列を追加。PartnerRepository 新設、handleUxAssist に取引先名 onEdit 自動補完を組込(空欄・既定値のみ上書き、ユーザー手入力値は保護)。810_migration_partner_payment_terms.js で 21/23/26 タブの既存データから最頻値抽出し冪等 UPDATE。既存マスタ 20 件に対し 68 列 UPDATE 成功、未登録取引先 2 件検知。残件(プルダウン名前付き範囲追加・数値書式 #,##0 設定)は S-68 として TODO_future.md に新規起票 |
| 2026-04-20 | TODO_future.md | 戦略再編:「手入力削減 + 監査強化」軸。Gemini Pro による戦略レビューに基づき、Phase 1.5 の優先度を以下のように再編。①Top 15 全面差し替え — I-15(重複防止ガード)/ S-67(セルバリデーション)/ I-02 / I-13 / I-03 / I-14 / I-04 / I-16 / N-37 / I-08 / I-09 / I-28 / I-22 / I-25 / F-08 の順。「自動化によるミス排除」と「物理的な入力制限」を前段配置。②5 件の優先度バンプ — I-03 / I-14(P2→P1, ★★→★★★)、I-28(P2→P1)、S-67(P2→P1, ★★→★★★)、N-37(★★→★★★)。③**🛡️ 横断テーマセクション新設** — 自動取込/事前防御/事後監査の 3 軸分類で案件をグルーピング。④実装ロードマップ案 3 パターン — 保守的(4週) / 標準推奨(6週) / 積極的(10週) を併記。⑤Phase 別サマリー P1 件数 6→11 に更新。⑥「今後追加予定」表から I-15 / I-22 / I-25 / I-16 を削除(Top 15 へ昇格) |
| 2026-04-20 | TODO_future.md / docs/_config.json / 関連 11 ファイル | 新規 3 案件追加 + 用語リネーム。①MAS-06 初期セットアップウィザード: 新規顧客のオンボーディング自動化。基本マスタ・設定投入 → カットオーバー日指定 → 過去データを「手入力相当」として自動シード(freee/MFインポート / Excel / 月次総額按分の 3 方式)→ 検証ダッシュボード → ロールバック対応。MAS-01 販売モデル成立要件。②S-67 セル単位データバリデーション: setupAllSchemas の DDL に setDataValidation を組み込み、数値範囲・日付範囲・リスト選択・正規表現等を宣言的に適用。201_data_validator.js(事後検知)と棲み分け。③I-28 法人番号自動取得: 国税庁 法人番号公表サイト Web-API 連携で 12_mst_partner の法人番号 / T番号入力を自動化。S-48(取引先マスタ拡張)と組合せでマスタ運用ほぼ自動化。あわせて 「将来開発案件」→「追加開発案件」リネーム を 11 ファイル一括適用、_config.json の §C 群名・サマリ件数も整合 |
| 2026-04-20 | dev_mas-201_sheet_backup.md | 実装完了 (PR #209)。DriveApp.makeCopy ベースの週次12/月次12世代管理、月末週の月次昇格、行数差分±5%検証、Env.backupFolderId 追加。4 ステップ構成で Env 拡張 → 手動バックアップ → 週次/月次トリガー → 検証ジョブ → テストを段階実装。新規ファイル 800_ops/809_backup_tool.js (270行)、000_infra/001_env.js に backupFolderId 追加、100_config/101_sys_config.js にメニュー追加、900_test/901_test_runner.js にテスト追加。prod デプロイ後は BACKUP_FOLDER_ID プロパティ設定と installBackupTriggers 実行が必要 |
| 2026-04-20 | docs/_internal/research_prompts/RQ-001_prompt.md / docs/_internal/research_prompts/README.md / docs/_internal/research_questions.md / docs/_config.json | 新規作成。RQ-001 用の Gemini Deep Research 確定プロンプト を保管。RQ-001_meta_prompt.md を Gemini Pro に投入して生成された設計プロンプト本体を RQ-001_prompt.md として固定化。8 セクション構成(エグゼクティブサマリー / 標準仕訳マトリクス / エッジケース対応表 / B/S 科目対応表 / 税務調整簡易ガイド / GAS 実装用データ構造案 / 対話式メニュー質問リスト / 顧問税理士確認推奨リスト)で Deep Research にチェックリスト形式の網羅的回答を要求。research_questions.md の RQ-001 ステータスを「📝 メタプロンプト作成済」→「⏳ Deep Research 投入準備完了」に更新。_config.json に C.1.2.8 RQ-001 Deep Research プロンプト ページ追加 |
| 2026-04-20 | docs/_internal/research_prompts/RQ-001_meta_prompt.md / docs/_internal/research_questions.md / docs/_internal/research_prompts/README.md / docs/_config.json | 新規作成。RQ-001(確定申告後の法人税・住民税・事業税の仕訳パターン)の Gemini Pro 向け メタプロンプトを保管。S-01 / S-65 の確定申告フェーズ実装に向け、6 大論点(標準仕訳パターン / 中間納付・予定納税 / 未払法人税等の B/S 計上 / 設立初年度の変則決算 / 別表四・別表五との連携 / freee・MF 等の SaaS 比較)を網羅。Constants.TAX_RATES 構造提案と S-65 対話メニュー必須質問項目の出力を明示要求。research_questions.md サマリ「✅ 完了 2 / 📝 メタプロンプト作成済 0→1 / 🔍 未着手 30→29」に更新。_config.json に C.1.2.7 RQ-001 法人税等の仕訳パターン(メタプロンプト) ページ追加 |
| 2026-04-19 | dev_mas-124_order_aging_alert.md | 初版作成。31タブ発注残高エイジング&超過発注アラートの開発仕様書。400_domain/411_order_aging.js(新規・410 subledger_engine と 420 project_profitability の間の空き番)に OrderAgingService.runOrderAging() を実装し、①超過発注(発注残高 < 0)の Constants.COLORS.WARN_RED_BG ハイライト、②終了年月 経過 ORD の滞留月数別色分け(1M: #FFF2CC / 2M: #FCE5CD / 3M: #F4CCCC / 3M超: #EA9999)、③発注残高=0 かつ全紐付け INV 請求ステータス="承認済" の ORD をステータス自動更新候補として抽出する 3 機能を統合。LockService.getScriptLock() + waitLock(30000) + try/finally releaseLock() で Action A/B との競合を回避、OrderRepository.findAll/save 経由で全行置換(発注残高(自動計算) は 410_subledger_engine.js L332-339 の setValue 管理=Sheets 数式ではないため save 安全)、InvoiceRepository.findAll から Map<親発注ID(ORD), InvoiceDTO[]>(有効 FLG=TRUE かつ 請求ステータス!=="却下" のみ)を構築しループ内 O(1) 検索、SpreadsheetApp.getUi().alert(..., YES_NO) で Human-in-the-Loop 承認、Utils.auditLog('UPDATE','31_wrk_order',ordId,'発注ステータス',...) で 98_audit_log に記録、Utils.toastResult で完了通知。200_data/201_data_validator.js L447-462 の validateOrder_ の iBal < 0 色を VAL_COLORS.WARNING → Constants.COLORS.WARN_RED_BG に格上げ。templates/operations_sidebar.html L71-76「⚙️ メンテナンス」セクションの runDataValidation 直後に 🗂️ 発注エイジング&超過検知 ボタン追加。runActionA_/runActionB_ は実在せず(実体は processInvoiceApprovals/processSettlementClearings)、末尾フックではなく独立メニューで提供。OrderDTO の 発注ステータス JSDoc 実在値は "見積中"|"発注済"|"検収済" のみで "完納" は未定義のため、業務確定まで候補表示のドライランに留める Human-in-the-Loop 設計。12 エッジケース(終了年月 空欄=対象外・発注ステータス="検収済" 全チェック対象外・請求ステータス="却下" INV 除外・請求ステータス="未処理" INV 含む ORD は候補抽出除外・超過発注ハイライト・滞留月数別色分け・空残高セル Utils.parseAmt 0 扱い・複数 INV 合算判定・Date/"YYYY/MM" 入力正規化)と 7 項の「人間が検討すべき事項」("完納" 値の業務確定・エイジング閾値・色分けルール・契約形態別滞留判定・自動更新対象条件・トリガー設計・S-51 マート連動)を明記 |
| 2026-04-19 | dev_mas-122_ord_inv_consistency.md | 初版作成。ORD↔INV 整合性チェック仕様書。200_data/201_data_validator.js に validateOrderInvoiceConsistency_ を追加し検証 (a) 孤立 INV / (b) 超過紐付け / (c) 残高乖離 / (d) FALSE 化 INV 未反映 の 4 項目を実装、900_test/901_test_runner.js に T12 追加、800_ops/813_recalc_ord_balance.js(新規)で LockService.tryLock(30000) + OrderRepository.findAll/save による発注残高強制再計算ツールを提供、templates/operations_sidebar.html の「🔧 マイグレーション」セクションに「発注残高を再計算する」ボタンを追加。Utils.parseAmt() 必須化・Math.abs(diff) > 0.01 許容誤差・有効フラグ判定統一(=== false || toUpperCase() === 'FALSE')・OrderRepository.save() 全件上書きの注意事項・Utils.auditLog('MIGRATE',...) 記録を明記。13 エッジケース(返金 INV マイナス金額・空配列 INV リスト・浮動小数点誤差・孤立 INV・親発注ID(ORD) 空文字・ORD=FALSE/INV=TRUE・同一 ORD 重複・編集競合・save() 失敗時ロック解放等)と 6 項の「人間が検討すべき事項」(再計算実行タイミング・閾値判定・プレビュー表示・閾値外出し・自動再計算の通知・検証 (d) 粒度)を明記。番号 813 を採用(809-812 は S-47/S-48/S-49/S-63 予約済み) |
| 2026-04-19 | dev_mas-119_headcount_rate_master.md | 初版作成。S-47 22タブ人件費予算の入力簡素化(保険料率・税率マスタ化)の開発仕様書 |
| 2026-04-19 | dev_mas-121_capex_master_ref.md | 初版作成。CAPEX 償却・借入条件マスタ化の開発仕様書。11_mst_account に「標準償却月数」列、24_bud_capex_loan に「借入パターン」列、新規マスタ 19_mst_loan_pattern(金利・返済方式・返済月数・頭金分割・返済日・休日調整)を追加し、200_data/202_repository.js の AccountRepository.findAsMap() 戻り値に deprecMonths 追加+LoanPatternRepository を末尾に新規実装。100_config/101_sys_config.js L363 の onEdit に L412 handleUxAssist 呼び出し直前で '24_bud_capex_loan' 完全一致分岐を追加し、資産科目→標準償却月数・借入パターン→返済月数/頭金分割/返済日/休日調整を空欄時のみ補完(isBlank() ガード)、未登録時は Toast 警告。400_domain/403_rpa_capex.js の行直接パース箇所(L87-L93 他)にマスタ JOIN フォールバックを追加し、元利均等/元金均等の月額算出式を内蔵、Utils.adjustToBusinessDay で返済日の休日調整、parseInt を Utils.parseAmt 経由に置換。800_ops/809_migration_s49_capex_master.js(新規)は Human-in-the-Loop で 99_wrk_loan_pattern_proposals シートに提案を書き出し、19_mst_loan_pattern へは直接書き込まない方式。15 エッジケース(標準償却月数空欄/0/負値 Toast 警告・返済月数0 ゼロ除算ガード・バルク編集スキップ・返済方式空時の元金均等フォールバック等)と 10 の「人間が検討すべき事項」(元利均等/元金均等選択・金利期中変動・税法耐用年数整合・809 番号競合等)を明記 |
| 2026-04-19 | dev_mas-117_allocation_rounding_fix.md | 初版作成。PJ別配賦に最大剰余法(Largest Remainder Method)を適用し丸め誤差を解消。400_domain/420_project_profitability.js L498-534 の配賦ループに残差寄せロジックを追加する独立ミニマル仕様(F-06 統合仕様 dev_mas-006_project_overhead_allocation.md の S-45 部分をフォーカス抽出)。Math.round 維持+基準値下限0 clamp+totalBasis ≤ 0 スキップ+基準値最大PJへの residue 加減算で、S-13 整合性チェック(L761-789)の diff を 0 に到達させる。10 エッジケース(配賦基準合計ゼロ/マイナス、共通費ゼロ、配賦先1件、基準値マイナス、残差負、タイPJ、営業外売上高比強制、配賦先0件)と決定事項(最大剰余法採用)を明記 |
| 2026-04-19 | dev_mas-115_unified_financial_statements.md | 初版作成。財務諸表タブ統合(プルダウン切替方式)の開発仕様書。P/L (61/62/63/64)・B/S (71/72/73)・間接法CF (81/81b/82/82b) の 12 タブを A1 セルプルダウンで切替できる 3 タブ(60_fs_pl_unified / 70_fs_bs_unified / 80_fs_cf_unified)に統合し、既存 isActualOnly フラグと新規 viewMode (monthly/ytd/snap) のマトリクスで描画を切り替える設計。100_config/101_sys_config.js L363 の onEdit に A1 セル判定分岐を L365 の row === 1 早期リターン前に挿入、600_report/611_datamart_unified.js を新規作成し LockService.tryLock(3000) + try/finally releaseLock() パターンで排他制御。buildBudgetTrendDataMart を 3 関数(buildActualCtx_ / buildPlanCtx_ / writeToSheets_)に分割して 1 モード描画の軽量化を実現。200_data/202_repository.js に BudgetRepository が不在であることを確認済のため本案件では 41_trn_budget 直接アクセスは不要、既存 dmIngestData_ / dmIngestPlanData_ / dmIngestPipelinePlanData_ で得た ctx を再利用。15 エッジケース(E01-E15: プルダウン未選択・データ空・ゼロ除算・多重実行・S-22 共存・旧関数残存・未セットアップ・DDL 上書き・境界月未確定・バリデーション通過・B/S スナップ空月・flush 重複・同時実行・番号衝突・例外時ロック残留)と 11 項の「人間が検討すべき事項」(番号帯採番・UX ワーディング・BudgetRepository 設計判断・移行計画・並行稼働期間・GCP 移行との ROI 判断等)を明記。旧タブは並行稼働期間中(推奨 1 ヶ月)は出力継続、廃止は別案件として分離 |
| 2026-04-19 | dev_mas-114_invoice_validation.md | 初版作成。インボイス適格請求書要件チェック機能の仕様書を作成。12_mst_partner に「登録番号(T番号)」列、32_wrk_invoice に「インボイスチェック結果」「チェック結果詳細」列を追加する DDL 変更と、200_data/202_repository.js への PartnerRepository 追記(findAsTNumberMap() キャッシュ付き map)、400_domain/412_invoice_validator.js の新規作成(408/409/411 は他案件予約済のため 412 採用)、templates/operations_sidebar.html の §⚙️ メンテナンス セクションへのボタン追加の 3 Step 構成。runInvoiceValidation() は LockService.tryLock(10000) + InvoiceRepository.findAll()→検証→save(dtos)→setBackground() のパターンで、/^T\d{13}$/ 形式チェックと 8%/10%±0.2% の実効税率判定を Human-in-the-Loop(自動修正禁止)で提示。17 エッジケース(E01-E17: 有効フラグ=FALSE スキップ / 非課税・対象外判定 / 取引先名空 / T番号未登録 / T番号形式不正 / ゼロ除算ガード / 返品・赤伝の絶対値計算 / DDL 未実行ガード / 背景色残留除去 / マスタ重複取引先 / LockService 取得失敗)と 7 つの「人間が検討すべき事項」(課税事業者移行時期・許容誤差妥当性・マップキー選定・自動修正可否・国税庁API連携・軽減税率の扱い・「要確認」と「NG」の区別)を明記 |
| 2026-04-19 | dev_mas-113_equity_changes_dynamic.md | 初版作成。株主資本等変動計算書の科目列をハードコードから科目マスタ動的参照に変更 |
| 2026-04-19 | dev_mas-105_workforce_costing.md | 初版作成。稼働率ベースから工数ベース実費計算への移行仕様。ResourceRepository・HeadcountRepository新設、420_project_profitability.jsのロジック置換。 |
| 2026-04-19 | dev_mas-104_payment_workflow.md | 初版作成。支払依頼ワークフロー仕様書。400_domain/411_payment_workflow.js(新規)で applyForPayment() / approvePayment() / rejectPayment() の 3 段階状態遷移(未申請 → 申請中 → 承認済/差戻し)を実装し、LockService.waitLock(30000) + InvoiceRepository.findAll()→再読込→ガード節→save() のパターンで二重実行を防止。Constants.getParam('WORKFLOW_APPROVER_EMAIL', '') でカンマ区切り承認者リストを外部化、Session.getActiveUser().getEmail() で申請者/操作者を識別し自己承認(E08)を禁止。Utils.auditLog() で UPDATE/CONFIRM/CANCEL を 98_audit_log に記録、MailApp.sendEmail クォータ超過時は状態遷移を成立させてログのみ記録(E17)。setupAllSchemas() の WRK_INVC DDL に 申請者 / 申請日時 / 承認者 / 承認日時 / 差戻し理由 の 5 列を追加、MST_DICT の 請求ステータス プルダウンに 未申請 / 申請中 / 差戻し の 3 値を追加、SHEET_DEFAULTS['32_wrk_invoice'] の初期値を '未処理'→'未申請' に変更。InvoiceDTO の @typedef に 5 フィールド追記。RPA 起票 INV の '未処理' デフォルトと 410_subledger_engine.js の '承認済' 比較は温存して決済エンジンへの影響を遮断。19 エッジケース(E01-E19)と 7 つの「人間が検討すべき事項」(マイグレーション方針・申請種別スコープ・自己承認・メールクォータ・金額閾値自動承認・多段階承認拡張・DDL 再実行)を明記 |
| 2026-04-19 | dev_mas-101_ar_aging_report.md | 初版作成。売掛金エイジングレポート(67_ar_aging_report)設計仕様 |
| 2026-04-19 | dev_mas-100_document_generation.md | 初版作成。S-28 請求書発行(見積書・納品書・請求書PDF生成)の開発仕様書。21_bud_pipeline DDL に 請求ステータス / 発行済INV_ID / 見積書URL / 納品書URL / 請求書URL の 5 列を追加、新規 400_domain/409_document_service.js(408 は S-18 withholding_tax 予約済のため 409 採用)と 300_ui/302_ui_document.html で Google ドキュメントテンプレート方式による見積・納品・請求 3 種 PDF 生成と InvoiceRepository.append() 経由の収入 INV 登録を実現。Human-in-the-Loop 2 段階フロー(Stage 1: ドラフト生成のみ → Stage 2: LockService.tryLock(10000) 下で INV 登録+21タブ 5 列更新)で誤登録を防止し、申請種別='請求書発行(AR)' を既存 RPA と共通化、摘要プレフィックス 【DOC:S-28】 で識別。03_sys_params の CFG_TEMPLATE_ID_QUOTE/_DELIVERY/_INVOICE と CFG_INVOICE_NUMBER_PREFIX/_LAST を設定源とし、採番後はシート直書き+Constants._paramsCache 手動更新で即時反映。406_rpa_pipeline.js に 発行済INV_ID 非空スキップガードを 1 行追加して二重起票を防止。13 エッジケース(テンプレート ID 未設定・科目未登録・二重発行・LockService 失敗・行ズレ検知等)と Stage 2 未実行時の Drive 一時ファイル残留ポリシーを「人間が検討すべき事項」に明記 |
| 2026-04-19 | dev_mas-091_trial_balance.md | 初版作成。月次残高試算表(T/B)自動生成の開発仕様書。600_report/610_datamart_tb.js(新規)で 61_pl_monthly と 71_bs を唯一のデータソースとして対象年月の科目別借方/貸方残高・発生額を集計し 67_tb_monthly シートに書き出す設計。AccountRepository.findAsMap() で取得した stmt (P/L or B/S) と cat (大分類) から借方/貸方ホームポジションを判定、B/S は 月末残高 - 月初残高 でマイナス時は逆サイド計上。Contracts.toDtoList() で { headers, rows } 変換・ヘッダー名ベースの列特定、findLabelRowIndex_ ヘルパーで GAS 側ラベル正規化(/[\s\u3000]+/g)+ 行検索、全クリア→setValues() で冪等性確保。貸借不一致時は「貸借差額」行追記+警告ダイアログ、Human-in-the-Loop で目視確認。メニューは templates/operations_sidebar.html §📊マート更新に1行追記、01_sys_config に TB_M_ACT キー登録。失敗パターン #21-#24(getLastColumn 膨張・全角スペース・YYYY-MM 減算誤認・MATCH 脆弱性)対策を注意事項・エッジケース・実装プロンプトに網羅 |
| 2026-04-19 | docs/_internal/research_prompts/RQ-007_result.md / docs/dev/dev_mas-089_consumption_tax_exclusive_method.md / docs/dev/dev_mas-161_ocr_manual_correction_assist.md | RQ-007 調査完了。Gemini Deep Research の結果を RQ-007_result.md に構造化保存し、関連仕様書 dev_S-17 / dev_I-17 に 【RQ-007 確定】 タグ付きで反映: ① T番号バリデーション仕様(^T\d{13}$ + モジュラス11系チェックデジット)/ ② 令和8年度税制改正大綱による経過措置延長(2026-10〜2028-09=70%、2028-10〜2029-09=50%、2029-10〜=0%、※RQ-006 の 50% 単一段階から更新)/ ③ 取引区分の 4 段階判別フロー(国外→事業対価→非課税別表一→輸出免税)/ ④ 軽減税率判定マトリクス(一体資産は税抜 ≤ 1 万円かつ食品 ≥ 2/3 で 8%)/ ⑤ 簡易インボイス差分(宛名省略可・税額記載簡略化)/ ⑥ T番号未記載時 SOP / ⑦ 判定基準日 = 役務提供完了日(支払日ではない)/ ⑧ 顧問税理士向け 2 パラメータ追加(CFG_EXPENSE_REIMBURSEMENT_POLICY / CFG_RETROACTIVE_TREGISTRATION_POLICY)。research_questions.md サマリ「✅ 完了 1→2 / 🔍 未着手 31→30」に更新。_config.json に C.1.2.6 RQ-007 調査結果 ページ追加 |
| 2026-04-19 | docs/_internal/research_prompts/RQ-007_meta_prompt.md / docs/_internal/research_prompts/RQ-007_prompt.md | 新規作成。RQ-007(インボイス制度の対応要件)の メタプロンプト および Gemini Pro が生成した Deep Research 用確定プロンプト を保管。RQ-006 の既調査領域(会計指針・決算仕訳・経過措置計算)を明示的にスコープ外化し、インボイス制度の運用面・データ管理面(T番号バリデーション / 軽減税率判定マトリクス / 取引区分フローチャート / 簡易インボイス / 未記載時 SOP / 電帳法連携)に集中させる設計。8 セクションの出力フォーマット指定で、実装直結の粒度を確保 |
| 2026-04-19 | docs/_internal/research_prompts/RQ-006_result.md / docs/dev/dev_mas-089_consumption_tax_exclusive_method.md | RQ-006 調査完了。Gemini Deep Research の結果を RQ-006_result.md に構造化保存し、関連仕様書 dev_S-17 の「人間が検討すべき事項」セクションに 【RQ-006 確定】 タグ付きで以下の決定事項を反映: ①還付時は「未収消費税等」(流動資産)独立科目で確定 / ②期中の仮受/仮払は B/S 別表示 / ③インボイス端数処理は仕訳ヘッダレベルで税率ごと集計(明細行積上げは法令違反)/ ④経過措置は取引日ベースで動的決定(80%→50%→0%)、控除不可分は元経費に加算 / ⑤端数差額は雑損益で自動振替 / ⑥1 円ズレは UI 上書き許容 / ⑦税込・税抜入力トグル UI 必須 / ⑧顧問税理士向け 4 パラメータ(端数処理 / 還付科目 / 控除不可分処理 / 起票日付)を 03_sys_params に登録。research_questions.md サマリ件数を「✅ 完了 1 件 / 🔍 未着手 31 件」に更新。_config.json に C.1.2.3 RQ-006 調査結果 ページを追加 |
| 2026-04-19 | docs/_internal/research_prompts/RQ-006_prompt.md | 新規作成。RQ-006 用メタプロンプトを Gemini Pro に投入して生成された Deep Research 用確定プロンプト を保管。インボイス制度経過措置(80%→50%→廃止)の年次タイムライン、税抜方式の標準仕訳パターン表(算出式付き)、還付/軽減税率/インボイス未対応の3エッジケース、顧問税理士向け追加質問リスト等の出力フォーマットを指示する設計。投入後は RQ-006_result.md に結果を保存し research_questions.md のステータスを「✅ 調査完了・仕様書反映済」に更新する |
| 2026-04-19 | docs/_internal/research_prompts/RQ-006_meta_prompt.md / docs/_internal/research_prompts/README.md | 新規作成。RQ-006(中小企業会計指針 第24項 消費税会計処理)の Gemini Deep Research 用 メタプロンプト(Gemini Pro に「最適な Deep Research プロンプトを設計させる」2 段階方式の 1 段目)を保管。research_prompts/ ディレクトリの命名規則・運用フロー(_meta_prompt.md → _prompt.md → _result.md → 仕様書反映)を README に明文化 |
| 2026-04-19 | docs/_internal/research_questions.md | 新規作成。全開発仕様書 60+ 本から「人間が検討すべき事項」のうち外部リサーチが必要な項目を 32 件抽出し、RQ-001 〜 RQ-032 として一元管理。Gemini Deep Research 等への調査依頼候補リストとしても機能。カテゴリ: 法制度・税務 (11) / 会計基準・監査 (5) / 外部 SaaS API (9) / セキュリティ規格 (4) / 業界ベンチマーク (3)。実装前必須 (P1) 7 件、運用開始前推奨 (P2) 12 件、改善用 (P3) 13 件 |
| 2026-04-19 | docs/dev/dev_mas-137_corporate_tax_decision_menu.md / docs/dev/dev_mas-138_pipeline_merge_to_cf.md / docs/dev/dev_mas-169_master_auto_registration.md | 旧 dev_S-01_corporate_tax.md / dev_S-06_pipeline_merge_to_cf.md / dev_I-06_master_auto_registration.md を空き ID S-65 / S-66 / I-27 にリネーム。同一 ID に複数仕様(姉妹・2 系統仕様)が紐づいていた状態を解消。TODO_future.md / _config.json / 関連 spec のクロス参照を同期更新。あわせて PR #192 で修正予定だった dev_S-09 L222 の dev_S-11_pipeline_tax_support.md → dev_mas-083_pipeline_tax.md リンク切れも本コミットに包含 |
| 2026-04-19 | dev_S-01_corporate_tax.md | 初版作成。未払法人税等の対話型計算・計上メニュー。Constants.TAX_RATES に基づき税引前当期純利益から課税所得を算出し 800 万円境界の累進課税・地方税均等割を適用。赤字期は均等割のみ租税公課計上、設立初年度は事業月数で月割り。二重計上防止は摘要「【自動】法人税等計上 FY○○○○」の文字列完全一致。ユーザー承認ダイアログで計算内訳・仕訳プレビューを提示して Human-in-the-Loop を必須化、JournalRepository.append() で 42_trn_journal に書き込み |
| 2026-04-19 | dev_S-06_pipeline_merge_to_cf.md | 初版作成(S-06 再生成版)。84タブ cf_daily_plan に 21_bud_pipeline の見込み売上を合流させる設計。606_datamart_daily_cf.js の dmBuildPlanCashflow_ に dmAppendPipelineCashflow_ フックを追加、INV 起票済(31_wrk_order.参照元ID='PIP_...')は Set で全月除外、確度モード(threshold/weighted)と消費税率を 03_sys_params で切替可能 |
| 2026-04-19 | dev_mas-090_withholding_tax_interest.md | 初版作成。銀行受取利息のネット着金額をグロス利息 + 仮払法人税等 + 元仕訳取消 の3行に展開する Human-in-the-Loop UI 機能の仕様書。400_domain/408_withholding_tax.js を新設し WithholdingTaxService.applyInterestWithholdingTax() を公開、サイドバー「📒 経理業務」に「💰 受取利息の源泉税展開」ボタン追加、Constants.WITHHOLDING_TAX_RATE_INTEREST=0.20315 を新規定数化。42_trn_journal には 有効フラグ 列が存在しないため 仕訳振替方式 (append 3行) を採用 (監査証跡保全)、LockService.tryLock(10000) で排他制御、JournalRepository.append() で O(3) 追記。科目マスタに 仮払法人税等 未登録のため前提マイグレーション必要。Math.floor(netAmt/(1-rate)) で所得税法端数切捨て準拠、Constants.getParam('INTEREST_INCOME_ACCOUNT'/'WITHHOLDING_TAX_ACCOUNT') でハードコード回避、15件のエッジケース全網羅 |
| 2026-04-19 | dev_mas-088_bonus_provision.md | 初版作成。役員賞与引当金の月次自動計上仕様。400_domain/410_subledger_engine.js に createBonusProvisionJournal_(targetYm) を新設し SubledgerService.createBonusProvision として公開、600_report/602_datamart_main.js の buildBudgetTrendDataMart から呼び出し。03_sys_params の CFG_BONUS_PROVISION_AMOUNT / CFG_BONUS_PROVISION_START_YM / CFG_BONUS_PROVISION_END_YM で年間総額・対象期間を管理し、年間総額 / 対象月数 の切捨て按分 + 最終月への端数加算で年間合計一致を保証。JournalRepository.findAll() を走査して 発生日(P/L計上日)のYM + 科目名=賞与引当金繰入額 + 仕訳ステータス=自動計上 の 3 条件で冪等性を担保、決済手段=仕訳振替で B/S 側(賞与引当金 209)を既存エンジンに自動展開。科目 209/542 の 有効フラグ=TRUE 切替と 3 パラメータの手動投入を前提条件として明記 |
| 2026-04-19 | dev_mas-087_data_resync.md | 初版作成。20番台予算タブの選択行→対応INV再生成UIの仕様書。ORD経由の2ステップ参照(予算ID→OrderDTO.参照元ID→InvoiceDTO.親発注ID(ORD))で対象INVを特定し、有効フラグ=FALSE の論理削除+シート全体RPA再実行(冪等性依拠)方式を採用。承認済/却下/自動仕訳JNL_ID非空のINVを含む場合はブロック、42_trn_journalはスコープ外、LockService.tryLock(10000)で排他、Human-in-the-Loop確認ダイアログ、サイドバー「⚙️ メンテナンス」にボタン追加 |
| 2026-04-19 | dev_mas-086_tax_category_suggester.md | 初版作成。OCR金額(税込/税抜/税額)から消費税区分を自動判定する Utils.suggestTaxCategory() を 000_infra/004_utils.js の aiSuggestAccount() 直後に追加する設計。税率パラメータは Constants.getParam() 経由で 03_sys_params から動的取得(CONSUMPTION_TAX_RATE_STANDARD=0.10 / _REDUCED=0.08 / _TOLERANCE=0.005)、戻り値は '課税10%'|'課税8%'|'非課税'|'対象外'|'判定不能'。DTO 側は "課税"|"非課税"|"対象外" の 3 値型のため TAX_CATEGORY_MAP で変換してセット。ゼロ除算回避(失敗パターン #2)、マイナス金額は絶対値化、有効値カウントは 0 を含める設計。案件タイトル「26タブ」は実在しないため対象を 32_wrk_expense と明記 |
| 2026-04-19 | dev_mas-084_allowance_inv_creation.md | 初版作成。差額補充法による貸倒引当金繰入額の INV 自動起票仕様。400_domain/405_rpa_adhoc.js に createAllowanceForDoubtfulAccountsInv_(targetYm) 新規追加、71_bs シートからヘッダー名ベースで当月末売掛金・前月末貸倒引当金残高を取得し Math.round(売上債権 × CFG_ALLOWANCE_RATE) - prevAllowance で差額補充計算、InvoiceRepository.findAll().dtos → 検索 → save(全件) or append([newDto]) の upsert パターン、申請種別='財務仕訳(振替等)'(APL_JE の日本語ラベル)・決済手段='仕訳振替'・請求ステータス='未処理' で Human-in-the-Loop 承認を必須化。戻入益(マイナス)は 収支区分='支出' のまま負値で記録、売上債権≤0 / 1円未満 / 科目マスタ未登録 / 承認済 INV は自動スキップ。407_rpa_orchestrator.js に generateAllowanceInvoice() / RPAService.generateAllowance を追加し generateAllRpaInvoices() に組込、templates/operations_sidebar.html にボタン追加。604_datamart_bs.js の既存オンザフライ計算との二重計上防止は次フェーズ課題として「人間が検討すべき事項」に記載 |
| 2026-04-19 | dev_mas-083_pipeline_tax.md | 初版作成。パイプライン売上の消費税対応仕様書。21_bud_pipeline に 税区分 / 消費税額_スポット / 消費税額_継続月額 の3列を追加、金額列を 税抜_スポット売上 / 税抜_継続月額(MRR) にリネーム。CONSUMPTION_TAX_RATE: 0.10 を 002_constants.js に追加、03_sys_params に CFG_TAX_PAYER_STATUS(免税事業者 / 課税事業者)を導入し事業者区分を外部化。onEdit で税抜入力時に消費税を自動計算(課税事業者×税区分=課税時のみ Math.floor(税抜×0.10)、それ以外は0)、406_rpa_pipeline.js で INV 生成時に InvoiceDTO.税抜金額_計画 / 消費税額_計画 / 税込金額_計画 / 税区分 を事業者区分に応じてマッピング。800_ops/809_migration_s11_pipeline_tax.js を新規作成し列追加・既存行の税額一括計算・03_sys_params 初期値投入を冪等に実施。DDL 再実行より先にマイグレーションを流す順序を厳守する |
| 2026-04-19 | dev_mas-082_plan_bs_journal_pair.md | 初版作成。計画B/Sに仕訳振替ペアのB/S科目集計を追加する仕様書。修正対象は当初想定の 604_datamart_bs.js ではなく、Phase 1 調査で判明した 601_datamart_ingest.js の dmIngestPlanData_()(L318 で 決済手段 === '仕訳振替' を一律除外している箇所)。B/S 科目(預り金等)を isBsForce=true で追加計上、jePairSet による既存の二重計上防止ロジックは温存 |
| 2026-04-19 | dev_mas-081_contract_revenue_logic.md | 初版作成。請負契約の完了基準売上計上ロジック。400_domain/406_rpa_pipeline.js の generatePipelineInvoices に typeStr === '請負' 分岐を追加し、完了月(Utils.addMonths(startYm, dur-1))に契約総額(spot + mrr * dur)を一括計上する。既存スポット/MRR ループは && typeStr !== '請負' ガードを追加し二重計上を防止。冪等性は 【RPA:PIPE】YYYY-MM PJ名 請負一括計上 の摘要完全一致、Human-in-the-Loop は 請求ステータス='未処理'。調査の結果 MST_DICT(101_sys_config.js L1039)に ['CTR_CTR','請負'] が既登録のため DDL 変更は不要と判定。エッジケース(継続月数≤0、総額0/マイナス、完了月未到来、摘要重複)とテスト手順を網羅。 |
| 2026-04-19 | dev_mas-136_manual_plan_source.md | 初版作成(旧 dev_s-07_manual_plan_source.md、S-07 姉妹仕様)→ 2026-04-19 に S-64 へ ID リネーム(姉妹 ID 廃止、空き ID を採番)。51タブの手動調整値をトップダウンで売上計画に加算する設計。ManualPlanRepository(200_data/202_repository.js 末尾追加、readSheetAsDtos_ 再利用・読み取り専用)、ManualPlanDTO(000_infra/003_contracts.js に @typedef 追記。科目名/対象年月/調整金額/摘要/PJ名/組織名)、dmIngestManualPlanData_(600_report/601_datamart_ingest.js 末尾追加、仮想INVイベント形式で dmIngestPipelinePlanData_ と同型出力)、602_datamart_main.js L274付近で planData.concat(manualEvents) による加算合流。同一 (科目名, 対象年月) は合算、マイナス値許容、マスタ未登録はスキップ+Utils.logWarn、有効フラグ=FALSE/必須欠損/ctx.targetMonths範囲外は全てスキップ。書き込みスコープ外・LockService は呼び出し元の推奨事項。Human-in-the-Loop 動作確認フロー(プラス/マイナス/重複/マスタ未登録の 6 行投入→マート更新→6x_pl_plan で計画値変動を目視) |
| 2026-04-19 | dev_mas-025_budget_variance.md | 初版作成。F-25 予算vs実績差異分析の開発仕様書。BudgetRepository新規追加(200_data/202_repository.js 末尾、OrderRepositoryパターン踏襲)、レポートビルダー600_report/610_datamart_budget_variance.js(buildBudgetVarianceReport、LockService不使用、sheet.clear()冪等)、DDL登録(PL_BUD_VAR、schemas辞書外)、サイドバーUI(templates/operations_sidebar.html「📊 マート更新」セクション)、CLAUDE.md「DDL管理外タブ」追記の3ステップ設計。BudgetDTO/JournalEntryDTO定義精査(実績側に有効フラグなし)、エッジケーステーブル(差異率ゼロ除算、和集合アプローチ)、実データ検証手順、6項目の人間検討事項を含む |
| 2026-04-18 | dev_mas-079_tab51_data_source.md | 初版作成。51_list_pipeline_plan を Read-Only から双方向データソースへ昇格させる設計。DDL に「🔧調整値_加重金額(税抜)」「🔧調整理由」2 列を追加(色 #FFF2CC)、PipelineListRepository・PipelineListDTO を新設、findAdjustmentMap() で 管理ID||計上年月||摘要 複合キーの Map 取得。clearContent(2:N) による書式保持マージ方式、override === null と 0 の厳密区別、孤立調整値は破棄+ログ警告。dmIngestPipelinePlanData_ に第 3 引数 adjustmentMap を追加し、events.amt にも反映することで 63_pl_plan / 82_cf_plan / F-08 ランウェイまで波及 |
| 2026-04-18 | dev_mas-078_pipeline_cf_integration.md | 初版作成。84_cf_daily_plan に 21_bud_pipeline の見込み売上を合流する設計(606_datamart_daily_cf.js の dmBuildPlanCashflow_ に dmAppendPipelineCashflow_ フックを追加)。INV 起票済パイプラインは 31_wrk_order.参照元ID='PIP_...' を元に Set で除外(1 件でも INV があれば全月除外、失敗パターン #16 継承)。確度は threshold(>=閾値で100%計上)/weighted(期待値=金額×確度)モードを 03_sys_params で切替、消費税率も同所で設定可能。isActualOnly=true 時は合流スキップ。ソース列に 見込 値を追加し条件付き書式で薄青ハイライト、Human-in-the-Loop の視認性を確保 |
| 2026-04-18 | dev_mas-006_project_overhead_allocation.md | 初版作成(F-06 仕様の公式ドキュメント化および S-45 丸め誤差解消機能の追加)。420_project_profitability.js の「(I) 共通費配賦」ブロック(L498-534)への局所改修設計。配賦先 PJ への按分時に Math.round 適用後の残差を 基準値最大 PJ に寄せて 78_pj_pl と 92_fs_pl の営業利益を完全一致させる(S-13 diff=0)。分母 0 時は均等割フォールバック、戻入(マイナス共通費)は符号保持、特定 PJ 基準値マイナスは下限 0 clamp。5 方式(売上高比・工数比・労務費比・均等割・手動)の全網羅、営業外損益は売上高比強制、rawRows にフォールバック発火を明示記録 |
| 2026-04-18 | dev_mas-008_cash_runway.md | 初版作成。CF マート(605_datamart_cf.js)末尾に「💰 資金繰り予測 / Cash Runway」セクションを追加し、月末現預金残高・バーンレート(過去 N ヶ月の営業 CF 流出平均、財務 CF 除外)・ランウェイ(ヶ月)を出力する設計。非加算指標のため filterNonAdditiveAsLast / filterNonAdditiveAsAvg を新規導入、Total 列を独自計算。ゼロ除算時は空白、cashEnd<=0 は 0 ヶ月で扱う。03_sys_params に CASH_RUNWAY_AVG_MONTHS(default=3)・CASH_RUNWAY_MIN_THRESHOLD(default=6)を追加、安全水準未満の月に条件付き書式(薄オレンジ / 濃赤)で経営アラート |
| 2026-04-18 | dev_I-06_master_auto_registration.md | 初版作成。I-06 姉妹仕様(registration 系)。仕訳生成ロジックの直前に 20 番台マスタ存在チェック + インライン自動登録を挟み、行き止まりを解消する設計。BudgetSubscriptionRepository / BudgetAdhocRepository / BudgetFinanceRepository を新設(AccountRepository 同型)、MasterAutoRegistrar モジュールで begin/ensureMaster/commit のバッチ API を提供、seen Set による二重消費防止、commit 内で resetCache 必須、有効フラグ=TRUE + 備考マーカー [I-06 自動登録] + 条件付き書式で Human-in-the-Loop |
| 2026-04-18 | dev_mas-150_budget_master_auto_proposer.md | 初版作成。銀行CSV・カード明細・領収書取込時に、不足している 20 番台予算マスタ(BUD_SUBS / BUD_ADHOC / BUD_FIN)を自動起票する運用ツール(500_import/504_budget_auto_proposer.js 新規)。BUD_FINキーワード → 定期性判定(3ヶ月・2回以上・±10%) → BUD_ADHOCデフォルトの優先順位、取引先×金額レンジ±10%バケツでの重複除外、有効フラグ=FALSE+黄色背景での Human-in-the-Loop、既存importerへの後処理フック統合 |
| 2026-04-18 | dev_mas-153_evidence_link_rebuilder.md | 初版作成。Drive 移動・コピー後の証憑リンク切れを一括修復する運用ツール(800_ops/809_evidence_link_rebuilder.js 新規)。I-08 のファイル名規約を両側ピール方式でパースし、35_wrk_receipt / 32_wrk_invoice / 31_wrk_order / 42_trn_journal を 3-pass マッチング(完全一致 → 合算 → 部分一致)で再リンク。FolderIterator の .hasNext() 必須、Date 比較は Utils.parseDateToYmd 正規化、matched フラグで二重消費防止、URL 文字列比較で冪等性担保、更新セルに黄色背景で Human-in-the-Loop 可視化 |
| 2026-04-18 | dev_mas-152_evidence_filename_rename.md | 初版作成。502_receipt_reader.js の importReceiptPdfs() 後処理として、電帳法準拠の YYYYMMDD_取引先略称_金額_元ファイル名.ext リネームと processed/YYYY-MM/ 月別サブフォルダ振り分けを実装。Utils.normalizePartnerName 再利用、拡張子分離→切り詰め→再結合、FolderIterator の .hasNext() 必須、列インデックスは HEADERS.indexOf 動的取得、/^\d{8}_/ による冪等性担保の設計 |
| 2026-04-17 | dev_mas-147_invoice_ocr_auto_posting.md | 初版作成。Gemini プロンプト強化で請求書の paymentDate(支払期限) と bankAccount を明確化、docType==='請求書' で WRK_INVC 経路に分岐、buildInvDtoFromOcr_ で DTO 組立、InvoiceRepository.append の諸表区分・大分類自動補完を活用、日付別 INV_yyyyMMdd_NNNN 採番の 4 ステップ設計。領収書経路は完全非破壊 |
| 2026-04-17 | dev_mas-161_ocr_manual_correction_assist.md | 初版作成。35_wrk_receipt を validSheets に追加、税込をユーザー権威とする双方向再計算、setCellIfChanged によるループ防止、PartnerRepository.findTaxIdMap 追加、T番号は法人番号派生(T + 13桁ゼロ埋め)の 3 ステップ設計 |
| 2026-04-17 | dev_mas-089_consumption_tax_exclusive_method.md | 初版作成。CFG_TAX_METHOD/CFG_TAX_TRANSITION_DATE による税込/税抜切替、既存 TRN_JOUR の 3 列(税抜/消費税/税込)を非破壊活用、601 の getPlAmount_ ヘルパー導入、604 への仮受/仮払仮想仕訳注入、決算月相殺、整合性監査レポートの 5 ステップ設計 |
| 2026-04-17 | dev_mas-120_partner_payment_terms_autofill.md | 初版作成。12_mst_partner に標準決済条件 5 列を追加、PartnerRepository/PartnerDTO 新設、21/23/26 タブの onEdit 自動補完、最頻値抽出による冪等マイグレーションの 4 ステップ設計。BUD_ADHOC の部分列対応と BUD_PIPE の列名マッピング(入金ラグ/入金日)を組み込み |
| 2026-04-17 | dev_mas-134_setup_all_schemas_optimization.md | 初版作成。Sheets API v4 batchUpdate による書式・バリデーションの一括適用、スキーマハッシュによる増分更新モード、進捗トースト通知の3ステップ設計 |
| 2026-04-17 | dev_mas-003_kpi_dashboard.md | Step 2 実装内容を反映: MATCH廃止・行列リテラル方式への設計変更、YoY差異列回避の12列固定、境界月動的検出、KPI直下に内訳埋め込み(main/sub/subsub)、K5 BEP に人件費/非人件費内訳追加。失敗パターン #21-#24 も記録 |
| 2026-04-17 | dev_mas-201_sheet_backup.md | 初版作成。809_backup_tool.js 新設、DriveApp.makeCopy ベースの週次12/月次12世代管理、月末週の月次昇格、行数差分±5%検証、Env.backupFolderId追加の4ステップ設計 |
| 2026-04-17 | dev_mas-003_kpi_dashboard.md | Step 1 動作確認手順に initConfigs(シートのGID取得・リンク)の実行ステップを追加。config 行追加 → タブ生成 + GID 紐付けの既存運用パターンに合わせた |
| 2026-04-17 | dev_mas-003_kpi_dashboard.md | Step 1 実装プロンプトと関連セクションを訂正(コード未読で類推した3件の誤り: SHEET_DEFAULTS 型誤認、シートキー登録先 03_sys_params→01_sys_config、実在しないメニュー名)。失敗パターン表と汎用プロンプトのPhase 1-Dも同時更新 |
| 2026-04-17 | dev_mas-179_audit_trail.md | 初版作成。98_audit_log 専用WORMシート + Utils.auditLog API + 6種類の計装点(RPA/Action A/Action B/onEdit承認列/setupAllSchemas/マイグレーション)+ 管理者メニュー + 月次アーカイブの3ステップ設計 |
| 2026-04-17 | dev_mas-003_kpi_dashboard.md | 初版作成。93_kpi_dashboard 新設、売上総利益率・営業利益率・労働分配率・BEP・ランウェイの5 KPIを数式ベースで実装。条件付き書式で閾値警告、SPARKLINEで6ヶ月トレンド |
| 2026-04-17 | dev_mas-166_reimbursement_payee.md | 初版作成(実装完了後に知見文書化)。立替精算STLの決済口座に振込先名を付加し、給与+立替精算の合算マッチを実現。payeeグループによる2段階グルーピング設計 |
| 2026-04-16 | dev_mas-154_partner_logical_abbr.md | 初版作成。取引先マスタへの論理略称カラム追加と自動生成ロジックの実装 |
| 2026-04-16 | dev_mas-073_corporate_tax_transition.md | 初版作成。みなし法人税→確定法人税への移行対応。B/S未払法人税等への手動法人税反映、期ずれ解消科目の法人税ルーティング追加 |
| 2026-04-16 | dev_mas-148_oneclick_monthly_close.md | テンプレート準拠で全面改訂。Action A→B→マート更新の統合オーケストレーター設計。事前バリデーション(未承認INV・未消込STL警告)・エッジケース・実データ検証セクション追加 |
| 2026-04-16 | dev_mas-157_photo_ocr.md | 初版作成。写真(JPEG/PNG)対応の証憑OCR拡張+電帳法品質チェック。502_receipt_reader.jsのMIMEタイプ拡張と画像バイナリパースによる解像度・カラー検証 |
| 2026-04-16 | dev_mas-192_repository_module_split.md | 初版作成。401_bat_rpa.js(2,064行)のドメイン別6分割+Repository パターン完全移行の4ステップ設計 |
| 2026-04-16 | dev_mas-020_yoy_comparison.md | テンプレート準拠で全面改訂。エッジケース追加、シート名を66_pl_prev_yearに変更(65は予実差異で使用済み) |
| 2026-04-16 | dev_mas-094_boundary_month_selector.md | テンプレート準拠で全面改訂。エッジケース・実データ検証セクション追加 |
| 2026-04-16 | dev_mas-145_bank_csv_import.md | 初版作成。法人口座CSV取込・自動マッチングの開発仕様書。ステージングシート方式+2段階マッチ+銀行別アダプター設計 |
| 2026-04-15 | dev_mas-020_yoy_comparison.md | 初版作成。前年同月比較(YoY)の開発仕様書。暫定方式(スナップショット)で設計 |
| 2026-04-15 | dev_mas-118_rpa_target_month_col.md | 初版作成。20番台予算タブに「起票ターゲット月」列追加の開発仕様書 |
| 2026-04-15 | dev_mas-199_prod_dev_sync.md | 初版作成。prod→devデータ同期ツールの開発仕様書 |
| 2026-04-14 | dev_spec_prompt_template.md | 初版作成。14件の開発仕様書作成ノウハウを分析し、汎用プロンプトテンプレート化。案件タイプ別テンプレート選択・品質チェックリスト・パターン分析メモを含む |
| 2026-04-14 | dev_mas-178_error_handling.md | 初版作成。永続ログ基盤+タイムアウト監視+API Exponential Backoffの3ステップ設計 |
| 2026-04-14 | dev_mas-095_bs_snap_actual_only.md | 初版作成。72_bs_snapプルダウンの実績月限定。sourceMonths分岐で71_bsヘッダーと形式統一 |
| 2026-04-14 | dev_mas-024_bep_analysis.md | 初版作成。BEP月次自動算出。acctMap固変区分拡張+P/L末尾にBEPセクション追加 |
| 2026-04-14 | dev_mas-116_migration_framework.md | 初版作成。マイグレーション基盤のガイドライン明文化。804-806の確立済みパターンを整理 |
| 2026-04-14 | dev_mas-077_settlement_date_sync.md | 初版作成。Action Bで33タブ→32タブへの決済日_実績転記。D-05 DDL完了の後続作業 |
| 2026-04-14 | dev_mas-094_boundary_month_selector.md | 初版作成。実績集計の基準年月プルダウン。ダイアログ方式でboundaryMonthStr上書き |
| 2026-04-14 | dev_mas-074_jv_virtual_settlement.md | 初版作成。給与INV未決済残高への仕訳振替仮想消込。天引きペアの符号ルール、二重減算防止を設計 |
| 2026-04-14 | dev_mas-080_pipeline_early_id.md | 初版作成。21タブ管理ID早期採番。generateNextIdForAssist_()未定義の発見と実装方針を含む |
| 2026-04-14 | dev_mas-001_variance_analysis.md | 初版作成。予実差異分析の開発仕様書。53列D案レイアウト、3ステップ分割の実装プロンプトを含む |
| 2026-04-14 | dev_mas-085_consistency_check.md | 初版作成。78_pj_plと92_fs_plの営業利益整合性チェック。不一致原因の分析と±1円閾値のalert方式を設計 |
| 2026-04-14 | dev_mas-075_expense_date_validation.md | 初版作成。立替精算INVの発生日=決済日_計画同月チェック。validateInvoice_()へのWARNING追加 |
| 2026-04-14 | dev_mas-093_cf_actual_only.md | 初版作成。CFタブ実績専用モード対応の開発仕様書。P/Lパターンの移植方針、フロー/ストック判定、実装プロンプトを含む |
| 2026-04-14 | dev_mas-196_repo_contracts_test.md | 初版作成。Contracts/Repository/Utils層テスト追加の開発仕様書。T9-T11のテストケース設計、実装プロンプト、推奨実行モデルを含む |
| 2026-04-14 11:35 | data_maintenance.md | 未使用列の調査結果を追加。31列中、削除可3件/将来利用5件/UI用途23件に分類 |
| 2026-04-14 11:20 | data_maintenance.md | 初版作成。TODO_future.md の S-39, S-40 をデータ整備案件として切り出し |
| 2026-04-14 10:33 | dev_mas-076_idempotency_fix.md | 初版作成 |
| 2026-04-14 10:33 | dev_mas-096_clasp_push_protection.md | 初版作成 |
| 2026-04-14 10:33 | dev_mas-097_unused_vars_cleanup.md | 初版作成 |
| 2026-04-14 10:33 | dev_mas-098_idempotency_test.md | 初版作成 |
| 2026-04-14 10:33 | dev_mas-195_pre_push_hook.md | 初版作成 |
| 2026-04-14 10:21 | dev_mas-110_document_date.md | 初版作成 |
| 2026-04-14 | ref_id_management_research.md | 初版作成(docx→md変換) |
| 2026-04-14 | ref_fpa_requirements_research.md | 初版作成(docx→md変換) |
| 2026-04-14 | ref_erp_product_comparison.md | 初版作成(docx→md変換) |
| 2026-04-14 | ref_smb_fpa_demand_research.md | 初版作成(docx→md変換) |
| 2026-04-14 | ref_fpa_spec_writing_research.md | 初版作成(docx→md変換) |
| 2026-04-13 23:55 | dev_mas-198_backlog_api.md | 初版作成 |
| 2026-04-12 16:06 | spec_rpa_pipeline.md | Template A (RPA/バッチ処理) 構成に全面リライト。セクション2(前提条件), 8(エラーハンドリング)を新規追加 |
| 2026-04-12 16:06 | spec_rpa_finance.md | Template A 形式にリライト。§2 前提条件、§7 冪等性、§8 エラーハンドリングを新規追加 |
| 2026-04-12 16:06 | spec_rpa_adhoc.md | Template A に準拠しリライト。コードリーディングに基づき §2前提条件、§5出力サマリー、§7冪等性、§8エラーハンドリングを新規追加。§6に業務ルール統合 |