004 最後の一匹：2026-10-02 確認記録

楽しさの仮説
尾の折り返しを見て手を変えた直後に魚が寄ることと、危険な魚の前で未確定点を守る判断が、次に違う操作を試す理由になる。技術成立と人の楽しさは別。人の感想は取得していない。

実装確認
16件のunittestが成功。全3魚種・2種の間隔、全3魚群・seed0/1/2で読む方策が成功。
切断と釣り上げの同時成立は切断優先。テストは巻き始めのたるみがないreeled=5で実際に両閾値を跨ぐ。
終枠の自動確定、確定の1枠消費、基本点保存、未確定点のみ喪失、終端の不変性、予兆の後半12フレームを確認。
全ソースのPath.read_text/write_textにUTF-8指定。cp932をデフォルトに模擬したPath.openで、日本語・空白付きテンポラリーパスの字形JSON往復を確認。Windows実機は未確認。

観察からの改訂（比較ごとに主要変更は1つ）
初期版の6方策だけを見て合格にはしなかった。広い周期探索で、魚を見ずに同じ周期の押離しを繰り返して全魚種を釣れる解が多数見つかった。
1. フェイントを緩めたときの距離増18→30。見抜く方策の結果を保ち、全予兆を同じに扱う方策の機会損失を大きくした。これだけでは固定周期の解を除去できなかった。
2. 巡航時間を全魚36フレームから小魚36／曲がり尾44／大物53へ。24フレームの予兆は維持。これだけでも固定周期の解が残った。
3. 巻き始め5フレームを糸のたるみ取りにした。細かな連打に寄せる力が出ない。巻き始めを画面にも表示。この変更だけでも固定周期の解が残った。
4. 緩めている間の魚の移動0.13→0.45／フレーム。長く緩め続けることの自然な距離コストを強くし、張力だけを安全値に保つ定常的な押離しで寄せ切れないようにした。
最後の改訂はreview/model_pickup.py対model.pyの一項目比較。曲がり尾を読む同一方策の結果は185f→252fでともに釣り上げ。大物は279f→422fでともに成功。代償として大物が長くなったため、人の試遊で作業感を確認する必要がある。
各変更前モデルはreview/model_*.py、正確な全状態はiterations.jsonに保存。tools/experiments.pyで再生成できる。run_before.pyで元数値を現行UIから遊べる。
これは面白さ改善の実証ではなく、単調な自動解への対処。距離増の体感が不公平なら戻す／短縮する。

方策監査
常時巻き／常時緩め／1f交互／20f巻き10f離す／予兆ごと緩める／尾を読むを比較。
周期2〜120、各周期の全ての非自明な長押し比率、計7,140候補を各魚へ最大4,000フレーム実行。最終版で全魚種を釣れた固定周期は0。初期位相を網羅した証明、全方策の不在証明ではない。
固定周期で釣れる個別魚はある。読む方策を唯一の入力列に制限してはいない。

確定の比較
A（素直な流れ）：読む／予兆ごと緩めるとも全続行25点。2・4枠の確定は9点。
B（尾を読む）：読むなら全続行27点、3枠を確定に使うと14点。
同じBで予兆ごと緩める方策なら全続行11点・未確定3点を失う。3枠を確定にすると14点。
C（大物の前）：読むなら全続行33点。予兆ごと緩める方策は全続行7点、2・4枠確定で9点。
常に確定は0匹0点。最適な操作で全魚を釣れるプレイヤーにとって全続行が最善なのは意図的な上限。銀行に不自然な追加報酬を置いて万能な確定操作を作っていない。

ネイティブUIの実操作
クラウドデスクトップのApplication Finderからplay.shを起動、実際のウィンドウを観察。
Spaceでタイトルから魚間メニュー、押し直しで魚開始。Pで停止し説明を表示、Pで再開。
無入力で逃走し、距離100の理由が表示され次枠へ。Rightで確定を選びSpaceで1枠だけ進む。
Rで同じseed0・同じ魚群のタイトルに戻る。F12保存を確認。
media/manual_pause.png、manual_bank.png、manual_control_events.jsonに一部記録。
初回の瞬間的なbound App.pressKeyではEsc入力を確認できなかった。独立QAが現行ソースを新規起動し、ネイティブEscape200msで停止と再開をともに確認した。入力経路／保持時間による差で、Escの機能不良は確認されていない。独立QAはウィンドウの閉じるボタンによる終了も確認。
独立QAがSpace250msでタイトルからメニューへ、続くSpace2500msで60モデル更新後に1回だけ切断し、次のメニューが待機することを確認した。長押しが次の魚の決定に跨がない。連続ホールドを含む手動の釣り上げ成功操作は未実施。自動読取り方策と人の入力を混同しない。

映像・画像
capture.shをネイティブApplication Finderから起動。画面全体の「自動プレイ」表示を目視。
900更新フレームの実行、5匹・27点の結果。PyxelのGIF時間量子化後にffmpegで変換したMP4は26.94秒、960×720、H.264、音声なし。
画像は実行中のpyxel.screenshot、動画はpyxel.screencast。絵だけを再構成した動画ではない。
最終auto_870.pngで結果の点数内訳、5枠履歴、同じ／次／別seedの案内が画面内に収まることを確認。
音を使わない作品。ALSAに実デバイスがないため音声確認済みとは主張しない。

次の人の試遊で聞くこと
「何を見て離した？」「次はどの枠で確定する？」「大物の長さは緊張か作業か？」
任意の再挑戦を観察し、続けない選択も記録。楽しさ未確認のまま完成した楽しさとは呼ばない。
