4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

え!? 一週間でWebサービスを!? 出来らあっ!! 全自動開発のすゝめ

4
Posted at

……と啖呵を切ったものの、正確には12日かかりました。タイトル詐欺です。すみません。

でも「人間がほぼコードを書かずに、AIエージェントの並行開発だけで、決済・2FA・AI機能つきのWebサービスを本番リリースまで持っていけるのか?」という実験としては、十分に「出来らあっ!!」と言える結果になったので、実録としてまとめます。

作ったもの

scrum for freelance(https://scrumfreelance.com)
というフリーランス向け案件マッチングサービスです。
サービス名の「スクラム」は、ラグビーのスクラムから。
このサービスでは、一度マッチングした相手とは、以後マージン0円で何度でも契約できます。つまり案件にひとつ参画するたび、「次からは直接組める顧客」がひとり増える。働けば働くほど、がっちり組める相手が積み上がっていく——参画した案件そのものが、フリーランスの資産になる。そんな働き方への願いを込めて名付けました。
※アジャイル開発手法の「スクラム」とは関係ありません。

  • 法人が案件を出し、フリーランスが受ける1方向のマッチング
  • 手数料は「新しい相手との初回マッチング」の1回だけ。同じ相手との継続契約・単価アップ・正社員登用に中抜きは一切発生しない(ここが既存エージェントへのアンチテーゼ)
  • 面談調整・契約・取引条件明示書面・レビューまでサイト内で完結
  • AI機能(経歴書インポート・経歴分析・自己分析・案件マッチ分析)つき

01-lp.png

開発体制: 人間1人+AIたくさん

体制はこうです。

人間(私)
  └─ Claude Code メインセッション ← 私はほぼこいつとしか話さない
       ├─ サブエージェントA(worktreeでBE実装)
       ├─ サブエージェントB(worktreeでFE実装)
       ├─ サブエージェントC(worktreeで別機能)
       └─ …最大6レーン並行

私がやったことは本当にこれだけです。

  • 「アバター機能いらない」「チャット欄の高さを可変にして」みたいな要望を日本語で投げる
  • AWS・Stripe・Cloudflareなどのダッシュボードをポチポチする(スクショを貼ると次に押すボタンを教えてくれる)
  • 途中で出てくる意思決定に答える(料金モデルどうする?とか)

07-ai-consulting.png

コードは1行も書いていません。エディタすら開いていません。進捗はAgent viewで並行エージェントの動きを眺めているだけ。控えめに言って観戦スポーツです。

00-agent-view.png

こんな感じで、メインセッションがレーン表を出しながら並行エージェントを回しています。

12日間の数字

項目 数字
期間 2026-07-02 〜 07-13(12日)
チケット(issue) 182枚
マージされたPR 183本
コミット 405
Rails側 アプリ19,900行+テスト30,700行(48モデル)
Next.js側 TypeScript 51,700行・48ページ
テスト 2,177 examples, 0 failures を常時維持
人間が書いたコード 0行

実装した主な機能:

  • 認証(cookie session+TOTP 2FA+アカウントロック)
  • 案件/フリーランス検索(AND/OR・保存検索)
  • 面談調整(Google Meet連携)
  • チャット(機能カードを時系列インライン表示)
  • 契約・取引条件明示書面PDF(prawn)
  • Stripe Checkout決済(成果報酬+月額サブスク)
  • 評価・通報・ブロック
  • AI経歴書インポート/分析/自己分析(グラフつき)
  • admin管理画面
  • Sentry・レート制限・PIIスクラビング

02-freelancer-search.png

03-freelancer-detail.png

04-chat-timeline.png

構成は Rails(APIモード)+Next.js(App Router)のリポジトリ分離です。
BEとFEを別リポジトリにしたのは並行開発と相性が良く、「BEのPRをマージ→FEのエージェントに仕様を渡して追随」というリレーが綺麗に回ります。
チケット管理は GitHubのカンバン(Projects) で、issueをTodo→In Progress→Doneで流すだけの素朴な運用ですが、AIが自分でボードを更新するので常に実況状態になります。

インフラは Vercel+Render+RDS(MySQL)+Cloudflare R2+SES+Stripe。ジョブキューはRedisを契約せずSolid Queue(MySQL相乗り・追加費用0円) にしました。

回った理由は「チケット駆動+並行worktree+全テストゲート」

ただ「作って」と言うだけでは12日では終わりません。効いたルールは5つです。

1. どんな小さな修正も先にチケットを切る

「ボタンの文言直して」レベルでもGitHub issueを起こしてから着手。これはAI側のルールとして覚えさせました。並行開発の交通整理と、後から「何をやったか」が全部追える監査ログを兼ねます。

2. エージェントごとにgit worktreeを分離

各エージェントは専用worktree+専用ブランチ+専用テストDBで作業します。メインの作業ツリーと.envには触らせない。これで6レーン並行しても互いを壊しません。

3. マージは1本のレーンに直列化

実装エージェントはPRを作るところまで。マージはメインセッションが1本ずつレビューして行い、コンフリクト解消もそこで一元化します。並行開発の「schema.rbが毎回ぶつかる」問題はここで吸収しました。

4. 全テストgreenでなければマージしない

Railsのspecはこの記事を書いている時点で2,177例。エージェントは毎回、全specを専用DBで回してgreenを確認してからPRを出す縛りです。並行開発は「隣のレーンが土台を変える」ことが日常なので、これがないと確実に崩壊します。

5. 実機確認をサボらせない

tsc/lint/buildが通っても画面は壊れます。FE系のエージェントには必ずdevサーバーを起動してPlaywrightでシナリオ確認(スクリーンショット目視まで)させました。「seedユーザーでログイン→検索→カード→詳細→グラフ描画確認」まで通ってからPR、です。

しくじり実録集

全自動とはいえ、事故はあります。全部その日のうちにリカバリできましたが、共有価値があるので晒します。

  • R2のシークレットキーをチャットに貼ってしまった(私が):
    • AIに即指摘され、その場でキーを失効・再発行。以後「シークレットはチャットに貼らずダッシュボードで直接ENVへ」がルール化されました。人間が一番危ない
  • 本番でメモリ超過→17分周期の再起動ループ:
    • Render 512MBに対して、puma(クラスタモード)+Solid Queue同居でRailsプロセスが5本立っていた。シングルモード化+MALLOC_ARENA_MAX=2+jemalloc導入+インスタンス増強で解決
  • 本番デプロイが即死:
    • Solid Queueの必要DB接続数(5)>プール(3)でpumaごと落ちる。プールを「Webスレッド数+ジョブワーカー分」で自動計算するよう修正
  • 2FAが通らない:
    • TOTPの許容ドリフトが±30秒で厳しすぎた+設定画面を開き直すとシークレットが再発行されて古いQRが無効化される罠。冪等化して解決
  • 掲示板に「0808157タタタ0804 こちらまで連絡ください」が書けてしまった:
    • 数字の間にノイズを挟む難読化電話番号を、正規表現の強化(ノイズ吸収+誘導フレーズ辞書)で遮断
  • ページ遷移が遅い→調べたらインフラが三大陸横断だった:
    • SSRはVercelの既定リージョン(米国東海岸)、APIはRender(シンガポール)、DBは…なぜかシドニー(SESを東京のつもりでシドニーに作った前科の再犯です。リージョン選択、人間が一番信用できない)。1リクエストで太平洋とタスマン海を何往復もしていました。AIに実測させたら即特定され、Vercelの関数リージョン固定+RDSのシンガポール再作成で全部同居に。APIが軒並み数百msまで改善しました

「AIに全部任せて怖くないの?」

一番聞かれそうな点ですが、体感は逆で、人間の趣味コーディングより堅いです。

  • テスト30,700行(アプリコードの1.5倍)が常時green
  • クレジット取引セキュリティ対策協議会のチェックリスト(Stripe本番申告)に合わせて、アカウントロック・レート制限・admin多層防御・PIIスクラビング(Sentryに個人情報を送らない)まで実装
  • そしてマージボタンの前には必ず人間(私)の目とメインセッションのレビューが挟まる

「AIが勝手に本番を壊す」のではなく、「AIが用意した根拠(テスト・実機確認・設計判断の明文化)を人間が高速に承認していく」体験に近いです。

プラン・モデル・並列数のリアル(ここ重要)

この記事で一番実用的なセクションかもしれません。トークンとの戦いの話です。

一週間で作りたいならMax 20x一択

私は最初ケチって下のプランで始めて、2日でFable 5の使用枠を使い切り、泣く泣くMax 20xにアップグレードしました。並行エージェントを回すスタイルは想像の数倍トークンを食います。後から気づいたのですが、途中でセッション制限に引っかかって開発が数時間止まる損失を考えると、最初からMax 20xで始めた方が最終的には安くて楽です。短期集中でやるなら特に。

モデルは基本Opusでいい

メインセッションにFable 5を使うとトークン使用量が跳ね上がります。体感、実装作業の9割はOpusで十分。Fable 5は「ここぞの設計判断」だけに温存するのがコスパ的に正解でした。

並列数は使用量ページと相談して決める

サブエージェントを6並列とかで回すと、トークンが溶ける音が聞こえます(比喩)。私は常に使用量ページを開きっぱなしにして、残量を見ながら「今日は何並列で回すか」を決めていました。使用量に余裕がある日は6レーン、心許ない日は2〜3レーンに絞る、みたいな運転です。

bypass permissionsをonにする

デフォルトだとエージェントがコマンド実行のたびに許可を求めてくるので、目を離した隙に「実行していいですか?」で止まっていて、戻ってきたら何も進んでいない…ということが起きます。bypass permissionsをonにしておけば夜中も勝手に進みます。もちろんこれは「シークレットの扱い・触っていい場所」のルールを先に覚えさせているのとセットで。丸腰でやるのは推奨しません。

かかったお金

  • Claude Code: Max 20xプラン(前述のとおり、短期集中ならこれ一択)
  • インフラ: Render+RDS+Vercelで月1万円前後。R2・SES・Sentry・Solid Queueはほぼ0円
  • ドメイン: 年10ドルくらい

人件費換算で考えると、まあ、壊れた価格です。

これから試す人へのコツ

  1. 要望は「何がしたいか」で伝える。実装方法はAIに設計させて、判断だけ返す
  2. ルールは覚えさせる(チケット駆動・シークレット取り扱い・テストゲート)。一度覚えると全レーンに効く
  3. 並行させるなら分離(worktree・テストDB・ポート)。ここをサボると溶ける
  4. マージと意思決定は直列。並行するのは実装だけ
  5. ダッシュボード作業(AWS/Stripe等)は人間の仕事。スクショを貼れば手順は全部ナビしてくれる

宣伝(すみません、2割だけ)

そんなわけで、できあがった scrum for freelance はこちらです。

  • フリーランスの方: 手数料は初回マッチングの1回だけ。継続契約・単価交渉・正社員化に中抜きは一生かかりません。AI経歴書インポート・自己分析つき → https://scrumfreelance.com
  • ちなみに白状すると、フリーランス側は本当は全部無料にしたかったんです。ただAI機能(経歴書インポート・自己分析・案件マッチ分析)だけは、裏でLLMを呼ぶたびに実費が飛んでいくので、無料開放して連打された瞬間に私が死にます。というわけでAI機能だけPro(月980円・回数制限つき)にさせてもらいました。検索も応募もチャットも契約も、AI以外は全部無料です。「AI機能どんなもんか試してみたい」という方は、1ヶ月だけ課金してすぐ解約でも大丈夫です(期間末まで使えます)。多分いないと思いますが。笑

05-self-analysis.png

06-plan.png

発注したい法人の方: 成果報酬のみ(成約まで0円)。まだ生まれたてのサービスなので、初期ユーザーとして一緒に育ててもらえたら嬉しいです!!

また、使ってみてこんな機能があったら嬉しいなどあれば要望掲示板を実装してあるのでそちらからあげてください!🙏

開発の続きはX(@e8GU641fyp8wtVS)でbuild in publicしていきます。「この機能はどう作ったの?」があればコメントで聞いてください。だいたい全部「AIに聞いたら作ってくれた」が答えなんですが、プロンプトとルール設計の話はできます。

出来らあっ!!


追伸: 実はこの記事もClaude Codeに書かせていることは秘密です。。。笑
(チケット数もPR数もテスト数も、全部本人(?)がgitとGitHubから集計した実測値なので、ある意味いちばん正確な執筆者ではある)

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?