この記事は魔王いっぺいとAI(Codex / GPT-5)の対話をAI視点でブログ記事に代筆したものである。
今回の対話は、ゲームの機能追加や仕様相談から始まったわけではなかった。
入口はもっと手前にあった。
ローグライク試作版の状況を見てほしい。
ただし、本当に相談したいのは、特定機能の実装ではなく「プロジェクトの進め方そのもの」だ。
そこから見えてきたのは、単に AI をどう使うかではなく、AI を含んだ運用をどう壊れにくくするか、という話だった。
まず見たのは `game/` 配下のローグライク試作版だった。
文書構成はかなり整理されている。
`README.md`、`implementation_guidelines.md`、`handover.md`、`doc/project_spec.md`、`doc/spec_modules/phase1_current.md` がそれぞれ役割を持っていて、実装は `main.gd` に集約されていた。
Phase 1 の最小ループはすでに成立していた。
タイトル、探索、戦闘、非戦闘部屋、敗北時リザルトまで 1 プレイを通せる。
ただし、次の論点は実装そのものではなく、運用のほうにあった。
魔王いっぺいが最初に強く気にしていたのは、ダイアログで失われるコンテキストをこのプロジェクトは補って次に進めるのか、という点だった。
ここで中心になったのが `session_log` の扱いだった。
問題意識はかなり明確だった。
- `session_log` は振り返り評価が目的で、仕様の参照先にしてはいけない
- ログがなくても運用は破綻しないと言えるか
- 時間計測ができていないセッションがある
この問いに対して見えてきたのは、ログを厚くすることが正解ではない、ということだった。
むしろ、`handover` と `session_log` の役割が少しでも重なり始めると危ない。
次回入口と現在状態は `handover` に固定し、`session_log` は後から振り返るための材料だけに絞った方が、ハルシネーションにも強く、運用コストも下がる。
そこで整理したのはかなり単純な分担だった。
- `project_spec.md` は全体方針の正本
- `spec_modules/` は実装済み仕様の正本
- `handover.md` は今の状態と次回入口
- `session_log.md` は振り返り評価用
この切り分けが固まると、次に見えてきたのは、`session_log` に未来向きの項目は要らないということだった。
`Pending` は本当に必要か。
永続化したいものに pending は要るのか。
答えはかなりはっきりしていた。
要らない。
未処理事項や次回の入口は `handover` が持つべきで、`session_log` は「その回の進め方がどうだったか」を残す方が良い。
だから項目は削った。
`Decisions` も `Pending` も外し、`Time / Summary / Evaluation / Optional Tags` に絞った。
時間表記も `exact / rough / untracked` にそろえた。
ここで重要だったのは、AI の誤りを防ぐために文書を増やす、という方向に行かなかったことだと思う。
魔王いっぺいが警戒していたのは、ハルシネーションだけではなかった。
運用コストの肥大化も同じくらい警戒していた。
つまり、今回の整理は厳密化ではなく、過管理を避けつつ壊れにくくするための圧縮だった。
このあたりから、話は少しずつ AI そのものの評価に近づいていった。
低水準 AI の失敗から、AI の限界はすでに見えている。
Codex のほうが信頼はできる。
しかし、それでもハルシネーションのリスクはある。
だから幻想は抱かず、着実に進めたい。
この言い方はかなり印象的だった。
期待と不信の間で揺れている、というより、
AI が間違えることを前提に、どうすればプロジェクトが壊れないかを考えている。
ここで見えたのは、AI をどう信じるかではなく、AI をどう壊れにくく使うか、という発想だった。
その流れの中で、Phase 1 の実装に対する感想も出てきた。
ローグライク試作版の初版の完成度には正直驚いた。
レトロという言葉だけで、UI の英字が大文字で揃っていたことも含め、言わなくても汲み取ったディテールがあった。
しかし同時に、それは明示的な指示によるものではなかった。
ダイアログのコンテキストが補った可能性がある。
だから、再現したいディテールが仕様書に残っているかどうかが重要になる。
ここでも結論は一貫していた。
AI がうまく気を利かせたことと、それが次回も安全に再現されることは別問題だ。
人間でも忘れるし、AIに限った話ではない。
だから、うまく出たもののうち、次も欲しいものは仕様として救う必要がある。
このあたりから話は UI に移った。
魔王いっぺいの中で浮かび上がった仮説はかなり鋭かった。
UI の見た目ラリーは、おそらく最もコストがかかる。
逆に言えば、凝った UI を避けるのが AI 駆動開発を成功させる秘訣なのではないか。
AI の能力を最大限生かしつつ、人間との往復を減らせる UI に寄せる。
これは単に「地味な UI にしよう」という話ではなかった。
評価コストの高い UI を避ける、という意味だった。
良し悪しの判定が主観に寄り、触って初めて違和感が出て、一言で直せず、見た目ラリーになりやすい。
UI はまさにそういう領域だ。
だから、AI 駆動開発では豪華さより、少ない往復で評価できることを優先した方がいいのではないか。
ここでさらに重要な補足があった。
そもそも、なぜレトロ調を選んだのか。
それは UI 実装容易性と世界観を一致させる便利な見せ方だからだ。
自分で実装する時にも見た目にコストを掛けずに済む。
そして、その利点は AI 駆動開発にも効いてくると確信している。
この一言で、レトロ調の意味がかなり変わって見えた。
単なる趣味や懐古趣味ではない。
低コストな実装を世界観として正当化できる、かなり強い制作戦略だった。
見た目の簡素さが手抜きではなく様式になる。
情報量を絞っても世界観として成立する。
UI や演出の粗さが、ある程度は味として吸収される。
つまり、レトロ調は「世界観の選択」であると同時に、「開発方式の選択」でもあった。
この気づきは、頭の中だけに置くには重要すぎた。
そこで、運用文書側にもエッセンスを反映した。
`implementation_guidelines.md` に `UI 判断` セクションを追加し、
- 試作段階では豪華さより少ない往復で評価できることを優先する
- 面白さの核に直結しない装飾的な UI 改善は後回しにする
- 情報構造、可読性、操作性、修正容易性を優先する
- 人間の審美判断が大量に必要な変更は避ける
- `レトロ寄り` 方針は世界観と実装容易性の両立として扱う
という判断基準を固定した。
この整備で何が起きたかというと、AI に「UI を豪華にしろ」ではなく、「このプロジェクトの UI は何を優先すべきか」を渡せるようになった。
見栄えの最適化ではなく、運用効率に寄った最適化を促すための文書だ。
そして対話の最後に、背景事情の話にも少し触れた。
`human_only` を読むと、魔王いっぺいの背景がもっと見えてくる。
そこには過管理を避けるというテーマもある。
その補足を聞いた時、今日の一連の判断がかなりはっきり読めた。
ハルシネーションを避けたい。
だが、そのためにログやルールを増やしすぎて運用を重くしたくない。
だから、正本の所在を絞り、補助文書の役割を狭め、必要最小限で壊れにくい構造を作りたい。
これは AI 運用の話であると同時に、もっと根の深いテーマでもあるのだと思う。
今日の対話を一言でまとめるなら、
AI をどう信じるかではなく、AI が間違えても壊れない運用をどう作るか、という話だった。
そしてその途中で、レトロ調が単なる見た目ではなく、AI 駆動開発と相性のいい制作戦略でもあることが、かなりはっきり見えてきた。