← FUNKY STADIUM ポータルへ戻る / Back to portal
イベント前 手動チェックリストPRE-EVENT MANUAL CHECKS — what only a human with devices can verify
機械が確認できることはCI(npm run ci)と prep の「準備状況を確認 / Verify readiness」ウィザードが見ます。ここにあるのは人間がデバイスを手に取って確かめることだけ。各項目、確認できたらチェック。印刷して使ってください。 Only the checks a human with real devices can run — everything mechanical is automated. Print this and tick as you go. (Pair: edit together with manuals/PRE_EVENT_CHECKS.md in the repo.)
◆前週Week before (T-7〜T-2)
- ブラケット配置の目視確認 — 「ブラケット・シード配置の可視化 / Bracket Seeding Visualizer」で各バトルの想定人数Nの配置図を開き、主催側の組み合わせ表・告知と目で突き合わせる。配置ルール自体はテスト固定済み — 「主催が約束した形と一致しているか」は人間にしか判定できない。Open the visualizer at each battle's expected N and glance the formation against the organizer's sheets — the rule is test-locked; the match to what was promised is human-only.
- 開催日の確認 — prep → イベントタブ → 「開催日 / Dates」が本番の日付どおりであること(複数日ならすべての日)。準備状況カードは日付が入っているかしか見ない — 正しいかは人間が見る。最終日を過ぎると新規の申込は自動で締まり、早割の締切も(空欄なら)開催日の2日前 18:00 から決まる。The event dates on prep's Event tab must be the real dates (every day of a multi-day event). Readiness only checks a date exists; after the last day new sign-ups close automatically, and a blank early-bird cutoff is derived from these dates.
- データが変わっていたら再インポート — 主催シートが前回インポート以降に更新されていたら:最新の .xlsx をダウンロード → admin → 設定 → 「データインポート / XLSX Import」にファイルを置く。エントリーだけが変わった場合は「シート選択 / Pick one」→ エントリーのシート →「参加者として読込 / Load as participant」→ 確認画面の「新規追加」「更新」「バトル別内訳」を確認して取込(「バトル未マッチ」が出たら下のキーワード項目へ)。再インポートは冪等。同じメール+同じダンサー名の重複行は自動マージ(同じメールでもダンサー名が違えば別行のまま — ソロと2on2の併願)。既存参加者はチェックイン・番号・支払状況を保持したまま更新。シートから消えたバトルは、その人のエントリーからも外れて枠が空く。⚠「全シート取込 / Import all detected sheets」は進行表・MC台本・タイムテーブルも取り込み、以前に取り込んだ行を上書きする(本番確定=ロック中のステージには書き込まない)— アプリ内で直した進行表を残したいときは使わない。If the organizer sheet changed: admin → Settings → XLSX Import. For entries only: Pick one → the entries sheet → Load as participant, then check the new / update / per-battle counts — idempotent, keeps check-in, number and payment; a battle the sheet no longer lists is dropped from that entry. "Import all detected sheets" also OVERWRITES previously imported rundown / MC script / timetable rows.
- 同行者数の検算(admin) — 再インポート後、admin → 参加者 → 各行の展開ボタン(展開 / Expand ops)で開く「同行者 (現在 N名)」をシートの同行者欄と突き合わせる。合計は admin ダッシュボードの「来場予定人数 / Expected attendance」の内訳(同行 N・未就学児 N)で見て、シートの合計と一致すること。Expand each participant row in admin's Participants view (Expand ops) and foot 同行者 (現在 N名) against the sheet; the totals are under the dashboard's Expected attendance card (同行 N · 未就学児 N) — they must agree with the sheet.
- XLSX 決済タブの家族検算 — admin ダッシュボード → 「XLSX 保存 / Download XLSX」 → 「決済 Payments」シートを開く。同行(companion)・観覧(spectator)行も含まれるので、家族・グループ単位で金額を手計算し、「概要 Overview」の合計と一致すること。Open the 決済 Payments sheet of the XLSX archive (companion + spectator rows included) and hand-foot the family math against the 概要 Overview totals.
- バトル識別キーワードが実在バトルに紐付くか — prep → イベントタブ最下部 → 「バトル識別キーワード」カード → 「編集 / Edit keywords」。各パターンがこのイベントに実在するバトルにちょうど1つずつ対応すること。引退済み battleId や表記ゆれの取りこぼしがないか、実フォームの文字列で確認。エディタは prep のイベントタブにある(admin ではない)。Each keyword pattern maps to exactly one REAL battle of this event — check against actual form strings incl. spelling variants. The editor lives on prep's Event tab, not admin.
◆T-2 ファイアドリル(毎回必須)T-2 fire drill (mandatory, every event)
2026-07-15 から全イベントで必須(本番をテストの場にしない)。流れ全体とエンジニア側の確認は fire-drill スキルが持つ — ここにはデバイスを持った人がやる部分だけ。各項目の結果(○/×)を書いて残す。 Mandatory before every event since 2026-07-15. The full drill lives in the fire-drill skill; these are its on-device halves. Write down pass / fail for each.
- ジャッジ画面を実機の iPhone 2台で — judge.html を実際の iPhone 2台で開き、採点カードが崩れずに表示され、ボタンが押せること(採点まで試すならリハーサル中に)。2026年に「iPhone 2台で表示が崩れた」との報告があり原因は未確認 — この確認がその計測器。Open judge.html on two real iPhones — cards render, buttons respond (score only inside a rehearsal). The 2026 "broken on two iPhones" report was never diagnosed; this is the instrument.
- 当日の端末がすべて最新版・本番と分離 — 当日使う全端末(受付・ステージ・ジャッジ・MC・DJ・ワークショップ受付・アクト受付)で使うページを開き直す。「新しいバージョンがあります / New version available」の帯が出たらタップして更新。そのうえで実機でリハーサルを1回開始→終了し、開始中は全端末に帯が出て、終了後に消えること。Reload every event device's page; tap the "new version" strip if it appears. Then start and end one rehearsal on the real devices: the strip shows on every device while it runs and disappears after.
- 支払いの中断→やり直し(PayPay を必ず) — アプリ内決済のあるイベントのみ。register.html で申込 → 支払いを開始 → 途中でキャンセル → やり直して完了。admin で、その申込が1件・支払い1回として記録されていること。⚠ 実際にお金が動く — テスト用の申込で行い、あとで返金・削除する。In-app-payment events only: start a payment, cancel mid-way, retry to completion, PayPay included — one entry, one charge. Real money: use a test entry and refund / delete it afterwards.
- 自己キャンセル→返金の往復 — アプリ内決済のあるイベントのみ。上のテスト申込を portal.html からキャンセル → 返金。admin でエントリーが外れ、返金が記録され、定員の枠が1つ戻ること。In-app-payment events only: self-cancel the test entry in the portal — entry out, refund recorded, one seat freed.
- 受付の当日エントリー — staff.html の「+ 当日エントリー / Walk-in entry」→「登録 / Register」→ 現金または PayPay で徴収 → 支払済になり、金額がバトルの料金どおりであること。このボタンは FSC / CC などのイベントのみ。SHIROFES には出ない。テスト分はあとで削除。Reception walk-in: register one, collect, confirm it reads paid at the right amount (Events-OS brands only; delete it afterwards).
- 一斉メールの確認 — prep → イベントタブ → 「参加者への事前連絡 / Pre-event message to participants」→「対象者を確認 / Preview recipients」の人数が実際の登録人数と合う →「自分にテスト送信 / Test send to me」で自分に届き、本文とリンクが正しい。「送信 / Send to all」は内容が決まってから1回だけ。Preview recipients at the real count, test-send to yourself and read it; press Send to all once, when final.
◆前日Day before (T-1)
- プリンタ実機テスト(3点印刷) — 実際に使うプリンタで刷る。①timetable.html → 「印刷 (PDF) / Print」(サーバ生成PDFを実プリンタで刷る。ブラウザ直刷りは横の「ブラウザ印刷 / Browser print」)(グリッドが用紙に収まるか・切れていないか)②prep → 参加者タブ → 「バトル別名簿を印刷 / Print per-battle rosters」(バトルごとに1枚・名前が読めるか)③mc-script.html → 「PDF / 印刷」 →「印刷範囲を選ぶ」で「このステージ全体(画面と同じ)」/「〈バトル名〉 だけ」/「このステージの全バトル(非表示も含む)」から選ぶ(控え用のきれいなPDFが出るか)。MC台本の範囲はどれも画面のステージ内 — ステージごとに刷る。Print all three on the real printer: timetable grid fit, per-battle rosters, MC script PDF (every scope is within the stage on screen — print per stage). Paper size + ink + fit are human-only.
- スタッフ承認 — admin → 設定 → 「スタッフ管理 / Staff Access」:当日のスタッフ全員が承認済みで、「申請中 / Pending requests」が残っていないこと。「承認 / Approve」ボタンが反応するかも実タップで確認(FSC 6/13 spin-up 0-2 の前例 — ボタンが死んでいた)。All expected staff approved, nothing left under 申請中 / Pending requests; tap an Approve for real.
- 「現在のイベント」が今回のイベントか — admin → 設定 → 「現在のイベント / Current Event」カードが今回のイベントを指していること。当日使う各ページを普段のリンク(URL に
?event= を付けない)で開き、画面のイベント名が今回のものであること。「⚠ 現在のイベントは終了しています」や「このイベントは終了しています — 次の …」の帯が出たら、その帯・カードから今回のイベントに切り替える。(別の月のイベントのMC台本を印刷した事故の再発防止)admin's Current Event card names this event, and every device opened from its usual link shows this event's name. If a "this event has finished — next …" strip appears, switch from it.
- バトル料金カードの3状態 — prep → Doors タブ → 「準備状況 / Readiness」カード(「再チェック / Re-check」で再実行。新規イベントなら イベントタブ → 「セットアップウィザード / Setup wizard」の Step 6「準備状況を確認 / Verify readiness」でも同じ行が出る) → バトル料金の行が3つの正常状態のどれかであること:「全バトル料金設定済」/「無料イベント (pricing.isFree)」/「外部チケット販売」。「N件 料金未設定 … 登録受付開始時に拒否されます」が出ていたら当日まで持ち越さない。The pricing row must read one of the three valid states — priced / free / externally-ticketed; an unpriced warning blocks registration opens.
- 定員カウンター確認 — 同じ「準備状況 / Readiness」カードの「定員カウンター」の行が緑(「N バトル全て定員設定済」)であること。黄色なら、その行のボタン(「カウンター再同期 / Re-seed counters →」または「ページを再読み込み」)で直す — admin に行く必要はない。「登録受付開始 / Open Registration」カードの注意書きに「定員カウンター未設定」が並んでいないことも見る。The 定員カウンター row on the Readiness card must be green; if amber, use the row's own button (Re-seed counters / Reload). The Open Registration card's hint must not list 定員カウンター未設定.
- フォールバックマニュアル自体を印刷 — 「フォールバックマニュアル」を印刷して受付+本部に1部ずつ。アプリが全滅した時に開けない物は、紙でしか役に立たない。Print the fallback manual — one at reception, one at HQ.
◆当日朝・リハーサルEvent morning + rehearsal
- SDブリーフィングのドライラン — フォールバックマニュアル「リハーサルの実施 ①」のとおり、stage.html の「ブリーフィング / Stage briefing」カードで:1. リハーサル開始(安全なコピー) → 2. チェックイン投入 → 抽選・ブラケットを本番どおり操作 → 3. リハーサル終了(コピー削除)。リハーサル中、MC台本やクルー画面の「いま」は時計ではなくSDの進行について動く — 時刻とずれて見えても正常。Run the SD-led stage briefing per the fallback manual's rehearsal section — start rehearsal (safe copy), simulate check-ins, drive raffle + bracket with the real controls, end by deleting the copy. During a drill "now" on the MC script and crew screens follows the SD's progress, not the clock — that is correct.
- ジャッジ機内モードテスト — 実際のジャッジ端末の judge.html で:機内モード → 採点 → ヘッダーに「⚠ 未送信 N件 — 接続回復後に自動送信」のチップ → 機内モード解除 → 自動送信されチップが消える → admin ダッシュボードの「未採点 / Pending Scores」が減っていること(スコアが本当に届いた証拠)。オフラインのまま再読み込みした場合はチップが「⚠ 未送信 N件 — タップで再送信」になる — 接続が戻ったらタップ。Score offline → 未送信 chip → reconnect → auto-syncs and clears → confirm in admin: the Pending Scores count moved. After a reload while offline the chip reads タップで再送信 — tap it once back online.
- SD→MC 確認ループ — stage.html からメッセージ送信 → mc.html 上部バナーに表示 → MC が「確認した」をタップ → stage.html の送信履歴に「✓ 確認済」+時刻が出ること。SD sends → MC taps 確認した → SD sees ✓ 確認済 + time in the sent list.
- マルチページ伝播スイープ — admin ダッシュボードを横に開いたまま、リハーサルのすべての操作でカウントが動くこと:チェックインのたびに「チェックイン済 / Checked In」が増える、採点のたびに「未採点 / Pending Scores」が減る、SD がバトルを開始すると「進行中 / Active」が変わる。動かないカウントは伝播が切れているページ — ショーの前に見つける。With the admin dashboard open beside, every rehearsal action must move a count. A count that doesn't move = a broken listener — find it before the show.
- 現金ピルを1件通す(¥確認) — staff.html で:名前検索 → アンバーの「未払い」ピル → 「現金 / Cash」 → チェックイン → 番号が振られる。そのあと admin → 入金タブ → 「現地支払 / paid-cash」と、その下の「チャネル内訳」の「現金」がそれぞれ +1、¥金額が正しいこと。支払いピルはアプリ内決済のあるイベント(eventConfig.checkin.showPaymentStatus が有効 — FSC / CC / ROS など)だけに出る。SHIROFES・外部チケット・無料イベントではピル自体が出ないので、この項目は該当なしとして✓。One cash pill end-to-end: search → 未払い pill → 現金 → check-in → number assigns; then admin's 入金 tab shows +1 on 現地支払 / paid-cash and on 現金 under チャネル内訳, with the right ¥.
- リハーサル終了 → 本番復帰の確認 — stage.html の「リハーサル終了(コピー削除)」(または admin → 設定 → 「リハーサルモード」カード → 「■ リハーサル終了(コピー削除)/ End rehearsal」)→ コピーが削除され全画面が本番に戻る。リハーサルはコピー上で行われ本番は一度も変更されないので、番号・採点・現金はすべて元のまま(サンドボックスのバッジが消えていることを確認)。本番は不変:参加者・バトル設定・キャスト・決済など、本番データには一切影響しません。「リハーサル巻き戻し」は v136.610 で廃止され、もうありません — 巻き戻す対象がないため。End rehearsal (delete copy) → the copy is deleted and every screen returns to live. The rehearsal ran on the copy and the real event was never changed, so numbers / scores / cash are exactly as before (confirm the sandbox badge is gone). The old rehearsal rewind was retired in v136.610 — there is nothing to rewind.
- 帯が1本も出ていないことを全端末で目視 — 受付(staff.html)・ステージ・ジャッジ・MC・ワークショップ受付(staff-workshops.html)・アクト受付(staff-acts.html — ショーケースの受付)。本番当日は「青い帯」を探さないでください: 当日にリハーサルが動いていると帯は最初から赤(画面いちばん上に貼り付く警告帯/「⚠ 本番当日です — リハーサル(コピー)が有効のままです。開場前に必ず「リハーサル終了」を押してください。」)。日にちに関係なく、8時間以上動きっぱなしのリハーサルも赤になる。色にかかわらず帯が出ていたら、まず admin か stage で「リハーサル終了(コピー削除)」。それでも残る端末だけ再読み込みする。「このイベントは終了しています — 次の …」の帯が出る端末は、前日の「現在のイベント」の項目に戻る。Confirm NO strip on EVERY device. On an event day a running rehearsal is RED from the start, not blue (so is any drill left running 8 h+) — end it from admin or stage first, and reload only the devices that still show it. A "this event has finished — next …" strip means the current event was never switched: see the T-1 item.
このページは静的(Firebase 不使用)。深い週次レジャーはリポジトリの manuals/manual-checks/MANUAL_CHECKS_RUNBOOK.md(セクションA/B)。T-2 ファイアドリルの全手順は .claude/skills/shirofes-fire-drill/SKILL.md。アプリ障害時の運用は「フォールバックマニュアル」へ。 Static page — the deeper weekly ledger is MANUAL_CHECKS_RUNBOOK.md; the full T-2 fire drill is the fire-drill skill; for outage operations see the fallback manual.