075 機能・設計・体験を分けた検証
2026-10-03 UTC

機能
model.pyは不変State、描画から独立。二刻目に元盤面を読み全材料を同時に変換。
22件の自動テストが通過。8反応、斜め無効、両触媒、共有、同時変化、非連鎖、ID保存、持ち瓶拒否、予告一致、左右反転、undo、研究記録保持を検査。
さらにアプリ更新レベルで、同時押し拒否フレームで自動時刻が進まない、Pを押したまま再生が進まない、記録上限で未記録の操作が実行されないことを回帰検査。
入力のreleaseは表紙、説明、結果でも同期。試運転開始までundo可能。
一試行256判断、イベント4096件、手動保存12件の有限上限。正規化JSON SHA-256。
テストは実画面ログを書かず、portability検査は前後のmedia全ハッシュ不変を確認。

有限の設計検査
A/B/C各版で異なるID付き配置120/360/720を列挙。
縦横版の基本達成36/30/212、左右版24/16/100。
Cの完成品組合せは縦横10、左右8。ID違いや左右反転を別戦略の多さと混同しません。
三つとも初期配置のままでは依頼未達。表を読んで作る方法は安全で正当です。
比較は触媒範囲だけ縦横→左右。他の条件固定。両版で同一配置の基本達成を確認。
policy_results.jsonに状況、例、数値、最終状態SHA-256を保存。
面白さの仮説は配置と変化の発見。リスクや損失を全作共通の必須条件にしません。

実Pyxel映像
media/automatic_20261003T000102_008685 が監査修正後の自動実描画。
fridge_automatic_silent.mp4 は749フレーム、30fps、24.966667秒、音声ストリームなし。
元GIFフレームを一回ずつ順序を保って渡し、間引きや複製をしません。
PNGで日本語、予告、初回の別結果、触媒移動、依頼達成、図鑑を確認。
旧自動/ネイティブセッションは元ソースと一緒に保持し、修正後の撮影と混ぜません。
derived_replay_validation.jsonは元イベントを変更せず現モデルで再検算した別証拠。

環境・限界
Pyxel+標準ライブラリで単独起動。WindowsのBATはASCII、パス引用済み。
別cwd、日本語/空白パス、cp932出力環境、明示UTF-8、文字カバー、X原稿各140字以内を検査。
これはWindows実機検証ではありません。Windows/macOS未検証。音は使用せず実聴評価なし。
エージェントによるLinuxネイティブ操作はNATIVE_OBSERVATIONS.txtへ別記。
実際の人の試遊感想は未収集。実装・機能検証済み／面白さは人による確認待ち。

最終ソースのネイティブ確認済み: native_20261003T001018_722884。
元ソースSHAは現在のapp/controller/modelと完全一致。比較説明・保持P・停止release・達成・記録・undo・再開を観察。
独立検算は2,400配置、14,400持ち/戻し保存検査、38,412描画検査が通過。人の面白さの評価ではありません。

撮影項目の追加検査: 優先GIFは749項目すべて30msで均一、可変の保持なし。uniform_source_validation.jsonに検査結果を保存。
実行依存の表記をrequirements/runtimeと同じPyxel2.9.9へ訂正。ゲーム動作の変更はありません。
