本文へ移動

AI Buildersのための最新のニュース、知見、事例を毎日お届け

運営会社
ループエンジニアリングを学ぶ

【AIビルダーの現場】一人で回す名簿サイト 作る役と記憶なしの検査役を分ける

カナダ・ウォータールーのプロダクトエンジニアTorrin Leonard氏は、地域のスタートアップ名簿Builderlooを一人で運営し、コードはほぼすべてClaude Codeが書く。変更は短い作業指示書から始まり、本人が「はい」と言うまで何も作らない。作る役のAIとは別に、作った経緯を知らない2つのAIが検査し、指摘が再現するまで何も変えない。数字はすべて本人の申告だ。

記事の内容を自社でどう進めるか、内容が固まっていない段階でも相談できます。仕事の相談

毎週 1 回、その週の記事から 5 本と実践の 1 本を選んでメールで届けます。ニュースレターを購読する(無料)

【AIビルダーの現場】一人で回す名簿サイト 作る役と記憶なしの検査役を分ける

カナダのウォータールーにいるプロダクトエンジニアのTorrin Leonard氏が、地域のスタートアップ名簿Builderlooを一人で運営する仕組みを自身のブログで公開した。コードはほぼすべてClaude Codeが書き、本人の時間の大半は「何を作るかを決めることと、出てきたものの確認」に使う。変更は短い作業指示書から始まり、本人が「はい」と言うまで何も作らない。作ったAIとは別に、作った経緯を知らない2つのAIが検査する。数字はすべて本人の申告で、外部の検証はない。

名簿は一人とAIで回る

Builderlooには、本人の申告で851社、求人121件、イベント84件が載っている。サーバーのスケジューラーが、スタートアップの集まり4つ、ニュース18媒体、イベントのカレンダー5つ、載っている各社の採用ページとブログを読む。地域のIT企業かどうか判断できないものは、本人の確認待ちになる。

全体は同氏が自作した仕組みaweftの上で、メモリ1GBのサーバー1台で動く。以前は12GBほどの環境でブラウザーを動かして各社のサイトを読んでいたが、5月に普通のHTTPの取得とHTMLの解析を試した。本人の計測では、載っていた493社のうち98.8%のサイトはそれで中身を読めたという。

「はい」と言うまで作らない

変更は、まずClaudeとの会話から始まる。Claudeは「なぜそれが要るのか」「終わった時に何が成り立っているべきか」を聞く。数分の計測で決まることは、先に測る。そのうえで、一度読めば可否を決められる短い作業指示書を書く。書くのは、作るもの、本人の判断とその答え、範囲外のこと、完了の条件の4つだ。

本人が「はい」と言った後、作る役のエージェントが指示書の分だけを作る。テストを書いた後、自分のコードを1行ずつわざと壊し、テストが気づくかを確かめる。作業の終わりには短い記録が残り、やり残しは本人のやることリストに載る。

どう作るかはエージェントが決める。サイトの振る舞いを変えることは本人が決め、どちらに当たるかは指示書に書いておく。たとえば、集めた連絡先を見られるのは管理者だけにすると本人が決めた。

経緯を知らない2つの目

検査は、作った経緯の記憶を持たない2つのエージェントが受け持つ。1つは文書だけを渡され、実際に使ってみる役だ。もう1つは、壊すことが仕事の役だ。本人は2つの指摘を読んでから、初めてcommitする。

作業指示書456番では、公開ページをすべてサーバー側で描き、データが変わるまで保存する形に移した。作る役はOpusが2つ、検査役は文書だけを見るSonnetと、壊しにかかるOpusだった。検査役の1つが、同時に描くページの数に上限がないことを見つけた。400種類のURLを送ると、6秒でメモリが765MBから1.76GBまで増えた。サーバーのメモリより多い量だ。別の変更では、管理用の受信箱で送り主の欄を偽ると、返信の宛先を選べてしまうことも検査役が見つけた。

一方で、AIの報告も間違える。aweftへの移行では3つの作る役が分担したが、どの報告にも、一部に大事な誤りがあった。空のデータベースでしか起きない競合を見落とした報告もあった。同氏が「指摘が再現するまで何も変えない」と書くのはこのためだ。

失敗も数字で公開する

6月の判定では、文字の少ないトップページを根拠に、地元のイベント会社を「アウトドアの会社」として外していた。9月30日にそれに気づいた同氏は、そのとき外した467社を1社に1つずつSonnetのエージェントで調べ直した。かかったのは約16分だ。地域とのつながりがあった88社と、スタートアップの集まりに載っていただけの32社の、合わせて120社を戻し、名簿は699社から819社になった。

週刊のメールThe Weeklyでは、自動化が裏目に出た。9月にサーバーのジョブで自動で書かせると、下書きは誰も書いていないような文になり、前の週の項目を繰り返した。同氏は「『声』がまるでおかしい」と書き残した。10月12日にClaude Codeに戻し、送る前に本人が下書きを読む形にした。

守られないルールは後から検査

CLAUDE.mdやskillに書いたルールが守られない悩みには、別の記事で触れている。手元のCLAUDE.mdは11個、skillは32個あり、CLAUDE.mdやAGENTS.mdを直したcommitは304回に上る。それでも、コメントに比喩を入れないよう書いても、Claudeは入れてくる。そこで同氏は、commitの後に動くフックで、新しいコメントやcommitのメッセージを調べるようにした。ダッシュとセミコロンは正規表現2つで見る。比喩と平易さは、文を出さずに判定だけを返すTypeSafe製の小さなモデルJevに聞く。0.7を超えたものはClaudeに戻し、次のcommitで直させる。しきい値の近くはClaudeが判定を残し、本人がそれを見てしきい値を調整する。今はまだcommitを止めない。

Builderlooの土台はaweftだ。同氏は紹介の記事で、「毎回まっさらな状態でrepoを読むエージェント」を読み手に想定したと書く。多くのテスト、厳しいlint、手本、何を直せばよいか分かるログ、ビルドに入れたアクセシビリティ(WCAG)とセキュリティ(ASVS)の検査を1か所にまとめた。MITライセンスで、決めたこと1つにつき1つの設計メモが250以上ある。

編集部の見方

編集部は、この事例で最も比べるべき点は、検査役に作った経緯を渡さない所にあると見る。作業指示書456番では、そうした検査役の1つが、400種類のURLを送ると6秒でメモリが765MBから1.76GBまで増えることを見つけた(数字は本人の申告。経緯を渡さなかったから見つかったかどうかは編集部の読み)。自分の運用で試すなら、同じ変更に、作ったAIと同じ会話での検査と、経緯を渡さない別のAIの検査を当て、再現した指摘の数を比べるとよい。ただし、変更が数行で済む小さな運用では、この差は見えにくい。

出典

に確認(日本時間)

  1. 自身のブログ(torrin.me)
  2. 別の記事(torrin.me)
  3. 紹介の記事(torrin.me)

この記事をシェア

この記事は役に立ちましたか