summer.mdが既に開いていた。そうだった今日から夏か。weztermの操作方法を習得するというか習得させるというか。wezterm/weztermを走査させてRAG用のナレッジベースを構築。gh-maestroプロジェクトでエージェントが参照できるようにした。wmuxに関するリソースはすべて削除。Ctrl+Alt+%でペインを左右に分割。Ctrl+Alt+"で上下に分割。%が左右に分割する記号に見えない。逆に上下に分割するような感じがするな。分数なんだから。ダブルクォーテーションなんかまさに、上下と言うより左右の分割を連想させる。tmux由来らしいがなんでこうなった。Ctrl+Alt+"で上下分割、Ctrl+Alt+%で左右分割。ペインを閉じるのをCtrl+Space後c、ペイン入れ替えをCtrl+Space後rとし、luaスクリプト(~/.wezterm.lua)をClaudeに書かせた。とりあえずこの4つがあれば、GUIのように直感的ではないものの、一通りのペイン操作ができると思う。Ctrl+SpaceをLEADERに設定したので、今後なにか追加するときはこれを使うことにする。setup.jsで決まった役職を決まったペインに登場させるっていう方法だと、LLMの汎用性を活かしきれない。様々な問題に柔軟に対応できないもん。gh-maestro試作品完成。Claude Codeと仕上げた。必要なことしか喋らないから捗る捗る。早速明日使ってみよう。gh-maestroで開発開始〜toLowerCase使えっていうんだよ。Claudeに「いちゃもんだから無視しようぜ」っていったら同意してた。なにこれ。gh-maestroが抱えている課題の90%はGemini由来のものです。gh-maestro-baseスキルを手直しついでに、gh-maestro-orchestratorスキルも修正。アホの子Geminiへの指示をコンパクト化する際に気づいたが、オーケストレーターもワーカーも、Weztermについて何も知る必要はない。全部アセットスクリプト内に抽象化してやった。これで必要コンテクストはよりコンパクトになり、Weztermを別のターミナルに変更しやすくもなる(今のところほとんど不満はない)。gh-maestroはAntigravityのドキュメント嘘をついていたのでスキルの登録をやり直す羽目になった。agyで/skillsを叩いてやっと正しいskillのディレクトリが判明した。どうやら二転三転した経緯があるみたい。IDEはもう使わないからどうでもいいが、IDE版とCLI版ではまた違ったりするっぽい。send_pane.js(ペイン間の送信用スクリプト)、spawn_worker.js(ペインを初期化してワーカーを召喚するスクリプト)で自動的にメッセージに付加しまうことでSKILL.mdが簡略化できる。今度こそうまく行くと思うがどうだ!?というか、これでまだわからなかったら相当がっかりすると思う。Gemini 3.5 Flashには失望するだろう。shiftmaeker リファクタリングのオーケストレーターおよび、gh-maestro開発全般を担当させたが、Quotaに関しては全く問題ない。5時間枠は69%消費で23分後にリセット。週枠は26%4日後にリセットだ。週枠の方は、噂によるとAnthropicによるリセットがあったかもしれんのでまだ油断はできないけど、5時間枠は恐らく問題なしだ。gh-maestroに組み込まなければならない。得意分野を見極めたら、オーケストレーターの定義を更新して、Jitro or Antigravity を自律的に選択させたい。これでQuota経済がさらに改善されるはず。.claude/rules として移植しようと考えた。Claude Codeは当然.claude/rulesについての知識を持っていないようで、なにか調べ始めたのでキャンセルしたら、おいおい、claude-code-guideなるスキルを使って公式ドキュメントを調査してるじゃん。そのスキルがあるなら早く教えてくれw ナレッジベースをローカルに用意しちゃったよ。.agents/rules/* に準拠しているかどうかをレビュワーに調査させようとアドバイスした。gh-maestroの最優先課題だな。gh-maestroは日曜大工的なプロジェクトにするつもりだったけど、きちんとした開発フローを組んでやらんとこの先面倒かもしれん。gh-maestroでbat(sharkdp/bat)を活用しよう。VSCodeみたいな重たい超高機能エディタでファイルを読むのをやめ、TUIでさっと読めるようにする。Weztermと組み合わせればチャットが流れてしまうこともなくなるだろう。まさにClaude Code IDEがやっているようなことをスマートにやれる。gh-maestro-orchestrator スキルのアセットスクリプトにWeztermのpane関連の操作をカプセル化してしまう。オーケストレーターはただ、ユーザーに読ませたいファイルのパスをこのスクリプトに渡すということだけを知っていればいい。choco install bat が推奨されるインストール方法。依存関係を解決してくれた。gh-maestroのオーケストレーター、ワーカーの使い方がこなれてきたので、並列でバンバン使うようになってきた。gh-maestroはエージェント起動時のトークンのオーバーヘッドが大きいかもしれない。gh-maestro-reviewerスキルは、ちょっとぬるい。googleのレビュー基準のぶん書を読ませたりしてるんだけど、ぬるい。Gemini Code Assistの自動レビューはいつも危険度の高いバグやセキュリティホールを発見してくれるので、7月にこいつが使えなくなったら不安で仕方がない。gh-maestroのあり方をこいつに寄せていくのもあり。send-pane.jsを使うのはワーカーがオーケストレーターに質問するときと、オーケストレーターがそれに答えるときだけになりそう。つまりイレギュラーが生じたときだけ。できるだけ発生させないようにする方向にシフトする。まあやり取りを見ていると面白いんだけどね。Alt+Gで一応チャットの小窓は開くけれども、タブの内容を取得するらしく、タブのないPWAは対象外。EdgeとCopilotも同様の問題を抱えている。chrome://appsでPWAを右クリックし「ウィンドウで開く」のチェックを外せばPWAをタブで表示できるとのこと。/forkコマンドの活用だ。これはかなり効果が期待できる!/fork(分岐1)し、そこからCorrectness系、Resilience系、Maintainability系のレビュワー用のそれぞれのプロンプトをコンテクストに取り込み、さらに/fork(分岐2)。ここでそれぞれのセッションに/renameで名前をつけてやる。review-correctness, review-resilience, review-maintainability とかね。/resume セッション名 で起動し、さらに/forkしてからレビューの具体的なコンテクストを追加し、開始させる。agy --conversation {セッションID} でそこから再開できるんだけど、名前は指定できなかった。セッションIDは端末依存なのでNGかな。/resume {セッション名} を送信したのち、プロンプトを投げる形だな。/resume に引数はなく、手動で選択していく方式だった。最悪や。SecretManagementとSecretStoreを使い、Set-Secret -Name "DeepSeekAPIKey"でAPIキーを保存してみた。試しに使うため10ドルちょいをプリペイド。deepseek API keysdeepseek-v4-proを動かしてみた。どれくらいこき使うと10ドルが溶けるのか見もの。claude-dsで起動するスクリプトの設置完了。環境変数に毎回APIキーを指定する感じで起動すればいい。毎回パスワードを求められるけど、APIキーに意識が向くので当面このままでいい。`
$env:ANTHROPIC-BASE_URL = "https://api.deepseek.com/anthropic"
$env:ANTHROPIC_AUTH_TOKEN = $apiKey
$env:ANTHROPIC_MODEL = "deepseek-v4-pro[1m]"
$env:ANTHROPIC_DEFAULT_OPUS_MODEL = "deepseek-v4-pro[1m]"
$env:ANTHROPIC_DEFAULT_SONNET_MODEL = "deepseek-v4-pro[1m]"
$env:ANTHROPIC_DEFAULT_HAIKU_MODEL = "deepseek-v4-flash"
$env:CLAUDE_CODE_SUBAGENT_MODEL = "deepseek-v4-flash"
$env:CLAUDE_CODE_EFFORT_LEVEL = "max"
claude @args
`deepseek-v4-proは4月に出たばかりの最新モデル。噂通り、速くて賢そうに見える。gh-maestroのアーキテクチャを喋らせ、CLAUDE.mdに設計思想を追記させたら、コミット、プッシュしますか?と聞いてきてくれた。作業後は、その効果を完結に説明してきた。寄り添い能力ありかなこれ。少なくともGeminiよりは数段上です。ここまでやらせて、0.04USD。6円。deepseek-v4-flashなら3分の1なので、2円。いうほど安いかこれ?gh-maestroの軽めの変更を実装させてみた。レビュワーを消去してPRをポーリングで待機、PRコメントをマージ完了まで待機し続け、コメントが来たらトリアージしてコーダーに改善を指示する。それだけだが、33分かかった。0.12USD消費。deepseek-v4-flashで試す。claude-dsを起動。正確性、堅牢性、拡張性をそれぞれ担当させるためのスキルを発動させた時点でそれぞれに名前を付け、それぞれ/forkし、issue番号を伝える。これでPRをポーリングで待機してレビューを勝手にコメントする。/resumeすれば、必要最小限のコンテクストで別PRのレビューを開始できる。/forkは手動でやるしかないけど、プロジェクトごとに1回きりだとは思う。いや/forkは毎回か。/forkじゃなくて/branchを使ったほうがいいみたい。deepseek-v4-pro[1m]しか試せてない。起動スクリプトで環境変数の設定を変えたつもりだったんだけど、ターミナルの再起動を忘れてた。gh-aw)のRAGを構築し、Claude Codeと一緒に活用方法を検討した。gh-maestroのワークフローに組み込むことは不可能。だが先日構築した外部レビューを完全にまるっと任せることができることが判明した。/reviewer-*系のスキルを手動発動させるとスキルのアセットスクリプトを使うことでPRのポーリングが開始され、レビュー後、同様にレビューコメントが投稿される。gh-awを活用することで、レビュー用エージェントをローカルプロセスに常駐させる必要がなくなる。もちろんポーリング、手動実行も消える。gh-maestroを中央リポジトリとして、reusable workflowsという手法を使うことにした。各リポジトリには.github/workflows/*.ymlのjobs.ci.usesに中央リポジトリのYAMLを指定するだけ。submit_pull_request_reviewという論理的な手段が使える。gh-maestroのコーダー用スキルがAntigravityとClaude Code向けに最適化されている部分がある。とりあえずClaude Code + deepseek-v4-flashにコーダーとレビュワーをやってもらおう。これが月20ドルを超えてくるようなら再考だ。gemini-3-pro-previewという神モデルが使えた時期を除く)のハーネスを一生懸命考える日々は、決して無駄ではなかったぞ。もうマジで相当に鍛えられたよ。deepseek-v4-flashのレビュー、かなり優秀だわこれ。まあプロンプトを熟考したのもあるけど。Gemini 3.5 Flashモデルのコードを見事にブロックしてくれる。今手戻り4回目。きっつ。jintrick/blogがこの日記のSSOTなので、webfetchツールやブラウザ操作なんかをするまでもなく、ghであらゆる情報を取れる。JINTRICK.mdに圧縮してやればいい。Claude Routineみたいなサービスがあったなそういえば。それを参考にして自宅のサーバーでエージェントアプリを動かしてやる?jintrick/blogプロジェクトの日記更新フローに直接組み込むか。JINTRICK.mdが更新される。on.commitみたいなイベントだろうけど、コミットメッセージに何かひと工夫仕込んでおけば、それで1日の始まりかどうかは判定できるだろ。deepseek-v4-flashしかないんだけど−−を走らせて、情報を圧縮させると。JINTRICK.mdを、では、どうやって活用してどういう情報を構築させるかってところを議論してみるとしよう。この日記を読ませながらな。gh-maestroに反省会フローを追加した。反省会って言ってもコーダーの手戻りをなくすために何ができるかをPRマージ処理後に話し合うだけ。lint/rulesで防げるならそれを即席で実装させてしまう。deepseek-v4-flashにコーダーをやってもらったら、Claude Code CLIのボトムに表示させているSonnetの1/100以下のコストで済んでしまった。なんぞこれ!deepseek-v4-proにオーケストレーターになってもらった。auto modeでツールの実行が阻害される問題発生。gh-maestro-orchestratorスキルに知識として詰め込んでやってもいいと思う。最後の「反省会」モードではrulesを書いてもらうことになるんだからね。これ重要だな。kagisearch/kagi-docsgh-awにはインラインサブエージェントという機能があるらしい。v4-proがRAG使って結論してる。sonnet 4.6の代わりにdeepseek-v4-proを使っている。こっちのほうが上だわ。明らかに知性が違うwgit rmは破壊的な操作がデフォルト。git resetも--softではなく、安全とはいえない--mixedがデフォルト。gitは人間の「熟練ユーザー」向けに設計されたツールであり、AIエージェントが安全に操作するための語彙を持っていません。
gitをAIエージェントに直接使わせることは構造的なアンチパターンです。deepseek-v4-flashで問題なし。コーディングエージェントのハーネスがちゃんと効いていればこれくらいのモデルのほうが却って速くて効率は良い。あまりにひどい手戻りが多ければ考えるけど、たいてい計画がずさんなだけ。agyに委譲する。これを任せる。Claude Codeは仕事用なので、ここは噂のHermesを試してみたい。パーソナライズに特化したエージェントらしい。deepseek-v4-proを頭脳にしてしまえばよさそう。gh-maestroからWeztermを操作するスキルだけ抽出して与えてやれば十分かな。……と思ったんだけど、調べてみるとrules/の仕組みがなさそうなのでやめた。それなら使い慣れたClaude Codeをカスタマイズしたほうが良さそうだ。/goalモードがあるらしい。サブエージェントを確実に使いこなしてくれるなら悪くはないけど、あいにくマルチエージェント体制がうまく回っているから全く使う意味がない。gh-maestroでエージェント用のプラグインを定義して、その層で吸収してやるしかない。それさえできれば、Reasonix + deepseek-v4-*をコーダーとしてガンガン使うことができるようになる。agyでいいが、バグの原因調査はむしろ、deepseek-v4-pro, Opus 4.8などの上のモデルにやらせたほうが速いし安上がりになる可能性がある。deepseek-v4-proにはバグ調査員をやってもらおうかな。こちらはむしろ、rulesなんて自動で読み込まないほうが却って都合が良い。gh-maestroに新しいワーカー、bug-investigatorを定義し、Reasonixを専属エージェントとして登録しよう。coder, bug-investigator, investigatorの担当エージェントはハードコードに近い形でいいや。それぞれClaude Code、Reasonix、Antigravityが適任だ。色々試したいので都度選択肢を出させていたけど、設定ファイルにしてしまおう。もちろんorchestratorに俺が直接指示して変えさせることもできる今の状態は維持する。xedを使って書いていたので順序型リストの定義は自分で1.を打っていたけど、zedに変えたら勝手に補完されるようになった。順序型リストの数字を任意に指定できるようにスクリプトを書き換える。claude-ds, claude-ds-flash を ~/.bashrcに登録。これで指揮者とコーダーは完成。@AGENTS.mdとか、余計なことは一切やらない。Claude Code以外の後発エージェントは、たいていの場合AGENTS.mdを設定で変更できるし。bug-investigatorとして使うのが良さげ。npm i -g reasonix@nextで最新版を指定しないと古いTypescript版がインストールされてしまうらしい。色々使えないコマンドがあっておかしいと思ったんだ。pageup/pagedownで問題なくスクロールできた。.claude/rules, .agents/rulesには対応していない。issueは上がっているけど反応なし。deepseek-v4-proなのに、Claude Codeで使っていたflashと同じくらいのコスト感。これはおいしい。gh-maestroの設計見直しも一緒にやっているが、中々筋がいい。というか、実装報告の書き方が最高。過去一わかりやすい報告だ。簡潔でわかりやすい。investigatorはexplorerに、bug-investigatorはinvestigatorに名称を変更した。DS案。pane_idとcwdの2つを使うことで確実性を高めることができた。ワーカーは必ずgit worktreeを使うという点に目をつけた。gh-maestroはレビューをGitHub Actionsに頼るのをやめた。GitHub Agentic Workflowsの利点を活かせないし、オーバーヘッドが巨大すぎてまるで冗談みたいだ。一応新しめの技術なので経験を兼ねてやってみたというところで。claude実行時に初期プロンプトを投げてやるだけで十分。通信なんて要らないもん。非常にシンプルに書けた。起動後はプレビューコメントをポーリングすればいいだけ。orchestratorに任せた。今、2つのコーダーを起動して並列でやらせているようだ。orchestratorのOpus 4.8が、GeminiやDeepSeekのレビューについて批評。愚痴ったり文句言ったりしてるのをみてるの楽しい。gh-maestroをアップデートしたら、もうインストールスクリプトを実行するだけで、現在稼働中のすべてのエージェントに即座に反映されるようになった。この並走感が開発体験を更に向上させる。orchestratorの作業の振り方が鬼。かたや12件、かたや600件。当然後者はコンテクスト100%振り切って仕事が全然終わらないのでフォローするように伝えたら、ちゃんとマネジメントしてくれたけど。なんかこういうところに知性を感じないんだよなあ。Opus 4.8なのに。explorer、バグ調査にinvestigatorを積極的に活用して欲しい。明日の朝の課題だな。gh-maestroを起動するとセッションの大反省会が最後に行われる。これが本当によく機能している。gh-maestroでやれているとも言える。でも改めて考えさせられたね。deepseek-v4-proで仕事を進めてみた。gh-maestroの反省会に担当コーダーを参加させることにした。これは成功だと思う。実際にコードを触った過程で生じた違和感を語ってくれたりする。deepseek-v4-flash)、レビュワー(Reasonix + deepseek-v4-pro)と連携しながら実装が進んでいく。.claude/rulesの在り方だ。コーダーのミスを防ぐためにここにどんどんルールを追加すべきじゃない。ルールを増やせば増やすほど、コーダーの注意力や想像力は削られていく。根源的にミスを減らしたいならモデルを変えるしかない。でも安価で高速モデルを選択したのであれば、その利点を活かすことを考えなければならない。.claude/rulesにはできるだけプロジェクト固有の守ってもらいたい規則を書く。やむを得ずミスの予防として使う場合は、ある程度繰り返し侵されるものに限定する。ある程度の手戻りはもう、前提として受け入れる。gh-maestroファミリーに加えることにしよう。何をやらせるかというと……ちょっと考えたがもうこれしかない。まずはレビュワーだ。現在Reasonixを使っているのでこれと併用する。実力を見せてもらいたい。Gemini Code Assistも来週まで無料で使えるので、3つのレビュワーがそれぞれレビューしてくれることになる。gh-maestroにcodexを組み込みつつ、レビュワーをレビュワー管理者+3サブエージェント体制に変更したのだが、この計画から実装まですべてGPT-5.5に完走させてみたところ、週次Quotaを10%使ってしまった。お目付け役として常駐させるにはちょっと高価すぎるかもしれない。gh-maestro-architectをGPT-5.5と一緒に検討中。ていうか、このモデル最近出たばかりのフラッグシップに近いやつなのか。モデルを落としたあとCodexを再起動したら細心モデルとして推奨された。よほど自身があるのだろう。grill-me スキルは不要だった。なぜならわからないことがあったら質問して、と最後に書いただけだったのに、完璧にAskQuestionを使いこなしていたからだ。全く無駄のない質問。こちらの想定漏れなども埋める質問。Opus以前では「なんでそんなことを聞く?」という質問が多かった。deepseek-v4-flashの推論能力は低い。コーダーとしてやっていくのに最低限の品質ではあるかと思っていたのだが、オーケストレーターの指示を理解できない場面があったのは問題。deepseek-v4-proにコーダーを任せたところ、思わぬ収穫を得た。実装後の反省会でコーダーしか知り得ない情報を提供してくれて、プロジェクト内の全コードの洗剤バグが見つかった。gh-maestroを改良しよう。前々から構想はあったけど、今回の体験で確信に変わった。gh-maestroの強みはGitHubを通信や知識の基盤にすることにある。それを忘れてしまい、Fable 5に言われるがままファイルシステムキューを採用してしまった。.agents/rulesが使えないということなのでコーディング用のハーネスとしては使わない。膨大なルール資産をCodexのためだけにAGENTS.mdに再編するなんてことは出来ないからだ。これならまだAntigravity + Gemini 3.1 Proのほうがマシかもしれない。deepseek-v4-proにやらせていても、Codexは結構な頻度でblockerレベルのレビューコメントをよこす。そういうことなんだよなあ。レビュワーが最後の砦だ。--helpで自己学習可能なほうがいいってのもある。gh-maestroのエージェント可搬性について議論を開始した。案のたたき台をagyで作ってからね。config.jsonという形で切り出す土台はもう出来上がっていたので、あとは変更シナリオに応じて何パターンか作っておき、それをコマンド一発で切り替えればいいってさ。まさにそのとおり。簡単な話だった。agyにはFableと効率的に対話するための橋渡し役になってもらった。こういう小間使いとしては本当に頼りになる。gh-maestroは実験目的でpublicにしてたから、Issueにスパムコメントが来た。変なzipファイルのリンクを置いていったのでコメントごと削除したが、よく考えてみるとプロンプトインジェクションのリスクがあるなこれ。今やprivateで全く問題ないので変更するか、それとも脆弱性の対応を取るか。gh-maestro-review-manager用のエージェントがなぜかCodexでハードコードされていたので修正した。簡単なお仕事だったのでagyにやらせたら、GCAとCodexからそれぞれかなりのダメ出しが来たけど最終的に高品質のコードに仕上がったと思う。typescript-eslint は陳腐化したのでoxlintに移行。Sonnet君はtypescript-eslintが対応してませんの一点張りで代替手段について検討しないアホっぷりを発揮。まあアホっつーか、だいたいどのLLMも前提手段を疑わないのは同じなんだけども。oxlintは要件を満たさないことがわかった。TypeScript 7.0への移行は保留としておいた。review-manager)にheavy/diretedの2種類の指示を与え、heavyならこれまで通り重厚に、directedなら指示通りのカスタムレビューを行うように変更した。