プロダクトのピボットは、めったにスライドから始まりません。たいていは、消えない不満から始まります。
Stitch の場合、不満はレイテンシでした。v1 が完璧に動くときでも、フィードバックサイクルはパイプラインの往復でした。私たちは体裁を整え、ドキュメントを書き、受け入れました。ユーザーはそうしませんでした。Stitch を試して気に入った人たちも、同じ問いを投げ返してきました。「なぜ import 漏れを見つけるのに CI を待たなきゃいけないんだ? 同じ linter を自分のマシンで1秒で走らせられるのに」
私たちが自分に言い聞かせていた答えは「エージェントは CI 環境を必要とするから」でした。書き出してみた正直な答えは「エージェントがそこに住むべきだと私たちが決めたから」でした。この2つは同じではありません。
観察
開発者はすでに AI エージェントをローカルで動かしています。Claude Code はターミナルの中に座っています。Codex もそうです。両方とも認証済みで、設定済みで、開発者が今編集しているリポジトリにすでにアクセスできます。
そのどれも CI 環境にはありません。そこに持っていくには、そのサブセットを下手に再構築しなければなりません。API キー、イメージレジストリ、キャッシュされた依存関係、マウントされたシークレット。開発者がすでに目の前に置いているものを、ランナー上で近似するために、すべてを。
ついに声に出して言ったとき、その転換は恥ずかしいほど単純でした。エージェントをパイプラインに組み込むのをやめる。パイプラインをローカルで、開発者がすでに持っているエージェントの隣で動かす。直接話させる。
これが解き放つもの
「Stitch はローカルで動く」と言った瞬間、v1 の多くの問題が問題ではなくなります。
レイテンシが崩壊する。 ジョブはエディタと同じマシンで動きます。キューに並んだランナーを90秒待っていた lint ジョブが、0.5秒で走ります。検証に3パイプラインサイクルかかっていた修正が、3回のローカル実行で済みます。フィードバックは分ではなく秒で測られます。
API キーが消える。 エージェントは開発者の Claude Code や Codex のサブスクリプションですでに認証済みです。Stitch は自分のキーを必要としません。保存もしません。求めもしません。オンボーディングは npx stitch-agent run claude、それだけです。
既存の CI 設定がそのまま設定になる。 .gitlab-ci.yml や .github/workflows/*.yml に追加するものはありません。Stitch はあなたがすでに書いたファイルを読み、同じジョブをマシン上で動かします。リポジトリに置いているパイプラインが真実のソースのままです。
インフラジョブはリモートのまま。 デプロイ、パブリッシュ、イメージ push、そういうのはラップトップで動かすべきではありません。v2 はジョブ名でそれらを検出してスキップします。verify ジョブはローカルで実行され、CI はインフラジョブを保持します。重複なし、破壊なし。
プライバシーがセールストークをやめる。 ローカル実行とは、ログもソースも修正も、どこかに送る通知チャンネルを設定しない限り、マシンを離れないということです。何かを漏らす Stitch バックエンドはありません。バックエンドが存在しないからです。
これが制約するもの
ローカルファーストはタダの勝ちではありません。Stitch はあなたのツールが動く場所で動く、ということです。バイナリをコンパイルするのに特定の Docker イメージが必要な CI なら、ローカルマシンも同じことをできる必要があります。さもなくばジョブはローカルで検証できません。実際には、典型的な言語ツールチェインでは問題ありませんが、特殊なビルド環境ではつらいです。
また、Stitch は開発者ごとのツールであって、チームサービスではないということです。共有ダッシュボードも、組織全体のメトリクスも、中央制御プレーンもありません。これは意図的なトレードです。トレードは「あなたの CI、あなたのマシン、あなたのエージェント、あなたのペース」。マネージドな fix-on-merge サービスが欲しいなら、Stitch はその形ではありません。
2つ目の洞察
このピボットから出てきた、もっと小さく静かな洞察は、Stitch が誰のためのものかについてでした。
v1 はパイプライン予算のあるチームを想定し続けました。v2 は週末プロジェクトの個人開発者にも同じくらいうまく機能します。コードは気にしません。同じ npx コマンド、ターミナルの中のエージェントという同じ体験、同じゼロ設定。私たちは、欲しかった顧客のために最適化していたのです。Stitch を試して跳ね返ってくるのを何度も見ていた開発者のためではなく。
ローカルファーストは、リポジトリとエージェントをすでに持っている誰でも使えるプロダクトにしました。それはますます、みんなです。
次の記事はもっと小さく技術的なもの、3ヶ月かけて作り、ある午後に削除した分類器についてです。