作成: 2026-10-01。PR: https://github.com/DFARobotics/d-watch/pull/6 。決定: D-154。 数字の出所: git diff --numstat origin/main origin/develop(main=1f214cc / develop=a7b4614)。構造由来。
★コードは Claude Code / Cursor が書き、★daichi がレビューして main にマージする★(2026-10-01 ユーザー指示「コードレビューは自分がします」)。
| # | 内容 | 状態 |
|---|---|---|
| 0-1 | ステージングDBの実パスワード(URLエンコード形)がコメントの例に入っていた5箇所を、ダミー p%40ss に差し替える(.env.example:12 / lib/db/prisma.ts:30 / docs/code-map.md:2006,2522 / docs/handoff/セッション引き継ぎ_20260916.md:212) |
★済(D-154)★ |
| 0-2 | ★履歴には残る★(2026-09-16〜10-01 の4コミット: 992a456 / d792067 / 2bf83cd / d23e203)。★TeamWorks にパスワードの変更を頼むか★ | ★daichi 判断待ち★。履歴の書き換え(force push)は下の区切りのコミット番号が全部変わるので勧めない |
| 0-3 | (任意).github/workflows/ci.yml の prisma generate 追加(15行)だけを先に main へ入れる |
未。入れないと Part 3・4 の CI のビルドが赤になる(09-09〜09-17 の CI に生成の手順が無かったため。Part 5 の ebb0872 で直った) |
★develop は一直線の履歴(マージコミット0件)なので、途中のコミットに枝を立てるだけで切れる★。
| Part | 枝の先端 | 期間 | 件数 | 本番コード / テスト(追加行) | docs(追加行) | 中身 | 向き先 |
|---|---|---|---|---|---|---|---|
| 1 | 9cd4b08 |
08-30〜09-03 | 29 | 6.8k / 2.3k | 18.8k | 開発用サンプルデータ上の画面(ダッシュボード・事前チェック・D-Secログ/アラート)、schema の db pull(D-047〜D-065) | main |
| 2 | b2ec6ee |
09-03〜09-08 | 73 | 5.2k / 3.1k | 12.1k | レポート、月跨ぎ週(TeamWorks方式)、JSON設定ストア、マスタ3画面(D-066〜D-084) | Part 1 |
| 3 | 327682e |
09-08〜09-11 | 76 | 5.0k / 2.9k | 12.7k | ★実DBへの配線★、ローカルDBのシード、★認証(cookie)と IP 制限★、エラー種別の生値表示(D-085〜D-108) | Part 2 |
| 4a | 7db4a57 |
09-11 | 55 | 4b と計 7.4k / 10.5k | 4b と計 23.1k | 連続日数、事前チェックの読み方、DATETIME の扱い、エリア別完了率、ページ送り | Part 3 |
| 4b | af11453 |
09-13〜09-15 | 59 | (同上) | (同上) | ★生SQL禁止の lint、CSV インジェクション対策★、検索の正規化、SQL への絞り込み(D-109〜D-134) | Part 4a |
| 5 | 7fdd822 |
09-15〜09-17 | 109 | 7.3k / 6.3k | 25.5k | 要レスキュー、分類の絞り込み、判定境界を「以上」に、総清掃面積、CI 修正(D-135〜D-150) | Part 4b |
| 6 | develop 先端 | 09-30〜10-01 | 22+α | 2.0k / 2.9k | 5.9k | ★データ取得元の切替★(サマリ3粒度・clean_task_reports 一本化・完了率=clean_ratio 単純平均)、言語切替のずれ修正、0-1(D-151〜D-154) |
Part 5 |
ci.yml の pull_request: に枝の絞り込みが無いので、main 以外に向いた PR でも走る)| # | 観点 | 場所 | 見るところ |
|---|---|---|---|
| 1 | 認証・IP制限(Part 3) | proxy.ts / lib/proxy/authenticate.ts:59-94 / lib/auth/client-ip.ts:36-78 / lib/auth/token.ts:22-41 / lib/auth/cookie.ts:29-32 |
XFF は末尾側(parts[length - hops])を見ているか。★cookie の値は共有トークンそのもの・ログイン試行回数の制限なし★ — 社内利用でこれでよいか |
| 2 | ★IP制限の既定値★ | lib/config/allowed-ips.ts:24-35 / docs/deploy.md:117-121 |
★許可IPが空だと全部通す(ALLOW_ALL_WHEN_EMPTY = true)★。本番に出す前に許可リストを入れるか、既定を拒否に倒すか |
| 3 | DB書き込み | app/ lib/ |
★Prisma の update/create/delete と生SQLは1件も無い★(読み取りのみ)。生SQLは eslint.config.mjs で禁止。書き込む PATCH 3本はローカルの JSON(lib/settings/json-store.ts:86-127) |
| 4 | ステージングを消さない仕組み | scripts/seed-local-db.ts:85-91,844-856 / lib/db/local-guard.ts:10-31 |
localhost の dwatch_local 以外を拒否するか |
| 5 | 判定ロジック | lib/judge/grade.ts:29-35 / kpi.ts / rescue.ts / escalation.ts / lib/config/index.ts |
境界(90.0◎ / 70.0○ / 10.0△ / 9.9×)、丸める前の値で判定、閾値は設定から読む |
| 6 | 時刻 | lib/format/date.ts / lib/db/date-range.ts:55-64 |
DBの値に9時間を足していないか(CLAUDE.md §3) |
| 7 | 契約フラグ | lib/format/contract.ts:26-41 |
文字で比べ、数値にしていないか(§4.6) |
| 8 | 環境変数の既定値 | lib/db/use-fixtures.ts:17 / .env.production.example / scripts/check-env.ts |
★USE_FIXTURES は未設定だとサンプルデータで動く★。本番では false を明示 |
| 9 | ログ | instrumentation.ts:39-80 / lib/logger/redact.ts |
接続文字列やトークンがログに出ないか |
| 10 | データ層の本体(Part 6 で作り直し) | lib/db/index.ts / report-mapping.ts / clean-log-mapping.ts / consecutive-source.ts / clean-area-source.ts |
量も仕様上の危険も最も多い。★Part 3〜5 の版は流し読みにし、Part 6 で読む★ |
| 11 | ルールの変更 | CLAUDE.md の差分(+274行) |
ルールそのもの |
docs/handoff/ の全部(指示書・TeamWorks 照会・PDF 生成スクリプト)、docs/decisions.md、docs/code-map.mdlib/fixtures/ とそのテスト、package-lock.jsonprisma/schema.prisma(db pull の生成物。手で書いた行が無いかだけ)、d-watch-api.yaml(型との整合だけ)| 書かれた Part | 置き換えた Part | 何が |
|---|---|---|
| 1 | 1 | prisma/schema.prisma の手書き(fac1a54)→ db pull(d20be80) |
| 1 | 3 | エラー種別の enum と型(67e7014 で撤去。D-077/088) |
| 1 | 5 | lib/judge/grade.ts の境界(eb1cebc。D-139) |
| 2 | 2 | 期間ヘルパー(234987e → 同日の 8a00ed0。D-071) |
| 3 | 4a | 事前チェックの読み方(D-113) |
| 3〜5 | 6 | lib/db/ のマッピング5ファイルと lib/judge/kpi.ts / rescue.ts。面積比の完了率と clean_error 判定は廃止 |
★時期: 第10回の回答後に、指示書AR と4カラム UPDATE の実装が終わってから★(ユーザー判断 2026-10-01。それまでに develop に積んだ分も Part 6 以降に含める)。その時点で区切りを数え直す。 0-3 の CI 修正の先行 PR も同じ時期に行う。
review/part-1 〜 review/part-6)を立てて push し、PR を7本作る。各 PR の説明に、中身・読むところ・置き換わる箇所を書く