Skip to content

issue 別: 何をどうマージしたか

各 PR の規模・判定ラウンド数・最終レビューの重大度(高/中/低)・主な指摘と決着を一覧にしました。詳細は各 PR の 🧪 / 📋 / 🧭 / 🔧 コメントに残っています。

PRissueM変更量ラウンド最終レビュー 高/中/低状態
#14#1M1+1287/-21 (29 files)30/3/2✅ merged 09e1bc0
#16#3M1+355/-11 (16 files)30/2/2✅ merged 3d7d40c
#17#2M1+1904/-62 (31 files)30/2/3✅ merged c618052
#18#4M2+768/-38 (33 files)0✅ merged 1c6fcac
#19#5M2+1137/-18 (41 files)0✅ merged e888d36
#20#6M2+1345/-147 (59 files)35/7/6✅ merged 10e5b89
#21#7M3+1651/-35 (35 files)31/2/2✅ merged 83cebf4
#22#9M4+1058/-135 (62 files)1✅ merged d545c90
#24#8M3+3080/-38 (96 files)42/6/7✅ merged 7fef240
#26#23M4+10873/-165 (73 files)3✅ merged adca86b
#31#10M4+209/-65 (68 files)1✅ merged d04d7e2
#32#29M5+910/-117 (9 files)2✅ merged 9424312
#33#30M5+59/-20 (25 files)1✅ merged 9985918
#34#25M5+305/-26 (31 files)2✅ merged dd9ad5b
#35#27M5+93/-5 (76 files)2✅ merged 8f9922d
#36#15M5+476/-123 (80 files)42/2/5✅ merged c06f168
#39#37M5+261/-43 (31 files)1✅ merged be807d7
#40#38M5+338/-28 (83 files)50/0/0✅ merged 5e98429

読み方

「ラウンド」= 🧭 判定コメントの数。「最終レビュー」= 最後の 📋 コメントに書かれた残指摘数(マージ時点では高 0 が原則。#17/#24/#36 は親が追加ラウンドで決着)。

#1 — feat: PS1 基盤 — ビルド/320x240 描画/GTE 3D/入力/ホストテスト/エミュレータキャプチャ (

M1 / PR #14 / +1287/-21 / ラウンド 3 / 🔧 修正コメント 2 / 🧪 E2E 3 / 📋 レビュー 3

  • マージした内容: 320x240 ダブルバッファ、GTE 3D(fpscam/lookat 移植)、TIM ロード、パッド、PCSX-Redux CLI + Lua DSL、ホストテスト骨格
  • 主な指摘と決着: ダブルバッファ未機能(表示面へ描画)→ 修正 / 近クリップ・飽和フラグ検査は #15 へ
  • レビューで挙がった高/中(抜粋):
    • [高] [Codex] gfx_load_tim の成否判定が原理的に成立しない
    • [高] [Claude] 単面ポリゴンしか描けず、設計正典が要求する「両面描画」ができない — デモの回転板が回転周期の約半分で消えている
    • [中] [Codex] gte_avsz4() が 4 頂点目の gte_rtps() より前にある
    • [中] [Claude] gfx_end()PutDrawEnvDrawOTagEnv を同一 DRAWENV に連続適用し
    • [中] [Codex] 近クリップ・GTE 飽和・画面外クリップを一切処理していない
    • [中] [Codex] run_emu.shpkill -f MacOS/PCSX-Redux が他セッションのエミュレータも落とす
#1 evidence

#2 — feat: アセットパイプライン — PNG→TIM 減色、紙人形リグ/アニメ/カメラ JSON→C、VRAM 配置 (

M1 / PR #17 / +1904/-62 / ラウンド 3 / 🔧 修正コメント 3 / 🧪 E2E 4 / 📋 レビュー 3

  • マージした内容: PNG→TIM(4/8bpp、透過はリサイズ前マスク)、リグ/アニメ/カメラ JSON→C、VRAM 配置表と検査、placeholder 生成
  • 主な指摘と決着: glow 透過が LANCZOS 後に破綻 → 親の設計判断で『加算合成素材は色キー不要』に決着
  • レビューで挙がった高/中(抜粋):
    • [高] [Claude] test_grid.tim が VRAM 正典の外にあり、ai_atlas / coach_atlas と実際
    • [高] [Claude] 出力 TIM の実サイズが vram_layout.jsonsize と一致するか検証しておらず、素材差し替
    • [高] [Codex + Claude] make test が古い生成データをリンクしたホストバイナリを実行する
    • [中] [Codex] speaker / glow の宣言 tpage と gfx_load_tim() が返す tpage が食い違
    • [中] [Claude] vram_layout.py が CLUT とテクセル領域の重なりを一切検査せず、staging テクスチャは重な
    • [中] [Claude] docs/vram_layout.md は追跡ファイルなのに CMake の OUTPUT に入っており、`cma
#2 evidence

#3 — feat: サウンド統合 — NES 版 BGM ドライバ/SPU 変換の組込と PS 版 SFX (ブーイング/拍手/

M1 / PR #16 / +355/-11 / ラウンド 3 / 🔧 修正コメント 2 / 🧪 E2E 4 / 📋 レビュー 3

  • マージした内容: NES 版 BGM ドライバ + SPU 16 ボイスを組込、SFX 8 種(ブーイング/拍手/歓声/UI/判定)をボイス 16-23 に追加
  • 主な指摘と決着: E2E が実 SPU 状態を検証していない → key-on ログ検査を追加
  • レビューで挙がった高/中(抜粋):
    • [中] [Claude] make emu-shots でこのシナリオを回すと既存ゴールデン PNG 6 枚が消える
    • [中] [Codex] issue #3 記載のテスト範囲(各曲 3 秒 / 同時 8 SFX)を満たしていない
    • [中] [Codex] E2E が SPU の実再生を検証していない
    • [中] [Codex + Claude] 本番の SPU ドライバに毎フレーム動く printf が残り、かつ issue #3 の明示指示と衝
    • [中] [Codex + Claude] E2E が実 SPU 状態を検証しておらず、sfx_play の受入条件を担保できていない
    • [中] [Codex + Claude] run_emu.sh が全シナリオで SFX 専用デバッグシンボルを必須化している

#4 — feat(render): 紙人形キャラクター描画とアニメーション (M2)

M2 / PR #18 / +768/-38 / ラウンド 0 / 🔧 修正コメント 0 / 🧪 E2E 0 / 📋 レビュー 1

  • マージした内容: 12 パーツ紙人形の階層描画(両面 POLY_FT4)、クリップ補間、6 振り + idle/walk/miss/gameover/cheer、root_yaw による Y スピン
  • 主な指摘と決着: クリップ駆動の Y スピン未実装(高)→ root_yaw 追加 / build_models のコミット漏れ → 修正
#4 evidence

#5 — feat(render): 3D ステージとカメラショットシステム (M2)

M2 / PR #19 / +1137/-18 / ラウンド 0 / 🔧 修正コメント 0 / 🧪 E2E 0 / 📋 レビュー 2

  • マージした内容: 床/LED ビジョン/スピーカー/トラス/加算光錐のステージ、9 ショットの拍同期カメラ、mood 4 段階、rating_tier 共通 enum
  • 主な指摘と決着: UV ページ内オフセット欠落(橙矩形)・加算 Z 順序・128f 自動切替の退行 → 3 巡で解消
  • レビューで挙がった高/中(抜粋):
    • [高] テクスチャページ内 UV と LED ラップが破綻
    • [高] 半透明加算の Z 順序を保証できない
    • [高] E2E が受入条件を検査していない
    • [中] PERFECT streak の 1 拍カットインが 4 拍近く保持される
    • [中] camera の初期化と SetGeomScreen のグローバル状態が漏れる
    • [中] 静的 speaker mesh が上面を欠き、床と重なる下面を生成
#5 evidence

#6 — feat: 観客システムとレーティング場面転換 (AWFUL/BAD/GOOD/COOL)

M2 / PR #20 / +1345/-147 / ラウンド 3 / 🔧 修正コメント 0 / 🧪 E2E 3 / 📋 レビュー 4

  • マージした内容: 観客ビルボード(6 ポーズ・退場/静止/バウンス/ジャンプ)、AWFUL〜COOL の場面転換、歪み/フラッシュ/紙吹雪/ワイプ、SFX 連動
  • 主な指摘と決着: BAD の『軽い歪み』が全画面ドロップアウト(設計乖離)→ 全 30 帯の水平歪みへ
  • レビューで挙がった高/中(抜粋):
    • [高] [Codex + Claude] base が進んでおり PR は現状マージ不能 — rating.h が `rating_tier_t
    • [高] [Codex] 同一レーティング内の観客値変更が観客数へ反映されない
    • [高] [Claude] fx.c が旧 gfx_sort() 契約前提 — rebase 後に半透明レイヤ順が壊れる
    • [高] [Claude] 紙吹雪が完全に不可視 — 受入条件「COOL で紙吹雪」未達
    • [高] [Claude] AWFUL のスキャンライン歪みがキャプチャで検証できていない — 受入条件未達
    • [中] [Codex + Claude] paperdoll 裏面に fx_wobble() が二重適用され表裏が分離する
#6 evidence

#7 — feat: リズムコア移植 (NES 版と同挙動) + HUD/ノーツレーン/判定表示 (M3)

M3 / PR #21 / +1651/-35 / ラウンド 3 / 🔧 修正コメント 0 / 🧪 E2E 3 / 📋 レビュー 4

  • マージした内容: NES 版判定エンジンをコールバック化して移植、レーン HUD/観客メーター/判定文字の 3D 追従、カメラ・レーティングとの結線
  • 主な指摘と決着: 遷移ワイプが HUD を 30f 覆う → 演奏中はワイプ抑止、アイコン tpage 明示
  • レビューで挙がった高/中(抜粋):
    • [高] [Claude] ゲームオーバー後も rhythm_update() が回り続け、毎フレーム MISS が発火する
    • [中] [Codex + Claude] PERFECT ストリークのカメラカットインが 1 拍で復帰しない
    • [中] [Codex + Claude] crowd_on_beat() の拍が譜面の BPM と同期していない
    • [中] [Codex] 一度 MISS すると FACE_MISS が曲終了・リトライ後まで残る
    • [中] [Codex + Claude] シア用 VRAM スクラッチ矩形が VRAM 正典に予約されていない
    • [中] [Codex] テストが上記の結線不具合と複数曲を捕捉できない
#7 evidence

#8 — ゲームフロー機械と本番画面(タイトル/会話/RESULT/GAMEOVER)を実装

M3 / PR #24 / +3080/-38 / ラウンド 4 / 🔧 修正コメント 4 / 🧪 E2E 3 / 📋 レビュー 4

  • マージした内容: フロー機械(title/prologue/dialog/tutorial/performance/result/ending/gameover)、スライド、かな描画、E2E 27 ショット
  • 主な指摘と決着: プロローグ最終ページの配列外参照、SPRT はテクスチャを拡大しない(RESULT が "STUV")、GAME OVER 退行の隠蔽 → Opus レビュー + Sonnet 修正で解消
  • レビューで挙がった高/中(抜粋):
    • [高] [Codex + Claude] 固定サイズ SPRT 命令に可変 W/H を設定している — 一枚絵・ロゴ・コーチ顔が描画されていない
    • [高] [Codex + Claude] FLOW_ENDINGsound_tick() が呼ばれず、エンディング BGM が 1 音
    • [中] [Codex + Claude] RESULT 画面でワールド・紙吹雪・キャラが描画されない(受入条件「S は紙吹雪 + cheer」未達)
    • [中] [Codex] 紙吹雪が GAME OVER 画面まで漏れている(シーン遷移時の演出リセット漏れ)
    • [中] [Codex + Claude] テストが受入条件を検証しておらず、壊れた画面でも PASS してしまう
    • [中] [Codex] スライドのフェードイン/アウトが未実装
#8 evidence

#9 — キャラクターアート生成と組込 — アイ/コーチの紙人形アトラス + 表情

M4 / PR #22 / +1058/-135 / ラウンド 1 / 🔧 修正コメント 0 / 🧪 E2E 4 / 📋 レビュー 5

  • マージした内容: higgsfield 立ち絵をパーツ切り出しした本番アトラス、表情 4 種、UV base と回転 bbox の等方縮小
  • 主な指摘と決着: E2E ゲートの弱体化(--allow-empty-character)→ 全フレーム個別色ゲートに復元
  • レビューで挙がった高/中(抜粋):
    • [高] [Codex + Claude] 白背景キーが衣装の白を透明化し、キャラに穴が開く
    • [中] [Codex + Claude] 過剰透明化を検出できないテスト / E2E チェック
    • [中] [Claude] 8bpp CLUT を 256 色使えるのに 48 色に絞っている
    • [高] [Claude] アイの A ポーズ斜め腕を無回転で切っているため、腕が「黒い翼」として固着する
    • [高] [Claude] コーチの表情矩形が口を切り落としており、受入条件「表情 4 種が切り替わる」を満たしていない
    • [中] [Claude] 胴矩形が上腕矩形と重なり、袖が torso クアッドに焼き込まれている
#9 evidence

#23 — feat(tools): PixelRefiner を png2tim 前処理へ組み込む

M4 / PR #26 / +10873/-165 / ラウンド 3 / 🔧 修正コメント 2 / 🧪 E2E 5 / 📋 レビュー 5

  • マージした内容: PixelRefiner(Oklab 量子化/Bayer ディザ/AA 除去)を png2tim 前処理へ統合、比較エビデンスで採用決定
  • 主な指摘と決着: (レビュー中 1)→ 解消
  • レビューで挙がった高/中(抜粋):
    • [中] [Claude] キャッシュキーが pixel_refine.mjs と Node バージョンを含まず、中-1 の CMake DEPE

#10 — 一枚絵/ロゴ/ステージ/UI アート生成と組込 — 第2ラウンド: ロゴ・テキスト帯・コーチ顔UV・crowdクリップ修

M4 / PR #31 / +209/-65 / ラウンド 1 / 🔧 修正コメント 0 / 🧪 E2E 1 / 📋 レビュー 1

  • マージした内容: ロゴ・観客・床・レーンアイコン(r1)/ ロゴ描画修正・テキスト帯・コーチ顔 UV・build_slides refiner 化(r2)
  • 主な指摘と決着: #24 未マージで r1/r2 に分割(実装エージェントの提案を親が承認)
#10 evidence

#29 — fix(camera,e2e): AI_CLOSE カットインの自己参照ループ修正と PCSX-Redux 間欠クラッシ

M5 / PR #32 / +910/-117 / ラウンド 2 / 🔧 修正コメント 0 / 🧪 E2E 2 / 📋 レビュー 2

  • マージした内容: camera.c の AI_CLOSE 自己参照ループ修正 + ホストテスト、run_emu.sh の PASS/GATE_FAIL/EMU_CRASH 分類とリトライ
  • 主な指摘と決着: PCSX-Redux 間欠 exit 255 は interpreter でも再現、根本原因は未特定
  • レビューで挙がった高/中(抜粋):
    • [高] [Claude] GFX_ASSERT: draw/display overlap ゲートが無効化される(偽 PASS)
    • [高] [Claude] ウォッチドッグの sleep が孤児化し、パイプ/キャプチャ経由の呼び出しが PCSX_TIMEOUT(既定 90
    • [高] [Codex] 実行中プロセスのロックを stale と誤認して奪取する
    • [中] [Claude] SCENARIO PASSED の直後にクラッシュした場合が GATE_FAIL 扱いになり、リトライも証拠保存もされ
    • [中] [Codex] macOS クラッシュレポートの生成遅延を待っていない
    • [中] [Codex + Claude] 4 分類 / リトライ / タイムアウト / ロックの自動テストが無い

#30 — 紙人形ショーケースの色一致率低下を修正 — legacy_demo_reset の AWFUL 演出解除

M5 / PR #33 / +59/-20 / ラウンド 1 / 🔧 修正コメント 0 / 🧪 E2E 1 / 📋 レビュー 1

  • マージした内容: flow リンク時に紙人形の色一致率が 1/10 になる原因(legacy_demo_reset の AWFUL 演出)を修正し閾値を復元
  • 主な指摘と決着: Sonnet の正直な申告 → 親が issue 化 → 根本原因修正

#25 — 画面レイアウト磨き — タイトル/会話ウィンドウ/HUD レーン帯/RESULT の可読性 (半透明パネル + 拡大テキ

M5 / PR #34 / +305/-26 / ラウンド 2 / 🔧 修正コメント 1 / 🧪 E2E 2 / 📋 レビュー 3

  • マージした内容: 半透明パネル + 拡大テキスト API、タイトル/会話ウィンドウ/レーン帯/RESULT の可読性
  • 主な指摘と決着: —
  • レビューで挙がった高/中(抜粋):
    • [高] check_text_panel に「インクが存在すること」の下限がなく、rhythm_gameover は空領域を検査している
    • [中] _is_panel_ink() の青クロマ除外が広すぎ、青系の背景漏れを見逃す
    • [中] bright_rate の分母が「非インク画素数」で、インク誤判定が増えるほど判定が甘くなる
    • [中] gfx_panel() は POLY_F4 を積んだ後に DR_TPAGE を確保しており、パケット枯渇時に ABR 未設定の半透明ポリ
#25 evidence

#27 — fix(tools): png2tim.py の BGR555 丸め後の重複色でパレット枠が浪費される

M5 / PR #35 / +93/-5 / ラウンド 2 / 🔧 修正コメント 0 / 🧪 E2E 2 / 📋 レビュー 2

  • マージした内容: BGR555 丸め後の重複色でパレット枠が浪費される問題の修正
  • 主な指摘と決着: —
  • レビューで挙がった高/中(抜粋):
    • [中] [Claude] PR 本文「ゴールデン更新理由の内訳」の 2 点目が事実と異なる

#15 — fix: PS1 基盤の堅牢化 — gte3d 近平面/FLAG 検査

M5 / PR #36 / +476/-123 / ラウンド 4 / 🔧 修正コメント 2 / 🧪 E2E 4 / 📋 レビュー 3

  • マージした内容: gte3d 近平面/FLAG 検査、OT スケール二重適用の修正、run_emu タイムアウト
  • 主な指摘と決着: 唯一の未達が -Wcomment 警告 1 件 → 親が修正しマージ。pad.c 故障注入は分類器ブロックで代替エビデンス
  • レビューで挙がった高/中(抜粋):
    • [高] E2E ゴールデンが未更新で run_emu.sh が GATE_FAIL する(受入条件未達)
    • [高] 近平面棄却で手前の床ポリゴンが丸ごと消え、可視の黒穴になっている
    • [中] GTE3D_FLAG_REJECT_MASK に SX2/SY2 飽和 (bit13/14) を含めるのは過剰棄却の疑い
    • [中] BILLBOARD_OT_BIAS が深度スケール変更に追従していない
    • [中] RUN_EMU_TIMEOUT 既定を 900→300 秒に下げたのは長尺シナリオに対して余裕が薄い
    • [中] PCSX_LOCK_TIMEOUT を固定値 1000 に下げると、上を戻した瞬間にロックを奪う

#37 — 近平面交差床の適応二分割 — 画面下部の床欠け帯を解消

M5 / PR #39 / +261/-43 / ラウンド 1 / 🔧 修正コメント 0 / 🧪 E2E 1 / 📋 レビュー 1

  • マージした内容: 近平面交差する床ポリゴンの適応二分割(画面下部の床欠け解消)
  • 主な指摘と決着: —
  • レビューで挙がった高/中(抜粋):
    • [中] [Claude] gte3d_flag_rejects が全シナリオで 0 になり、issue #15 の診断カウンタが実質的に死ぬ
    • [中] [Claude] game_gte3d_quad_near_rejects の単位が「quad」から「分割葉 quad」に変わり 1.5

#38 — png2tim: index 0 免除の厳密化と解放パレットスロットの再利用

M5 / PR #40 / +338/-28 / ラウンド 5 / 🔧 修正コメント 4 / 🧪 E2E 5 / 📋 レビュー 5

  • マージした内容: png2tim の index0 免除厳密化と解放パレットスロットの再利用
  • 主な指摘と決着: 回帰ガードにならないテスト(中)→ Red/Green を伴うテストへ作り直し、main とのゴールデン衝突を解消
  • レビューで挙がった高/中(抜粋):
    • [中] スライド名のハードコードが 3 箇所目になっている
    • [中] glob → マニフェスト走査で「載っていない実アセット」が静かに検査対象外になる
    • [中] [Codex + Claude] test_grid は allowlist に入っているが実際には PS-EXE に incbin さ
    • [中] [Claude] exact 経路の導入で、#27 が直したフォールバック経路の不変条件テストが実質的に失効している
    • [中] [Claude] 直前の 🔧 修正対応コメントの stage.lua GATE_FAIL 診断が誤り(記録の訂正が必要)
    • [中] [Codex + Claude] 追加されたフォールバックテストは「経路を踏む」だけで、#27 の回帰を検出できない

aieo-product 内部ナレッジ