SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine(コードジン) ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

DevinではじめるエンタープライズAI開発

Devinの成果物の質を上げる!「仕様駆動」と「ハーネス設計」~仕様を、書く前に伝え、書いた後に確かめて「1回の依頼で80点」を目指す

DevinではじめるエンタープライズAI開発 第2回

書いた後に確かめるハーネス:ゲートで仕様への適合を検証する

 書く前に仕様を渡しても、Devinが指示どおりに仕上げる保証はありません。この「お願いだけでは届かない部分」を「仕組み」で補うのが、ここから扱う書いた後の確認です。

 書いた後の確認には機械的ゲート推論的ゲートの2つがあり、両者はコストと確実性のトレードオフの関係にあります。機械的ゲートは確実性は高いものの、テストやチェックを書く必要があり準備コストが高いため、まずコストの低い推論的ゲートで観点を試し、繰り返し引っかかる項目だけを確実な機械的ゲートに固定するのが実務的です。

Level 3 機械的ゲート:lint・CI・テストでとめる

 lint・CI・テストは「書いた後」に働くルールベースの仕組みです。たとえば、lint警告ゼロ、静的解析の指摘ゼロ、テストカバレッジ80%以上、というように各観点に閾値を設けます。下回ったときは、エラー内容をもとにDevinが修正・再実行を自律的に回します。

 ただし、すべてのチェックを同じ場所でまとめて回すとムダが出ます。lintは数秒、E2Eテストは数十分。重いチェックを毎回流せば待ち時間が膨らみ、逆に軽いチェックをマージ直前まで遅らせれば初歩的なミスの発見が遅れます。そこでチェックの重さに応じて3層に分けて配置し、軽いものは早く・安く、重いものは通る見込みのあるPRにだけかけます。

表4:3層ゲートの設計

ゲート 実行環境・所要時間 チェック内容 商品一覧APIでの例
PR前ゲート Devin環境・即時 lint・型・ユニットテスト ページネーション計算のユニットテスト
PR時ゲート CI・数分 契約テスト・静的解析・セキュリティスキャン GET /products?page=2&size=10 の契約テスト
マージ前ゲート CI・数十分 結合・E2Eテスト 「商品30件登録→2ページ目に10件表示」E2Eテスト

 PR前ゲートはDevin自身が実施します。lint / test / build のコマンドをDevinに登録(Devinの Blueprints)しておけば、コマンドの失敗時の修正・再実行まで任せられます。

 ポイントは失敗メッセージの書き方です。lintやテストの素の出力をそのまま流すのではなく、CIステップやnpmスクリプトで整形して原因・修正方法・参照先を埋め込めば、DevinはCIのログを読んで自力で修正・再実行できます。たとえば:

$ npm run lint:check
❌ Lint失敗: import順違反 (src/products.ts:3)
  → 自動修正可: `npm run lint:fix` を実行
  → 規約詳細: docs/rules/import.md を参照

 このように「何が起きたか/どう直すか/参照先はどこか」を構造化して埋め込めば、Devinはこれを読んで npm run lint:fix を自動実行し、参照先の規約も踏まえて再修正します。

Level 4 推論的ゲート:AIがAIをレビューする

 機械的ルールでは捉えきれない観点にはDevin Reviewが有効です。REVIEW.mdに書いた規約・アンチパターン等をPRに当てはめ、問題を指摘し、Auto-Fixで直せるものは自動修正します。

 推論的ゲートで重要なのが、実装役とレビュー役を分けることです。同じAIに自分の成果物をレビューさせると甘くなりがちだからです。Anthropicも、エージェントが自己評価で甘くなる傾向を踏まえ、実装役に自己レビューさせるよりも、切り離したレビュー役を懐疑的に振る舞わせるほうが有効だと報告しています[1]

 Devin Reviewに与える観点の入り口は、Devin Reviewが読み取るリポジトリー直下の規約ファイルREVIEW.mdに書きます。プロジェクト固有の規約や避けたいアンチパターンなどを書き、規約本体はdocs/rules/単一情報源(SSOT:Single Source of Truth)として置き、REVIEW.mdからは参照にとどめれば二重管理を避けられます。

仕様駆動とハーネスを1セッションで回す

 仕様駆動でゴールを、ハーネスで仕組みを整えました。最後に、両者を1セッションで協働させる運用サイクルを示します。仕様駆動が判断基準を与え、ハーネスがその基準で自律検証します。

仕様駆動開発サイクル:5ステップ

 要望を仕様に落とし、その仕様を起点に次の5ステップでセッションを回します。

図2:仕様駆動開発サイクル
図2:仕様駆動開発サイクル

 人間は①要望・②仕様作成・④レビュー・⑤改善を担い、③実装からPR作成までをDevin+ハーネスに任せます。

仕様駆動レビュー:「動いた」は合格ではない

 ③で作られたPRでは、変更理由・変更内容・影響範囲・受入基準の検証結果・テスト結果・確認手順を含めて受け取ります。各受入基準に「実行したテスト・確認した動作」を1対1で紐づけさせれば、PRが仕様と検証の対応表になり、レビュアーは読むだけで合否を判定できます。

表5:PRに含める「受入基準 × 検証」対応表(例:商品一覧API)

受入基準 検証方法 結果
商品一覧を1ページ20件で表示 ユニットテスト products.test.ts::list_default_size
30件超でページネーションが出る E2Eテスト pagination.spec.ts::show_when_over_30
未ログインでも閲覧できる 契約テスト products.contract.test.ts::anonymous_access

 画面上は動いて見えても、セキュリティ要件や仕様の抜けは外からは判別できません。だから徹底したいのは、「動いた」は合格ではないという原則です。合格と呼べるのは「受入基準で検証済み」のときだけです。

不合格を検知し、仕様とハーネスを改善する

 ④レビューのフィードバック仕様(受入基準)に紐づけて返します。曖昧なフィードバックではなく「受入基準の5番目が不合格」と具体的に伝えれば、Devinは修正範囲を正確に絞れます。

 そして本質は、検知した不合格を、同じ失敗を繰り返さない改善につなげることです。原因に応じて、仕様かハーネスのどこかを強化します。

  • Devinがタスクの意図を取り違えた → 仕様を具体化する(仕様駆動)
  • 対象ファイルや前提が伝わっていなかった → プロンプトを補う(Level 1)
  • 規約と違う書き方を繰り返す → コンテキストを追記する(Level 2)
  • 本来止めるべき不備が素通り → 書いた後の確認を強化する(Level 3・4)

 失敗は「やり直しのコスト」ではなく、仕様とハーネスを育てる「学習機会」です。

まとめと次回予告

 1回の依頼で80点。その鍵は仕様駆動とハーネスでした。

 仕様駆動で正しいゴールを定め、ハーネスが4段階で一段ずつ支える。プロンプトとコンテキストで仕様を渡し、機械的・推論的ゲートで適合を検証する。仕様が一貫した拠り所であり、これが品質を組織として安定させるDevin活用の基本戦略です。

 ただし、品質を担保できても、何から始めるか・どこまで任せるかの段取りが甘いと、Devin導入は失速します。次回(第3回)では、Devinの任せ方を軸にユースケースを整理します。任せる範囲を段階的に広げながら、明日から始められる具体例と、Claude Code/Codex との違いがどこで決定的になるかを示します。

この記事は参考になりましたか?

連載通知を行うには会員登録(無料)が必要です。
既に会員の方はを行ってください。
DevinではじめるエンタープライズAI開発連載記事一覧
この記事の著者

山河 征紀(ULSコンサルティング株式会社)(ヤマカワ マサキ)

 ULSコンサルティング株式会社  AI駆動開発推進室 室長、AI駆動開発コンサルタント 独立系ソフトウェアハウスでプロジェクトマネージャーとして基幹システム開発を率いたのち、2008年にULSコンサルティングに参画。 ミドルウェア開発とITアーキテクチャ設計を専門とし、インメモリーデータグリッドを...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

名取 美穂(ULSコンサルティング株式会社)(ナトリ ミホ)

 2006年入社以来、上流工程から実装、保守運用まで幅広く手がけてきた。近年は社内各所に点在する知見を収集・整理し、必要な人へ届けるナレッジの普及活動に取り組むほか、DevinをGA直後に自社導入し、Devin Enterpriseの全社展開を主導。現在はDevin管理者として、組織アカウントやワー...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

中野 誠(ULSコンサルティング株式会社)(ナカノ マコト)

 事業会社でのシステム開発を経て、ULSコンサルティングに参画。業務システム刷新、アーキテクチャ設計、スクラム開発、開発プロセス改善などに従事。DDDによるモデリングを得意とし、現場PMとしての実践経験をもとに、技術とプロセスの両面から開発組織の改善を支援している。近年はDevinやClaude C...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/24745 2026/08/03 09:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー