Seizaのリポジトリが450コミットを超えていた。行数は5万行近い。別に行数が多くてもコミットが多くてもそれ自体に価値があるわけではないが、とはいえやっぱり圧倒的な生産性だなと思う。
今日はファイルアップローダを作った。ストレージを実際どうするかは考えないといけない問題だが、たぶんS3互換の何かでしょう。Cloudflare R2とか気になるよね。
ファイルアップロードまでいけたらさすがに試用していけるんじゃないかと思う。まあ別に自分しか使わないんだからどうだっていいのだ。
注文していたフリップドットディスプレイが届いた。思っていたより早かった(?)ので受け入れ体制がない。まあどのみち育児や他プロジェクトでそれどころではないのだが。とりあえずまずは電源を調達する必要がありそうだ。
子は最近になって手の存在に気づきつつあり、さかんにハンドをリガードしているが、物体を掴むのはまだ偶然に頼っている。強化学習〜〜〜!という気持ちで見ているが、どういう報酬を与えればいいのかはよくわからない。
Claude Codeをちゃんとしたサンドボックスに入れようと思ったのだけど、そうするとPlaywrightが難しい感じになることがわかったので、標準のサンドボックスで我慢することにした。必要になったらいつでもサンドボックス外で実行できるサンドボックスとは何なのかみたいな気持ちがなくはない。いやさすがにもうちょっとちゃんとしてるのか?
Seizaはまた悩んでいる。Web clip機能の立ち位置とか。外部Webページは、アップロードされた画像やPDFと同様の外部リソースとして扱うべきなのだろうか。そしてそれらの外部リソースはユーザーが書いたノートに対してどうインタラクションすべきなのだろうか。
ここまで詰められたら一旦デプロイして実際に試してみて、それからClaudeに「こういう使われかたをするっぽいけど改善点はある?」と訊いてみれば何かしら良くなるのではないか。祈り駆動開発ふたたび。
寝ます。
Claude Codeのauto modeを使っているのだと思っていたが、契約中のプランではまだ有効ではない(Teamとかでしか使えない?)ことをいまさら知った。じゃあ昨日とかスイスイ進んでたのは何だったんだ?まあいいでしょう。
Seizaはまたコンセプトを悩んでいる。コンセプトというよりは設計の話か。ノートに対してreplyをする機能が、あったほうがいい理由もないほうがいい理由もあるので、うーん。なんかでも、最終的にはなくしそうな気がするな。
寝ます。
天気が悪くなると聞いていた気がするのだが、今日は晴れてて暑かった。まあ、天気が悪くなると聞いたのが何日前のことだったか思い出せないので、もうずっと昔の話だった可能性もある。
Maestriという、LLMエージェントを起動したターミナルを自由に配置してターミナル同士をグラフィカルに連結するとエージェント同士も連携できる、みたいなすごいUXのツールが話題になっていたのでちょっと試した。面白いナァ!とは思ったが、ターミナルをいっぱい開いているとけっこう移動が遅くなったりしちゃうのと、エージェント連携が結局標準出力をコピペするだけなので、期待したほど息が合ってはいない気がした。でもtmuxで16並列開発や!って言ってる人とかはたぶんこういうのをやってるのよね。しかし別に他エージェントに相談するだけなら、今はCodexがClaude Code向けに公式のskillを出したりしているわけで、それほどありがたみは無いのかもしれない。僕が使いこなせてないだけなのかな。
auto-modeとサンドボックスを有効にしたので、もうかなり長時間僕の介入なしで走るようになっている。最近はこういうハーネス盆栽みたいなのもすこし楽しくなってきていて、やっぱりコードを実際に書きながら進めているからかなと思う。
寝ます。
泣いている子をベッドに置くとき、「置かれた場所で泣きなさい」と言っている。
Seizaの開発はもうまったく把握できないが何かがずっと進んでいる。僕がコンセプトを適当にしゃべるとClaudeとCodexが何かを既存ドキュメントとの整合性をチェックしつつ何かを設計し、モジュール結合の健全性などを評価し、動作確認をしてOKですねと独りごちている。いろいろ確認を求められたりもするが、出てくる用語の定義がうろ覚えなので、雰囲気でOKしている。我こそがvibe codingの体現者だ。
それで当たり前のことに気づいたが、いくらplaywrightなどでブラウザ操作まで自動でチェックできるとはいえ、インタラクションの手触り感とか、そういうUXの評価までは現状のLLMには難しいだろう。今からUXデザインの勉強をすればまだ失業しないで済むかもしれない。
体調はだいぶ戻ったのでよかった。天気が悪くなるまえに子を散歩に連れて行った。かつて自分が何十回も通った道を、妻と子と歩く。もう人生ここらでエンディングってことでスタッフロール入ってもよくないですか?
Seizaはコンセプトをちょっと練り直す。すべてのノートはそれ自体がユーザーの思考の一部として振る舞い、エージェントとして他のノートに関与する。結局エージェントかよ!まあ難しい実装はCodexとClaudeがやってくれるので、僕は参考情報を渡してコンセプトを考えるだけ。
寝ます。
体調を崩した。咳やくしゃみはないし熱もないが喉が痛い。あと関係あるのかないのかわからないが膝が痛い。
そういうわけで昼間は寝ていた。恐ろしいことだが寝ていてもマシンさえ立ち上がっていればClaude Codeにリモートで指示を出すことができる。ただ継続中のセッションはなんか実行許可ダイアログをうまく出せなくてスタックしてしまったのか、こちらからの呼び掛けには応えなくなっていたから、今日は何もしなかった。でもこんなのやり出したら本格的に精神が壊れるぞ。
Seizaのリポジトリは3万行を超えた。2万行がバックエンド、5000行がフロントエンド、残りがドキュメント。コンセプトのドキュメントとADRを残しながら進めると、Claude Codeがちゃんと過去の経緯を参照してくれることもある。コンセプトは手探りで作っていくしかないので、記録が残るのはいいことだ。
そういえばAnthropicの新しいモデル「Claude Mythos」がヤバすぎて一般公開の予定なしと判断されたらしい。GPT-2で見た流れだな……?と思うのは昔話大好きおじさんの癖だからいいとして、今のスピード感だと結局1年も経てばオープンモデルでそのくらいの性能が出るようになるのだろう。衝撃に備えるしかない。
明日はもうちょい元気になりたい。でもなんか明後日以降またしばらく天気悪いらしいね。
マルウェアだけでなく、シカクウェアやサンカクウェアなどによる被害も近年広がっているらしいです。
Claude CodeときどきChatGPTとCodexみたいな一日。なんかClaude Codeがhookの失敗時にそのまま作業を中断してしまう問題が時々あったのだが、Codexに相談してhookを修正してもらったら直った。これによってClaude Codeが30分以上普通に動きっぱなしでいるようになった。そろそろ効率のことを考えていかないと、Rate Limitに縛られることになるかもしれない。
「楽しんだもん勝ち」みたいな価値観が嫌いである。まず俺は勝つために生まれてきたわけではないし、そういう観点に無批判な人間は「勝ち」と道徳的な正しさを擦り合わせるために「楽しい」のほうを歪めていくことにも無頓着である。
我々は負けても構わないし、後悔しても構わないし、苦痛に耐えながら生きても構わない。自分がやるに値すると信ずることを為し、生きるに値すると信ずる生を生きろ。(そうすべきなのではなく、俺はただそうするのだ。)
赤ちゃんって毎週ベストプラクティスが変わるし、もしかしてLLMって赤ちゃんなのか?
Seizaのコードはドキュメントも含めて2万行を超えた。相変わらず一行も書いていないが、さすがに読んでないのは心配になってきたので作業の待ち時間にすこしずつ読んでいる。まあちょっと規模は(このblogなんかよりは!)大きいが素直なシステムではある。日頃からClean Architecture(風)が手癖になっているのでそういう意味で読みやすいが、読みたいと思うまでが大変。
まだデプロイはしていないが、ローカルでちまちま触っている。なかなか期待したようには動いていない(実装が悪いのではなくコンセプトが機能してない)が、たまにはめげずに頑張ってみようじゃないの。ねえ。
夕飯は肉を煮込んでカレーを作った。うまいんだけど、具材がプリミティヴなのであまり面白味のある味(これって重言?)ではない。別にいいんだけど。
今年は何か音の出るハードウェアを作ってみたいなと思った。シンセサイザっていうのかな?まあ、どう考えてもそんな時間はないが……
Claude Codeが自分で書いたコードを自分で実行して自分で操作して自分で改善点を発見して自分でCodexと相談して対応方針を決めているのをボンヤリ眺めている。管理職ってこういうことなのか?
AIがコードを書いて、その信頼性はまだ怪しいから、人間がレビューで担保しないとねみたいな話をしている横で、OSSへのサプライチェーン攻撃が大規模に影響を与えたりしている。こうなってくるともう品質の保証みたいなことを考えても仕方なくて、リスクを管理して責任を取りましょうの話になっていくのだろうと思う。やはりエンジニア保険なのか。
というような話をChatGPTとしていて認識したのだが、要するに僕は責任をちゃんと負う仕事をしたいのだなと思う。責任を負わない仕事はもういくらでもAIに流せるわけで、なにかやりたいビジネスがあり、そのリスクを管理し、何かあれば責任を取る、そういう営みの近くにいないと、もう人間にやらせる必要のある仕事でやっていて楽しいものは残らないのかもしれない。さすがに悲観的すぎるかもしれない。
技術は世界をなめらかにしていく。でも、なめらかになった世界は、極度に抽象化された世界でもある。摩擦も空気抵抗もなければ物体は正確に放物線に沿って運動するし、その行き先は正確に予言できる。正確に予言できるならわざわざ実際に投げる必要もなく、前提と予測だけを見較べて満足したりしなかったりすればよい。技術で可能なことがすべて実現する世界の究極的な姿というのはそういうものなのではないか。つまり、なにかの事業のアイデアがあり、リスクとリターンの評価があり、それに従って事業の売買がある。極論をいえばそこで事業が実際に行われる必要もないかもしれない。長い目で見ればそういう姿に近づいていく世界の中で、有限の寿命を持つ人間はどのように居場所を見つければよいのだろう?
寝ます。