gists

Ralph 自律開発エージェントに関する議論

Q1: 要件定義を与えると、以降は人間の承認なしにAIが自律的に開発を完了させる、という理解で合っている?

はい、その理解で概ね合っています。

このCLAUDE.mdは「Ralph」という自律エージェントの指示書で、以下のループを回す仕組みです:

  1. prd.json(要件定義)を読む
  2. passes: false のストーリーを1つ選んで実装
  3. 品質チェック → コミット → PRD更新 → progress.txt追記
  4. 全ストーリーが passes: true になるまで繰り返し(/loop 等で次イテレーションが起動)

つまり PRDを与えれば、人間の承認なしに1ストーリーずつ消化して全完了まで自走する 設計です。ただし実際の自律性は、実行ハーネス側(loop間隔、権限モード、ツール承認設定)に依存します。permission mode が acceptEdits 等でないと各ツール呼び出しで承認を求められます。


Q2: markdown の 1000 行の要件定義書を与えたい場合、どうすればいい?

CLAUDE.md は prd.json を読む前提になっているので、以下のいずれか:

A. PRDをJSONに変換する(推奨)

1000行のmarkdown要件定義を、ユーザーストーリー単位で分解した prd.json に変換:

{
  "branchName": "feature/xxx",
  "stories": [
    {"id": "US-001", "title": "...", "priority": 1, "description": "...", "acceptanceCriteria": [...], "passes": false}
  ]
}

元のmarkdownは requirements.md として残し、各ストーリーの description から参照させる形が扱いやすいです。

B. CLAUDE.mdを書き換える

prd.json を読む箇所を prd.md に変え、かつ「passes:false のストーリー選定」ロジックをmarkdown上のチェックボックス(- [ ] / - [x])ベースに変更。ただしRalphの既存フローを壊すのでAほど無難ではない。

ポイント

分解作業自体もClaudeに投げられます(「このmarkdownをprd.jsonに変換して」)。


Q3: つまり要件定義は n-story から成るものみなした上で、story のつくりかたが重要?

はい、その通りです。Ralphの自律ループは「1イテレーション = 1ストーリー消化」が単位なので、ストーリー分割の質がそのまま成果物の質になります

重要なポイント:

要件定義書自体を捨てる必要はなく、requirements.md として残して各ストーリーから「§3.2 参照」のようにリンクさせると、AIが詳細を参照しつつ作業できます。ストーリーは 作業単位のインデックス、markdownは 仕様の本体、という役割分担です。


Q4: ストーリーと受け入れ基準はこっちで書かないといけないわけだ?

原理的には「こっちで書く」必要はありますが、手書きする必要はありません

選択肢

1. AIに分解させる(現実的)

1000行のmarkdownを投げて「これをprd.jsonに分解して。ストーリー粒度は1コミット単位、受け入れ基準は機械検証可能に」と指示。草案が出たら人間がレビュー・修正。

2. 全部手書き(非現実的)

1000行の要件に対してストーリー20〜50個を手で書くのは重労働。

3. ハイブリッド(推奨)

なぜ人間レビューが必要か

Ralphは passes: true を自分で付けます。受け入れ基準が曖昧だと「AIが自己採点で合格にして次へ進む」事故が起きる。ここが自律開発の一番脆い箇所なので、受け入れ基準だけは人間が目を通すべきです。ストーリー本文は雑でも、基準が堅ければ自走します。