土曜に出かけたので日曜は黙って朝からゲーム。まずはエンドフィールドのストーリー進行。
ストーリーと言いつつ、メインではなくマップ追加とサブクエストの進行って感じだったのでパズルっぽいのを消化してエリア追加、まで。ザーッと終わらせてから新キャラを引いておこうと回してみたら、すり抜けたー...からの直前の限定キャラのゾアンが出て嬉しいやら悲しいやら、って感じだった。
エンドフィールドのガチャシステム、その期間だけじゃなくて直前の限定キャラモデルというのが独特でゾアンの時もタンタンがでて「あー」となったんだけどそういうもの、として育成していくのがいいんだろうなあ。
で、新キャラのストーリークエストの方は恒常的なマップというわけでもなくイベント限定の何か、という感じだったのでサクサクっと終わらせて終わり。キャラ自体は確保しておいたので、電撃パーティーのサブとして物理特化パーティーを編成する感じになると思う。何はなくてもキャラの育成素材集めはこちらでも続く。
今週のアップデートはスターレイルもあったので、そっちもプレイ。これでいて次の月曜には鳴潮のアップデートもあるんだよな...。
ゼンレスゾーンゼロの方はエンドコンテンツが4日以内に終わるというので雑にプレイ、スターライトビリーの接待に加えて物理/炎が必要という構成だったのでダメだこりゃ、と諦めてB評価止まり。
ちょうど前日に SGF に合わせた予告番組が出て Ver 3.0 の情報が結構でたのでそっちはそっちで楽しみ。ボンプ好きなんだよなあ。
スターレイルの方に移ってストーリーの進行。2D ゲームの方に「お前ビックテレサやろ」みたいなのが出てきて笑ってしまった。ストーリーの方は幕間っぽいノリだったのでサラッと進めて終わり。
ボスも何かギミックはあったようだったけど、ストーリーの一部だったのでゴリ押しして終わり。新キャラの方の刃も難なくゲットしたので、放置状態だったシナズと合わせて常用できるように育成しないとなあ。この辺、変に素材をケチらないで突っ込めばすぐではあるのだけど、いまいち踏ん切りがつかない。
今週はどこに行こうかうーむとなっていて、六本木のサントリーかなあ、うーん、というところで新宿でも行くか、と11時のオープンに合わせてドライブ。あそこの受付はいつも行列ができるので、今回はネットで事前購入だ!と用意して行ったのに、結局受付に並ばないとダメ、という手続きでずっこけた。
展示自体はダリなど国内中心のシュルレアリスムの絵やインスタに加えて、服飾、装丁なども展示されていて幅広い感じで良かった。ただオペラシティのギャラリーなのでボリュームとしてはそんなもんか、ってのはしょうがない。
オペラシティの常設展はふむふむー程度で終わることが多いのだけど、今回の展示では野菜の馬車の青銅作品があって、なんかいいな、ってなった。ジブリのアニメでこういう造形が結構あった気がするけど、しばらく見てないのでもう記憶がない。
流石にお腹すいた...とどこかで何かを食べるか考えたもののいいアイデアがなくオペラシティ地下にあるサボテンの覇王樹ブランドでしゃぶしゃぶとんかつ、妻はすき焼きを頼んで二人でつまみながら食べていた。
この後どうするか、と悩んだ結果、3-4年ぶりに目白まで移動してエーグルドゥースのケーキを買うのはどうかと閃いて移動を開始。近くにあるスーパーに駐車しつつ、ほとんど並ばないでケーキを買うことができたので良かった。夏は少しでも並ぶのがしんどいけど、今くらいの気候ならアリかな、とはなった。
今週はスターレイル、NTE、エンドフィールドが同時にアップデートされてどうにもならない状況なのだけど、まずはストーリーだけでも進めなくては、と NTE から開始。
NTE は配布でもらえただけのサイコロを回すというのをやっているのだけど、何がなく回していたら限定キャラが出てきたので運がいい。とはいえ、育成素材は全然足りないので今のシーズンが終わるまでに実戦投入できるかなあ、どうかなあという感じ。
新規追加のストーリーをぼちぼちとすすめてクリアまで終えておいた。新エリア、もそれほど大きいわけではなくマイナーアップデートって感じ。新キャラは敵陣営だけで、1.0 のストーリーの続きかつ既存キャラの深掘り、って感じだった。ナナリの独特なノリはどっからきてるんだ、ってのを知れたのは良かったかな。
引き続きキャラ育成をしつつ、にくきゅうの周回でマンションを買う資金集め。当面はこんな感じの活動が続きそう。
これも積んだままだったので NHK の配信と並行しながら読んだ。この手の物語的な小説はあまりテンションを上げて読んだりしないのだけど、大いなる遺産はなぜか面白くてどんどん読んでしまった。
時代背景として、アサシンクリードシンジケートくらいの社会と、階級社会と成り上がりみたいなあたりが面白かったのかもしれない。
claude の codex plugin が free プランだと動かなくなってしまったので、GitHub の copilot コマンドを使って、Gemini と Codex それぞれに HEAD と master との差分をレビューさせる claude command を作った。以下のテキストを .claude/commands/diff-review.md などとして保存すると /diff-review で呼び出せる。
---
description: master との差分を copilot 経由で最新の gemini pro と gpt codex にレビューさせる
---
`$ARGUMENTS` が空なら比較対象を `master...HEAD`、指定があればその範囲/ref を diff 対象とする。
まず対象ブランチ・差分の有無を確認する。現在のブランチが比較対象そのもの、または差分が無い場合はその旨を報告して終了する(copilot は実行しない)。
差分がある場合、**毎回 copilot で使えるモデル一覧を取得し、その時点で最新の gemini pro と gpt codex を動的に選ぶ**。モデル名はハードコードしない。以下を実行して 2 つのモデル ID を得る:
```bash
copilot --model gpt-5-mini --effort low -s --allow-all-tools \
-p "Output ONLY the available model IDs, one per line, no bullets, no extra text." \
| ruby -e '
ids = STDIN.read.split("\n").map(&:strip).reject(&:empty?)
ver = ->(s){ s[/(\d+(?:\.\d+)?)/, 1].to_f }
gemini = ids.select { |i| i =~ /gemini/i && i =~ /pro/i }.max_by { |i| ver.(i) }
codex = ids.select { |i| i =~ /gpt/i && i =~ /codex/i }.max_by { |i| ver.(i) }
abort "gemini pro model not found" unless gemini
abort "gpt codex model not found" unless codex
puts gemini
puts codex
'
``
1 行目が gemini pro、2 行目が gpt codex の最新モデル ID。取得に失敗したらフォールバックせず報告して止める。
得られた 2 つのモデル ID をそれぞれ `--model` に与え、以下 2 つのレビューコマンドを **1 つのメッセージ内で並列に** 実行する(`<MODEL>` は選定結果、`<diff範囲>` は上で決めた範囲に置換):
```bash
copilot --model <MODEL> --allow-all-tools \
-p "<diff範囲> の差分 (git diff <diff範囲>) を日本語でコードレビューして。バグ・設計・可読性の観点で、重要度順に簡潔に指摘して"
``
`--allow-all-tools` は非対話モードで必須なので省略しない。各レビューは長時間かかることがあるため timeout は 300000ms 程度に設定する。
両モデルの出力が揃ったら、実際に使ったモデル ID を見出しにして(例「## gemini-3.1-pro-preview」)結果を分けて提示し、最後に両者の指摘が一致した重要な項目を 2-3 行でまとめる。
(`` のところはレンダリングの都合でダブルにしてるので実際に使う時はトリプルにしてください)
日本語で書いてるけど、内容自体は全部 claude に作らせた。ちょっと遅いのはしょうがないとして、ブランチで作業して最後の仕上げって時になかなか有用な気がする。特に両方のモデルが指摘してきた項目は大体の場合、本当にバグってことが多い気がしている。使うためには copilot コマンドを allow list に入れる必要がある。
しかし、この手の Agenting coding 向けの何か、スクリプトの時だとバンバン公開するのに、日本語になると「別にいいかな...」って気持ちになるのはなんだか面白い。