はじめに:自律性が高いほど、依頼の設計が成果を決める
第1回で見たように、Devinの強みは自律性です。しかし自律性が高いほど人間の手を離れる時間も長くなり、何を任せ・どう検証するかが成果物の質を左右します。
今回のテーマは、その「依頼の設計」です。ひとつの目安になるのが、「1回の依頼で80点」という水準です。80点とは、人間が軽く手直しすれば完成に届く水準を指します。この水準に届けば、人間はレビューのボトルネックから外れ、1人で複数のDevinを並行して動かせます。届かなければ、追加の依頼と手直しを繰り返し、結局は人間がボトルネックのままになります。本稿では「商品一覧APIの追加」を題材に、この80点を引き出す依頼のしかたを具体化していきます。
その鍵となる2本の柱が、「何を作るか」を定める仕様駆動と、「その通りに作らせる」ハーネスです。今回は、まず仕様駆動を、続いてプロンプト・コンテキストからゲートまでを束ねるハーネス設計を解説します。
仕様駆動:何を作るかを定める
第1回の末尾で予告した「プロンプト設計」を突き詰めると、行き着くのは「何を作るかを正確に伝える」という一点です。あいまいな指示では合否基準が人間の頭の中にしかなく、結果が人のスキルに依存します。仕様駆動はこの「何を作るか」を仕様として明文化し、それを起点に計画・成果物・フィードバックを駆動する考え方です。仕様はDevinに与える正しいゴールであり、後段で「仕様通りにできたか」を判定する基準にもなります。
仕様の3要素:要件・設計・受入基準
仕様は分厚い設計書ではなく、要件(What:何を作るか)・設計(How:どう作るか)・受入基準(Done:どこまでで完成か)の3要素を明文化したものです。
- 要件(What):目的・対象ユーザー・主要シナリオ。「何を/誰のために/どんな場面で」が埋まれば十分です。抜けると、Devinはタスクの意図を取り違え、機能はあっても価値のない実装に行き着きます。
- 設計(How):作り方(インターフェース・エンティティ・処理シーケンス)と、守るべき制約(変えてはいけない既存仕様)。抜けると、Devinは欠けた前提を推測で埋め、組織の方針や暗黙の制約から外れます。
- 受入基準(Done):通すべきテスト・満たすべき動作・チェック項目。「どこまでできたら完成か」を具体的に書きます。抜けると、後段のハーネス(テスト・CI・レビュー)が機能せず「動いた」ことしか確認できなくなります。
特に受入基準は着手前に固めるのが重要です。Anthropicも、長時間タスクのハーネスで生成役と評価役がコードを書く前に「完成(Done)の条件」を合意してから着手する設計を採用しています[1]。仕様駆動開発(SDD)の実装であるAWSのKiroやGitHubのSpec Kitは3つ目に実装タスクの分解を置きますが、本稿が受入基準を置くのは、分解はDevin自身が行うからです[2]
[1] Anthropic「Harness design for long-running application development」(Anthropic Engineering Blog)
[2] AWS「Kiro」は requirements.md/design.md/tasks.md、GitHub「Spec Kit」は spec/plan/tasks で構成する。
仕様は客観的に判定できる形で書く
3要素はいずれも、人によって解釈が分かれない客観的な形で書くことが鍵です。要素ごとに、適した書き方を示します(以下、「商品一覧APIの追加」というタスクを題材に例示します)。
表1:3要素を客観的に書く例
| 要素 | 書き方 | 例 |
|---|---|---|
| 要件(What) | チェックリスト |
□ 商品一覧を1ページ20件で表示 □ 30件超でページネーションが出る □ 未ログインでも閲覧できる |
| 設計(How) | 出力形式・インターフェース定義 | GET /products?page=N&size=M、レスポンスは { items: [{ id, name, price }], totalCount: number } |
| 受入基準(Done) | テスト | 新規E2Eテスト「商品30件登録→2ページ目に10件表示」がパス/既存ユニットテスト全件パス |
Ask Devinを活用して、リポジトリーの情報から仕様のたたき台をDevinに作らせるのもいいでしょう。ただし要件と受入基準は「何が欲しいか/何をもって完成とするか」という人間の意思決定です。Devinに下書きさせても、最終判断は人間が下します。
仕様が具体的であるほど、書いた後の検証は確かな合否基準を持てます。まず仕様を定めることが出発点です。次節からは、この仕様をDevinに守らせる仕組み、すなわちハーネスを見ていきます。
