Newer
Older
client_dwatch / lib / config / robot-status-match.ts
/**
 * 事前チェックのロボット状態(`status_1h` / `status_30m`)が
 * B2 / B3 のアドバイスを発火させる値の一覧。
 *
 * ★なぜ設定値なのか★
 *   値は ★暫定★ で、変わる可能性があります(D-078 項2。ユーザーが「暫定で変更のおそれはあります」と明言)。
 *   コードに直書きすると変更時に複数箇所を追うことになるため、★1箇所の差し替えで済む形★ にします
 *   (`CLAUDE.md` §7「閾値のハードコード禁止」と同じ趣旨)。
 *
 * ★置き場所について★
 *   `lib/config/index.ts`(judge 系の閾値 `GRADE_THRESHOLDS` / `ESCALATION_THRESHOLDS` 等を持つ)
 *   には足さず、独立ファイルにしている。指示書I の `lib/config/allowed-ips.ts` と同じ理由で、
 *   ここに統合すると不要な依存が広がるため。
 *
 * ★マッチの規則★
 *   ★前後の空白を trim し、大小文字を無視して★ 比較します(`lib/judge/advice.ts`)。
 *   理由: `Handrail Lifted` は ★空白入り★ で、他の24値がすべて PascalCase(`EmergencyStop` 等)
 *   なのに対し形が違います。★`error_type` の値の形が1種類ではない可能性があり、
 *   表記ゆれで取りこぼす★ ためです(D-074 / `docs/handoff/analysis/error-type-mapping.md` の指摘)。
 *
 * ★空配列=発火しない★
 *   既定を空にしているものは ★「実データで値が判明していない」★ という意味です。
 *   ★「静かに発火しなくなる」より「明示的に空」のほうが後から気づける★ ので、
 *   分岐ごと消さずに空配列を残してあります。
 */

/**
 * B2(ハンドルアップ検知)。
 *
 * ★`Handrail Lifted` は暫定値です★(D-078 項2)。
 *   ★受領済みの `error_type` 24値のリストには含まれていません★。
 *   ユーザーも「〜だと思いますが」と述べており確定ではありません。
 *   ★実データに接続できたら、`error_type` に実在するかを最優先で確認してください★。
 */
export const B2_HANDLE_UP_STATUSES: readonly string[] = ["Handrail Lifted"];

/**
 * B3(オフライン検知)。
 *
 * ★空=発火しません★。実データ上どの値がオフラインを表すのかが ★未判明★ のためです。
 *   `error_type` の24値にも `robots.status` の46値にも該当がありません
 *   (46値は移動・充電・清掃・帰還の動作フェーズのみ。D-077 項3)。
 *   ★実データで値が判明したら、ここに足すだけで復活します★。
 *   ★推測で値を入れないこと★(`CLAUDE.md` §7)。
 */
export const B3_OFFLINE_STATUSES: readonly string[] = [];