← FUNKY STADIUM ポータルへ戻る / Back to portal

フォールバックマニュアルTHE FALLBACK MANUAL — when the app breaks, the show goes on

アプリ(SHIROFES OS / Events OS)が使えなくなっても祭を止めないための紙運用マニュアル。印刷して受付テーブルと本部に常備してください。 Paper-first operations for when the app is unreachable. Print this and keep a copy at reception and HQ. (Pair: edit together with manuals/FALLBACK_MANUAL.md in the repo.)

鉄則Golden rules

  1. アプリで進行を止めない。ショーは必ず続行。記録はすべて後から直せる。Never block the show on the app. Every record can be fixed afterwards.
  2. staff.html が使えない時の現金は紙の台帳。「名前・金額・時刻」を必ず書く。復旧後に staff.html の支払いピルで1件ずつ照合。Cash when staff.html is unreachable goes on a paper ledger — name + amount + time. Reconcile after via the staff.html payment pills.
  3. 出場番号は後から付け直せる。番号が出ない・null でも紙のリストで進行してよい(バックフィル可)。Entry numbers can be backfilled — run from the paper list.
  4. スコアは後から入れられる。紙の採点用紙に記入し、judge.html 復旧後にジャッジが再入力(紙を見ながら)。予選は SD が stage.html の「予選通過者の入力」で通過者を直接入力可(スコア不要)。Scores can be entered later — judges re-enter from the paper sheets once judge.html recovers; for prelims the SD can enter qualifiers directly via stage.html (no scores needed).

前日チェックリスト — 印刷するものDay-before checklist — what to print

前日(準備)Day before — preparation

壊れたら / If X breaksやること / Do Y
受付が開けない(定員カウンター未設定などの前提条件エラー)Open Registration blocked (counters missing)admin → Settings → 「イベントセットアップ再実行」(ボタン: 再実行 / Reprovision)。直らなければ prep の Doors カードの不足項目を1つずつ潰す。「シートミラー未設定」は v136.616 で廃止済み — 出ても無視して構わない。Rerun event setup via the admin Settings card (再実行 / Reprovision button); then clear each missing precondition on the prep Doors card. The old sheet-mirror precondition was retired in v136.616 — ignore it if you still see it.
デバイスのGoogleサインインが切れているA cast/ops device lost its Google sign-in前日のうちに mc-script / judge / mc の各デバイスでサインインを済ませる。当日のサインイン中断が一番痛い。Pre-sign every device the day before — day-of sign-in interrupts the show.
デバイス紛失・故障Device lost / broken予備iPadでサインインし直す。kiosk端末を紛失した場合は admin → Settings で QRシークレットをローテーション。ただし7日間は旧QRも有効(二重キー重複期間)— 紛失端末対策としては会場での目視照合を併用。Re-sign a spare iPad; rotate the QR secret in admin Settings if a kiosk device is lost — old QRs stay valid for 7 days (dual-key overlap), so pair with visual ID checks at the venue.
印刷が間に合っていないPrinting not done上の前日チェックリストを順に。最低限:XLSXアーカイブ+採点用紙+このマニュアル。Run the checklist; minimum = XLSX archive + scoresheets + this manual.

受付Reception

壊れたら / If X breaksやること / Do Y
staff.html が開かない・検索できないstaff.html unreachable印刷済みXLSXの受付リストにチェックで受付続行。現金は紙台帳(名前・金額・時刻)。復旧後に staff.html で1件ずつチェックイン+支払いピルで照合。Check in on the printed list; cash on the paper ledger; reconcile after via staff.html.
QRスキャナ(kiosk)が動かないKiosk QR scanner downstaff.html の名前検索で手動チェックイン。QRは必須ではない。Manual check-in by name search — QR is optional.
カード決済(Stripe)エラーStripe card payments fail当日支払い(現金)に切り替えて受付。現金受領は staff.html の支払いピル、落ちていれば紙台帳。事後に admin の入金タブで照合。Switch to pay-at-door cash; reconcile in admin Payments after.
確認メールが届いていない参加者Dancer's confirmation email missingメールはチェックインに不要。participants に居れば普通にチェックイン。必要なら admin → 参加者 → 「リンク再発行 / Resend」。Email is not required for check-in; reissue the portal link via the admin リンク再発行 / Resend button if needed.
Wi-Fi が死んだ・激重Wi-Fi lost / degraded受付iPadをLTEテザリングへ。アプリ画面はキャッシュで動き続ける — 1操作ずつ「反映されたか」を確認しながら進める。受付タブは停電・回線断中に再読み込みしない(メモリキャッシュのみ — リロードで白画面。開いたままなら動き続ける)。LTE-tether the reception iPads; verify each action committed before the next. Never reload the reception tab mid-outage — the cache is memory-only, a reload gives a blank page; a tab left open keeps working.
Firebase 全面停止(全ページがオフライン表示)Full Firebase outage紙運用に全面切替:印刷リストにチェック+現金台帳。停止開始時刻と担当者を紙にメモ。復旧後の入力はすべて「停電バックフィル」と注記。Go fully paper; note outage start time + operator; tag all backfilled entries.

予選・ジャッジPrelims + judging

壊れたら / If X breaksやること / Do Y
judge.html が動かないjudge.html down白紙の採点用紙に記入して予選続行。judge.html 復旧後にジャッジが再入力(紙を見ながら)。予選は SD が stage.html の「予選通過者の入力」で通過者を直接入力可(スコア不要)。Paper scoresheets; judges re-enter via judge.html after recovery; for prelims the SD can enter qualifiers directly on stage.html (no scores needed).
出場番号が表示されない・nullEntry numbers null / missing止まらない。紙のリスト順で呼び出して進行。番号は後からバックフィルできる。Don't stop — call from the paper list; numbers backfill later.
集計(Top N)が出ないScore tally won't compute紙の採点用紙を手集計し、SD が Top N を確定。ブラケットは手動シードへ(次の表)。Hand-tally; SD locks Top N; seed the bracket manually.

トーナメント(ブラケット・SD)Bracket + stage director

壊れたら / If X breaksやること / Do Y
ブラケット自動生成が失敗Bracket auto-build failsブラケット・シード配置の可視化 / Bracket Seeding Visualizer」で人数Nごとのシード配置を確認し、印刷済み空テンプレートに手書きで組む。余裕があれば admin → ブラケットタブ → 上書きモードで手動入力。Use the bracket-formations reference + a printed blank template; hand-seed; optionally mirror into admin override mode.
stage.html の勝者タップが反映されないSD winner-taps not committing紙ブラケットで進行を継続(勝者に丸)。復旧後に admin で結果を後追い入力。Run the paper bracket; backfill results in admin after.
export.html のPNGが書き出せないBracket PNG export fails印刷済み空テンプレートに手書き → スマホで撮影してSNS共有。Hand-write a printed template; photograph it for social.

MC・進行MC + show flow

壊れたら / If X breaksやること / Do Y
mc-script.html が落ちたTeleprompter down印刷済みMC台本に切替。進行順は印刷済み進行表グリッドで確認。Printed MC script + printed ROS grid.
ステージタイマーが動かないStage timer downスマホのストップウォッチ+MCの口頭カウント。Phone stopwatch + MC verbal count.
ディレクター→MC連絡が届かないDirector→MC messages not arrivingランナー(人力)か LINE/Slack に切替。手信号を事前に2つ決めておく(延長・巻き)。Runner or LINE/Slack; pre-agree two hand signals (stretch / hurry).
ステージ停電Stage power outageMC が中断をアナウンス。中断したラウンドは最初からやり直し(スコア持ち越し禁止)。復旧後に SD がタイマーをリセット。MC announces the pause; interrupted rounds restart from scratch — never carry scores over.
運営担当者が不在になったOperator unavailable mid-eventadmin → Settings → シフト引き継ぎで次の担当へマジックリンクを発行。admin に誰も入れない場合は紙台帳+受付シートで続行し、事後照合。Shift-handoff card in admin Settings; if no admin reachable, run on paper + reconcile after.

復旧(事後処理)Recovery — after the outage

やること / Task方法 / How
紙チェックインの反映Backfill paper check-insadmin のウォークインモーダルで1件ずつ入力。モーダル登録後、参加者行の MEMO 欄に「停電バックフィル / outage-backfill」と注記(別操作)。Admin walk-in modal, one by one; after each, add an outage-backfill note in the participant row's MEMO column (separate step).
現金照合Cash reconciliation紙台帳(名前・金額・時刻)と staff.html の支払いピルを突き合わせ、未反映分をピルで確定。Match the paper ledger against the staff.html payment pills.
スコアの後追い入力Score backfilljudge.html 復旧後にジャッジが再入力(紙を見ながら)。予選は SD が stage.html の「予選通過者の入力」で通過者を直接入力可(スコア不要)。Judges re-enter from the paper sheets via judge.html; for prelims the SD can enter qualifiers directly on stage.html (no scores needed).
出場番号のバックフィルEntry-number backfilladmin の復旧ツール(番号バックフィル)で再付番。admin.html を ?debug=1 付きで開くとツールが表示される(通常時は非表示)。Re-number via the admin recovery tools — open admin.html with ?debug=1 to reveal the tool (hidden normally).
ポストモーテムPost-mortem48時間以内に記録(何が・いつ・どう運用したか)。テンプレートはリポジトリの archive/postmortems/ にある。Capture within 48 hours; templates live in the repo's postmortems archive.

リハーサルの実施Running a rehearsal

リハーサルは本番イベントの安全なコピー上で動きます。開始すると全オペレーター画面(ジャッジ / MC / DJ / VJ)がコピーに切り替わり、本番データ・メール・シート・スタンプには一切触れません。終了でコピーを削除し本番に戻ります — 本番は一度も変更されないので「巻き戻し」は不要です。 A rehearsal runs on a SAFE COPY of the live event. Starting it switches every operator screen (judge / MC / DJ / VJ) to the copy; no real data / emails / sheet / stamps are touched. Ending it deletes the copy and returns to live — the real event was never changed, so there is nothing to rewind.

① SDによるステージ・ブリーフィング(stage.html)SD-led stage briefing — the「ブリーフィング / Stage briefing」card

手順 / Step内容 / What happens
1. ステージ・日を選び、バトルを選ぶPick stage + day, then the battlestage.html 上部の日チップでバトル一覧を絞り、ブリーフィング対象のバトルを選択。「ブリーフィング / Stage briefing」カードを開く。Day chips scope the battle picker; the stage comes from the picked battle. Open the Stage briefing card.
2. 「リハーサル開始(安全なコピー)」Start rehearsal (safe copy)イベント全体の安全なコピーを作成し、全オペレーター画面がコピーに切り替わる。本番データには一切触れない。Creates a safe copy of the WHOLE event; every operator screen switches to it. The real data is never touched.
3. 「チェックイン投入」Simulate check-insコピー上の登録者に本番と同じ経路で模擬チェックインを書き込む(本番には影響しない)。Events-OS は連番つき、SHIROFES は番号なし。Writes simulated check-ins onto the COPY's registrants through the production paths (the real event is untouched) — Events-OS numbered, SHIROFES unnumbered.
4. 抽選・ブラケットは本番どおりRaffle + bracket as normalスタート番号ルーレットの確認、ブラケット生成、勝者タップの自動進行 — 操作は本番と同一(すべてコピー上)。Start-number roulette confirm, bracket build, winner-tap auto-progression — same controls as the live show (all on the copy).
5. 「リハーサル終了(コピー削除)」End rehearsal (delete copy)確認するとコピーが削除され、全画面が本番に戻る。本番は一度も変更されていないので、巻き戻す対象は何もない。Confirm deletes the copy and every screen returns to live. The real event was never changed, so there is nothing to undo.

⚠ 本番開場の前に必ず「リハーサル終了(コピー削除)」を押すこと。押さないと本番がコピー上で進行します。 You MUST end the rehearsal (delete copy) before live doors — otherwise the live show keeps running on the copy.

② イベント全体リハーサル(admin → 設定 → リハーサルモード)Event-wide rehearsal — admin Settings, Rehearsal Mode card

操作 / Control内容 / What happens
▶ リハーサル開始Start rehearsalstage.html のブリーフィングと同じサンドボックス。イベント全体のコピーを作り、全オペレーター画面(VJ含む)をコピーに切り替える。本番データ・メール・シート・スタンプには一切触れない。The same sandbox as the stage briefing. Clones the whole event and switches every operator screen (incl. VJ) to the copy; no real data / emails / sheet / stamps are touched.
■ リハーサル終了(コピー削除)End rehearsal (delete copy)コピーを削除し全画面が本番に戻る。本番は変更されていないので後片付け・巻き戻しは不要。Deletes the copy; every screen returns to live. The real event was never changed, so there is no cleanup or rewind.
注意 / WARNING: 設定タブの「リハーサルデータ削除」は参加者ドキュメントごと削除します(復元不可)。リハーサルには使わないこと — リハーサルは上の「サンドボックス・リハーサル」を使えばコピー上で行われ、本番データに触れないので後片付けは不要です。「リハーサルデータ削除」はデモデータの再取込前など、ランタイムを本当に空にしたいときだけ使います。「リハーサルデータ削除」(Delete rehearsal/runtime data, in Settings) DELETES participant docs and cannot be undone. Do NOT use it for rehearsals — use Sandbox Rehearsal (above), which runs on a copy and needs no cleanup. Reserve the delete for genuinely emptying the runtime (e.g. before a demo re-import).

③ リハーサル中のMC(mc-script.html)MC during rehearsal — the teleprompter

見えるもの / What the MC sees内容 / Notes
アンバーの「リハーサル中 / REHEARSAL」帯Amber rehearsal stripテレプロンプター最上部に表示。そのステージがリハーサル中のあいだだけ出る。Top of the teleprompter, shown while this stage is rehearsing.
台本のタップ編集+メモTap-to-edit script + memoリハーサル中だけ、台本セクションをタップして直接編集+メモ入力ができる。リハーサル外でタップすると「リハーサル中のみ編集できます — SDに開始を依頼してください」、本番確定ロック中は「解除は進行表(rundown)の編集ヘッダーから」と解除方法が表示される。Editable during the stage's rehearsal only; outside it the tap names the unlock (ask the SD to start rehearsal / unlock 本番確定 from the rundown edit header).

④ リハーサルで確認することWhat rehearsal proves

このページは静的(Firebase 不使用)。本番アプリが全滅していてもこのページと「ブラケット・シード配置の可視化」は home.funkystadium.app から開けます — それすら落ちた時のために印刷を。 This page is static (no Firebase) and stays up even when the runtime app is down — and you printed it anyway, right?