026 音のないピアノ / QA / 2026-10-02 UTC

結論
実装・機能検証済み。人の初見理解・面白さ・再挑戦意欲は未検証。
新作3状況の機能検証であり、100本全体の体験合格ではありません。

純粋モデル
Pyxel未importの不変Level/State/Observationとtransitionを使用。
灯り、実物番号、観測メモ、物理undo履歴、押下ログ、開封済を別に保持。
3面・全10実物図・全8灯状態からのBFSで目標可達を確認。
観測済の鍵の全部分集合×8灯×実物図=896状態を検査。
押下3,200辺を検査（終端拒否を含む。非終端の実行辺は2,800）。
実物を必ず含む候補、観測で単調に減る候補、XOR、一鍵二度の復帰、Z/Rの知識保持、
無効入力の状態不変、成功後の拒否とundo、別手へ戻る物理履歴、1,024回実験後の成功を検査。
有限探索ではログ長と物理undoスタックを射影。過去の全履歴を無限列挙したとの主張はしない。
全合法な観測部分集合と灯りの組合せを含む上位集合で候補・押下則を検査。
長いログとundoの履歴挙動は別試験。
Cは全実物図でA→Bが101、2候補を残して成功。図の完全特定は条件にしない。

入力/UI
unittest 20件成功。test_results.txtに結果。
モック: 開始/次面/停止復帰/リセット/undo/面選択で同時入力と隣接フレームの持越しを検査。
無入力の1フレームでゲート解除し、直後の意図的押下は受け付ける。待ち時間ペナルティなし。
SPACE長押しは1押下だけ。左右同時は無効。選択と押下が同フレームなら選択を優先。
面選択、初期、観測後、成功、停止、undo、reset、長い履歴、基準表示、自動字幕、比較字幕の
日本語グリフ存在と全テキスト呼出の矩形をチェック。最大履歴表示例1,002行。

Linux実画面での技術確認
2026-10-02 19:22–19:24 UTC、エージェントがCUAから実キー操作。
AはA→Z→B、BはA→D、CはA→Bで成功を確認。native_* PNGとgui_events.json。
開始SPACE900msで0押下。ゲームSPACE900msで1押下。
N+SPACE600msでBへ移り0押下。P+SPACEの停止/復帰で余分な実験なし。
R+SPACE700msで000、観測2行と開封番号保持。M+SPACE700msで面選択に留まる。
新しいSPACEでメモ/開封/累積押下を初期化。Escape後に026ウィンドウ不在を確認。
ネイティブでは同時キーの組合せ、明示的な隣接フレームのstaggerはモックで検査。
ネイティブ確認後、表示ラベルだけを「確かな配線」から「観測で確定」へ変更。
理由: 成功時の開封情報と、押下の観測から導ける情報を区別するため。
モデル・入力処理は同一。media/native_to_final_label.diffに差分。
最終ラベルは改めて自動テストと実Pyxelの自動映像で確認。

実映像
実Pyxel描画のheadless自動操作。GUI入力映像とは区別。
719枚の元GIFフレームを順番どおり各1回RGBとしてffmpegへ渡した。
最終MP4は719フレーム / 30fps / 23.966667秒 / 音声ストリームなし。
元GIFの各フレームは30msへ丸められている。これを再生時間にせず、元の30Hzに戻している。
-rによる再サンプルやフレーム間引きはしない。timing_validation.jsonで検査。
成功ログはA/B/Cすべてあり、固定実物番号は2/3/3。
出力PNGで履歴、2候補成功、最終ラベル、比較の画面端を目視した。

一変更比較
同じB・図3・A押下後に、矛盾行の薄色化だけを比較。
o/x、枠、候補数、確定配線、モデルは不変。自動絞り込みを除いた比較ではない。
画像は両方とも実Pyxel。測定していない理解度や楽しさの改善は主張しない。

持ち運び
assets/glyphs.jsonなどテキスト入出力はencoding='utf-8'を指定。
cp932を既定に模擬した読み込み、日本語/空白フォルダ、/tmpからの起動回帰成功。
Windows用BATはASCII・引用付きパス・失敗時pauseを検査。
Windows/macOSネイティブGUI実機は未確認。模擬cp932試験をWindows実機合格とは呼ばない。
Noto由来グリフとSIL OFLを同梱。ライセンスと全ソースを同梱。

限界
この作品は意図的に無音で、音の聞き分けを必要としない。
headless環境では音声デバイス初期化警告が出る。ゲームと画像出力は正常終了。
音声の実聴・音質確認はしていない。投稿はしていない。
NOTEとXは未投稿草稿。Xの3案は各140文字以内。
