068 小さな博物館の夜 / QA
技術: 16件のモデル/UIテスト。全32,400配置の不変条件と、両規則で共通目標を満たす配置を検査。
隣接対称、斜め禁止、基本保持、非連鎖、費用ちょうど、既知タグ重複なし、魅力/費用/番号同点規則。
四品制限、移動/交換/収蔵、開館中編集拒否、開館全体undo、予告と最初の実観覧の一致。
記録は明示ruleset/schema/設定/データ/意味入力/論理tick/全状態SHAを保持。別プロセス再現と改ざん拒否。
UIは開始、状況、比較、再開、pause、巡回終了の保持入力境界、同時SPACE+Zを検査。
pause中の入力releaseを常に更新し、既保持キーは復帰時に意思決定へ漏れない。
描画はモデルを変えず、同梱字形を全画面で検査。テスト前後でmediaとrecordsのSHA不変。

実描画は800x620/30fps。自動操作の元GIFから全フレームを一度ずつ30fpsへ並べMP4化。
実際のフレーム数、時間、無音はmedia/timing_validation.json。音声デバイス警告は非音声作品に影響しない。
ネイティブCUA操作: qa/NATIVE_QA.txtとqa/native_validation.jsonへ詳細を保存。原本は46イベント/16PNG。Bを2/3達成まで完走。
開始/長押し/配置/開館拒否/undo/停止/復帰/結果/比較/再開/状況/表紙/終了を実操作。GUIウィンドウ閉鎖を確認。

設計: EXPERIMENT.txtに四方策と一規則比較。Bの全員達成不可を目標変更で隠さない。
基本目標は2人であり、両版に解がある。客を長く歩かせるだけを正解としない。
人の理解/面白さ、Windows/macOS実機、音声実聴: 未確認。
Library公開やSNS投稿: 未実施。日本語NOTEと140字以下のX三案を同梱。

証拠の範囲: pause内訳画面の追加前に作った初回の自動描画は開発中出力として上書きし、原本を保存していません。
納品する自動ログ/画像/動画は修正後のソースで新しく実行した記録です。過去の保存証拠と呼びません。
その実行時ソースはqa/automatic_sourceへ保存。ネイティブ確認は別セッションと別ファイルです。

最終媒体: 元GIFは749項目すべて30ms。全749フレームを30fpsへ変換し、MP4は24.966667秒。音声ストリームなし、全デコード成功。
停止説明を「再開後、Enterで配置へ」と明確化。変更直前の実行媒体/ソースはqa/prior_pause_wordingへ保存し、最終ソースで新規に実行。
最終ソースで16テストを再実行。media/recordsの全SHA不変。日本語/空白パス・別cwd・既定cp932を模した実Pyxel表紙描画も合格。
qa/portability_validation.json参照。最終全ファイルはFREEZE_SHA256.jsonで固定。
