はじめに──ノリでプロンプトを打つ「Vibe Coding」の限界

CursorやClaude Code、GitHub CopilotといったAIコーディングツールの登場により、ソフトウェア開発のスピードは劇的に向上しました。2025年初頭、元OpenAIのAndrej Karpathy氏が提唱した 「Vibe Coding(雰囲気で自然言語指示を与え、コードを書かせる)」 と呼ばれる手法1は、世界中の開発者に「思考のスピードでソフトを作る」体験をもたらしました。

しかし、大規模なリファクタリングや複雑なプロダクト開発において、Vibe Codingをそのまま続けようとすると、すぐに強烈な壁に突き当たります。

  • プロンプトを何度打ち直しても、AIが勝手な推測をして別箇所を破壊してしまう
  • 修正のたびに人間の目で差分を確認し、エラーが出るたびに手動でプロンプトを入力し直す徒労感
  • 曖昧な指示の繰り返しが招く、コードの肥大化・構造の破綻・入力バリデーション欠落などのセキュリティリスク

ここで浮き彫りになるのは、 「人間(開発者)自身が指示出しと確認のボトルネック(Human in the Loop)になっている」 という事実です。今、AI開発の現場では、プロンプトの「言い回し」を磨く段階を超えて、新しい開発手法への移行が進んでいます。

Step 1: 指示(Prompt)から文脈(Context)へ

「AIが思い通りのコードを書かない」という悩みの多くは、プロンプトの工夫不足(Prompt Engineeringの限界)ではなく、AIに与えている前提情報(Context)の不足に起因しています2

「〜のプロエンジニアとして振る舞って」といった単発のプロンプトテクニックをいくら施しても、プロジェクト固有のディレクトリ構造、依存関係、セキュリティ要件、命名規約を知らなければ、AIは勝手な推測(ハルシネーション)をせざるを得ません。

そこで登場したのが 「Context Engineering(コンテキストエンジニアリング)」 です。コードを書かせる前に、以下のような構造化ドキュメントをあらかじめリポジトリ内に配置し、AIの行動範囲と前提ルールを明確に規定します。

  • AGENTS.md: エージェントに対する行動規範・実行可能なコマンド・禁止事項の定義
  • PRD(製品要件定義): 作成すべき機能の仕様と境界条件
  • アーキテクチャ・コーディング規約: ディレクトリ配置ルールやテスト手法

AIに「どう書くか」をその都度指示するのではなく、「守るべき制約(Context)」を事前に与えることで、開発の一貫性は一気に高まります。

Step 2: 文脈(Context)から自律実行(Loop)へ

コンテキストを整えた次のステップは、人間が手動でプロンプトを打ち続けるのをやめ、AIを自律的かつ安全に繰り返し実行させる仕組み── 「Loop Engineering(ループエンジニアリング)」 への移行です3

Towards Devの解説記事によると、Claude Codeの制作者であるBoris Cherny氏は 「もうClaudeに直接プロンプトを打つことはない。プロンプトを打つループを回している。私の仕事はループを書くことだ」 と述べており、OpenClaw開発者のPeter Steinberger氏も同じ姿勢を示しています3

AI開発における「ループ」は、以下の2つの層に分かれます。

  1. Inner Loop(内側ループ): AIモデル自身の思考・ツール実行サイクル(Plan $\rightarrow$ Act $\rightarrow$ Observe)。Claude Codeなどのツール内部で自動実行されます。
  2. Outer Loop(外側ループ): 人間が構築する自動化システム。AIの実行を1つのステップとして扱い、その前後で検証と状態管理を行います。

Outer Loopを構成する5つの要素

堅牢な Outer Loop は、次の5つの要素で設計されます3

  • Trigger(起動): CronやGit Hook、手動スクリプトなどの実行契機
  • Frame(枠組み): 課題のコンテキスト化と対象タスクの抽出
  • Run(実行): エージェント CLIの呼び出し
  • Verify(検証): テストやビルドによる機械的チェック
  • Record(記録): 成否に応じたコミット、ログ保存、次タスクへの状態更新

最重要鉄則:Verification Split(検証の分離)

Loop Engineering において最も重要な原則は、 「成果物を生成したAI自身に、合格判定を行わせない(Verification Split)」 ことです3

AIは原理的に自身の出力に対して過剰な自信を持つ傾向があります。「修正が完了しました」というAIの自己申告を信用せず、npm testpytest といった 非AIの機械的な終了コード(Exit Code 0) だけを成功判定基準として採用します。

Step 3: 今すぐ試せる「小さなOuter Loop」の実践パターン3選

「Loop Engineering」と聞くと、複雑なマルチエージェントフレームワークが必要に思えるかもしれませんが、決してそんなことはありません。20行程度のシェルスクリプトから始めることができます。

前述した Outer Loop の5要素(Trigger / Frame / Run / Verify / Record)を組み込んだ、明日から試せる3つの実践パターンを紹介します。

パターン1: 1ファイルずつの段階的リファクタリング(Goal Loop)

JavaScriptからTypeScriptへの移行や、Deprecated関数の置き換えを1ファイルずつ安全に行うループです。失敗時は git restore で対象ファイルのみを元に戻すことで、他の作業領域を破壊しない安全性を担保します。

#!/bin/bash
# 1ファイルずつ段階的に型定義を追加する Goal Loop 例

for file in $(cat unmigrated_files.txt); do
  echo "--- Processing: $file (Frame) ---"
  
  # AIの実行 (Run)
  claude -p "Migrate $file to TypeScript. Do not change public API signatures."
  
  # 機械的検証 (Verify): tsc と test の Exit Code 0 を確認
  if npx tsc --noEmit && npm test; then
    echo "SUCCESS: $file"
    git commit -am "refactor: migrate $file to TS" # 記録とコミット (Record)
    sed -i '' "/^$file$/d" unmigrated_files.txt     # キューの更新
  else
    echo "FAILED: $file. Rolling back safe..."
    git restore "$file" # 対象ファイルのみを安全にロールバック (Record)
    echo "$file" >> failure_log.txt
  fi
done

パターン2: テスト駆動の自動バグ修正(Hook / Goal Loop)

落としているテスト(Failing Test)のスタックトレースをAIに渡し、テストがグリーンになるまで再試行させるループです。

  • Trigger / Frame: pytest の失敗ログからスタックトレースを抽出。
  • Run / Verify: AIに最小限の修正を行わせ、pytest path/to/test.py の Exit Code をチェック。
  • Record / Safety: 最大3回(Hard Cap)試行しても成功しない場合は、git restore . で変更をすべて破棄し、エラーログを残してエスカレーションします。

パターン3: 夜間CronによるLintエラー順次解消(Cron Loop)

毎晩Cronで自動起動し、コードベース内のLint警告を1件ずつ解消してプルリクエストを作成する運用例です。

  • Trigger: 毎晩午前2時のCronジョブ。
  • Frame: eslint の警告一覧から対象ファイルを特定し、既存の同名PRが存在しないことを確認した上で git checkout -b fix/lint-$file を作成。
  • Run / Verify: AIがLint修復を実行し、npx eslint および npm test が Exit Code 0 で通過するか検証。
  • Record: 検証成功時のみ git commitgh pr create を実行し、失敗時はブランチを破棄します。

まとめ──AI時代におけるエンジニアの本当の役割

AIネイティブ時代の開発において、エンジニアの価値は「プロンプトの言い回しをブラッシュアップすること」ではありません。

  1. Context Engineering: リポジトリの制約・要件・規約(AGENTS.md)を明確に定義する
  2. Loop Engineering: 機械的テスト(Exit Code 0)を軸とした自動検証ループを設計する

プロンプトを打ち続けるキーボード作業員から脱却し、コンテキストと検証ループをデザインする 「システムデザイナー」 へと進化することこそが、これからのAIエンジニアリングの本質です。

まずは手元のプロジェクトで、1ファイルのリファクタリングを回す20行のスクリプトを書くことから始めてみませんか?


Meetsourceでは、AIエージェントを活用した開発プロセスの設計・自動化支援や、安全な品質ガバナンス(AI Operations)の導入支援を行っています。自動化ループの構築や開発プロセスの標準化についてご関心がある方は、ぜひ コンタクトフォーム からお気軽にご相談ください。


Footnotes

  1. Medium - Vibe coding is over. Here’s what comes next (Gaurav Shanker, 2026)

  2. Medium - I Stopped Prompting AI Better. I Started Giving It Better Context. (Wahab Oladimeji, 2026)

  3. Towards Dev - The Creator of Claude Code Doesn’t Prompt It Anymore (Saurabh Singh, 2026-07) 2 3 4