/** * 事前チェックのロボット状態(`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[] = [];