はい、その理解で概ね合っています。
このCLAUDE.mdは「Ralph」という自律エージェントの指示書で、以下のループを回す仕組みです:
prd.json(要件定義)を読むpasses: false のストーリーを1つ選んで実装passes: true になるまで繰り返し(/loop 等で次イテレーションが起動)つまり PRDを与えれば、人間の承認なしに1ストーリーずつ消化して全完了まで自走する 設計です。ただし実際の自律性は、実行ハーネス側(loop間隔、権限モード、ツール承認設定)に依存します。permission mode が acceptEdits 等でないと各ツール呼び出しで承認を求められます。
CLAUDE.md は prd.json を読む前提になっているので、以下のいずれか:
1000行のmarkdown要件定義を、ユーザーストーリー単位で分解した prd.json に変換:
{
"branchName": "feature/xxx",
"stories": [
{"id": "US-001", "title": "...", "priority": 1, "description": "...", "acceptanceCriteria": [...], "passes": false}
]
}
元のmarkdownは requirements.md として残し、各ストーリーの description から参照させる形が扱いやすいです。
prd.json を読む箇所を prd.md に変え、かつ「passes:false のストーリー選定」ロジックをmarkdown上のチェックボックス(- [ ] / - [x])ベースに変更。ただしRalphの既存フローを壊すのでAほど無難ではない。
passes 判定が主観的になる分解作業自体もClaudeに投げられます(「このmarkdownをprd.jsonに変換して」)。
はい、その通りです。Ralphの自律ループは「1イテレーション = 1ストーリー消化」が単位なので、ストーリー分割の質がそのまま成果物の質になります。
重要なポイント:
passes: true を機械的に判定できる受け入れ基準が必要(テストが通る、型が通る等)要件定義書自体を捨てる必要はなく、requirements.md として残して各ストーリーから「§3.2 参照」のようにリンクさせると、AIが詳細を参照しつつ作業できます。ストーリーは 作業単位のインデックス、markdownは 仕様の本体、という役割分担です。
原理的には「こっちで書く」必要はありますが、手書きする必要はありません。
1000行のmarkdownを投げて「これをprd.jsonに分解して。ストーリー粒度は1コミット単位、受け入れ基準は機械検証可能に」と指示。草案が出たら人間がレビュー・修正。
1000行の要件に対してストーリー20〜50個を手で書くのは重労働。
Ralphは passes: true を自分で付けます。受け入れ基準が曖昧だと「AIが自己採点で合格にして次へ進む」事故が起きる。ここが自律開発の一番脆い箇所なので、受け入れ基準だけは人間が目を通すべきです。ストーリー本文は雑でも、基準が堅ければ自走します。