本書は「何を作るか(機能一覧)」と「どの順で作るか(開発フェーズ)」の正です。 仕様の詳細は CLAUDE.md(確定仕様)と d-watch-api.yaml(API契約)を参照してください。
| # | 画面 | ID | 種別 | 概要 |
|---|---|---|---|---|
| 1 | ダッシュボード | dashboard |
参照 | ログイン後の最初の画面。昨夜の清掃結果を10分で把握(★数値カードと表は各清掃エリアの直近の清掃・7日以内。D-159★) |
| 2 | 清掃詳細ログ | detailLog |
参照 | 1行=1ロボット×1スケジュール実行。△×行を展開してアドバイス表示 |
| 3 | アラート(事前チェック) | alert |
参照+更新 | 清掃前の異常検知。対応状況を更新できる |
| 4 | レポート | report |
参照 | KPI4指標+前期比、施設別パフォーマンス、連続問題施設、エラー種別内訳 |
| 5 | 点検記録 | inspection |
参照+登録 | 現場訪問時のBefore/After写真と申し送り。独自ストア |
| 6 | D-Secログ | dsecurity |
参照 | D-S制御盤の稼働状況一覧 |
| 7 | D-Secアラート | dsalert |
参照+更新 | セキュリティ無効・通信断の検知。対応状況を更新できる |
| 8 | 施設ロボットマスタ | robot |
参照のみ | 施設情報+ロボット情報。登録更新はD-Security側画面 |
| 9 | スケジュール | schedule |
参照のみ | Pudu Cloud由来の清掃スケジュール |
| 10 | システム管理 | system |
設定 | 表示設定・運用設定(閾値等)。P1は限定スコープ(下記2.3) |
settleMinutes)」を待っていた★)。?date= を指定したときはその日の清掃RESULT_WAIT_MINUTES(120分。設定値)。★失敗・未実施に数えない★(D-173)GET /dashboard の1本(★コンパクト版ログはレスポンスの problem_logs。数値カードと同じ母集団の △×(★結果待ちの行は出さない。D-173★)。画面は先頭5件★。D-159 / 指示書AV D7。旧: GET /clean-logs?result=problem を再利用)status_1h / status_30m(名前は互換のため据え置き)と status_1h_minutes / status_30m_minutesnull、CSV は空のセル。予定があって異常なしは "Standby.")。★判定には使わない★(D-171 / D-170)result_pending。予定の終了から RESULT_WAIT_MINUTES 以内でレポートが無い)は、出発「…」・清掃結果「結果待ち」・判定なしで、行を開けない★。★△×のみ/×のみの絞り込みからは外す★(D-173)clean_status_histories)。★1回の清掃の中の区域別内訳(確認事項#10 の本来の問い)は依然として未解決★133.125.238.144)の clean_timetables WHERE precheck=0 を数えたものだったが、 ★その行は当方(DFA)が scripts/seed-local-db.ts で投入したダミーデータ★だった。 ★本番の清掃回数は不明★。出典: docs/handoff/テストDBのデータ出所_20260917.mdlib/ と app/ に14か所残っている★(★未修正★)。 ★書き換えるときは、新しい数字も「見積もり」であることを明記すること★。 出典: docs/handoff/規模前提の見直し_20260917.mdGET /clean-logs, /clean-logs/{id}/advice, /clean-logs/{id}/areas, /clean-logs/exportmain_run_succeeded。★対応状況・未解消の件数は変えない★。D-171)responded_at / resolved_at を記録)。★D-161。旧: 押すたびに 未解消 → 対応中 → 解消 と巡回するボタン★GET /prechecks, PATCH /prechecks/{id}/status/errors)★2026-10-06 追加。番号は振らない★robot_error_reports の全行★(ロボット・制御盤・セキュリティ・清掃開始失敗。事前チェックかどうかを問わない)を一覧する。既定は未解消・対応中、「解消済みも表示」で解消も(D-160)responded_at / resolved_at を記録。D-161 / D-165)GET /errors, PATCH /errors/{error_id}/statusGET /reports/kpi, /reports/facility-performance, /reports/facility-performance/export, /reports/continuous-problems, /reports/error-breakdownGET /inspections, GET/DELETE /inspections/{id}, POST /inspectionsGET /ds-devicesGET /ds-alerts, PATCH /ds-alerts/{id}/statusfacilities.contract が正GET /facilitiesGET /schedules| サブタブ | P1での扱い |
|---|---|
| 表示設定 | 実装する(ダッシュボードの表示項目ON/OFF)。設定ファイル管理 |
| 運用設定 | 実装する(事前チェックのタイミング、完了率閾値、エスカレーション閾値) |
| 通知設定 / 顧客管理 / グループ管理 | 実装しない(D-Security側の画面を流用) |
| ユーザー管理 / 権限管理 / 監査ログ | スコープ外(ユーザー管理未実装のため。P2以降) |
P0 環境準備 ──> P1 基盤 ──┬──> P2 コア画面 ──> P3 アラート系 ──> P4 レポート ──> P5 マスタ ──> P7 仕上げ
└──> P6 点検記録(独立・並走可)
P0ゴール: 2人がコードを書き始められる状態
CLAUDE.md / .cursorrules / docs/ 配置lib/fixtures/ のサンプルデータ作成(docs/fixtures.md のケースを網羅)
LOG / PRECHK / DSA_INIT / RANK / ROBOTS / SCHED / DSDEV / INSPECTIONS を型付きで移植lib/db/index.ts に USE_FIXTURES の切替を実装依存: なし(今すぐ着手可) 担当: 環境
P1ゴール: 全画面が乗る土台と、絶対に間違えられない判定ロジックの完成
proxy.ts + cookie + IP制限。指示書I / D-101)★、エラー形式、ページネーション)db pull)、テーブル定義書との突き合わせ
依存: スキーマ取り込みのみステージングDB待ち。判定ロジック・画面開発はfixtureで先行可 担当: 両名(判定ロジックは特に慎重に)
P2ゴール: 毎朝の運用(STEP1〜2)が回る
依存: なし(fixtureで開発) 担当: ダッシュボード
P3ゴール: 検知から対応記録までが完結する
依存: 更新系はDB更新用アカウントと responded_at/resolved_at カラム反映待ち 担当: ダッシュボード
P4ゴール: 週次・月次の振り返りとInsight Assistレポートの素材が出せる
依存: サマリ集計バッチ(TeamWorks)の完成とスキーマ確定待ち。当期集計部分は先行可 担当: 両名
P5ゴール: 契約状態とスケジュールが画面から確認できる
依存: facilities.contract 反映済みDB待ち。実装は単純なので後回し可 担当: ダッシュボード
P6 ※他フェーズと並走可ゴール: 現場訪問記録がシステムに残る
依存: メインDBと独立のため、いつでも着手可能 担当: 環境
P7ゴール: 本番稼働
USE_FIXTURES=false に切替、1画面ずつ実データで確認依存: 本番DB・VM設置(TeamWorks)待ち 担当: 環境
実装をブロックしないため、以下はスタブ/モックで先行し、解消後に差し替えます。
| 項目 | 影響機能 | 暫定対応 |
|---|---|---|
| DBアカウント発行(参照用/更新用) | 全画面 | lib/fixtures/ のサンプルデータで開発 |
| ステージングDB | M1のスキーマ取込以降 | Prismaスキーマを定義書ベースで手書きし、db pull で答え合わせ |
facility_id の主要テーブル追加(依頼3-1) |
全画面のクエリ | 多段JOINで暫定実装 → 追加後に単純化 |
responded_at / resolved_at の2カラム化(依頼3-2) |
F-03, F-07 | APIスキーマは2カラム前提で先行 |
| サマリ集計バッチ | F-04 | fixtureのサマリ値で開発。当期集計ロジックで全期間を暫定計算 |
|
|
F-04 | ★週を月境界で分割する(D-071。TeamWorks 方式)。週の長さは1〜7日、週番号は1〜6★ |
|
|
F-02のエリア別グラフ | ★エリア(=ロボット)単位の完了率は clean_status_histories から本実装する★。★1回の清掃の中の区域別内訳は依然として未解決(第9回で聞き直し)★ |
M0 ──────────────────────────────────────────> M7
fixtures で全画面を開発 ────────────> USE_FIXTURES=false
↑
M1でdb pullによるスキーマ突き合わせだけ先に済ませる
(画面開発はfixtureのまま継続)
DB接続は「ある程度画面ができてから」。 ただしスキーマの答え合わせ(db pull)だけはM1で早めに行い、 カラム名の食い違いを早期に潰します。
| 機能 | 内容 |
|---|---|
| Phase B | エラーコード別アドバイスルール(ハンドルアップ/ブラシ/LostLocation/オフライン等)、★1回の清掃の中の区域別完了率(売り場・通路・レジ前などの内訳。確認事項#10 の本来の問い。エリア=ロボット単位はP1で実装済み)★ |
| Phase C | 自動検出・予兆検知 |
| P2 | 顧客アカウント開放(顧客管理者・施設運用者)、ユーザー管理・権限管理・監査ログ、Keenon対応 |