ralph-json-create-issues について
製品要件文書や計画をRalphのPRD JSONに変換するスキルです。Ralphを使うチーム向けに、ストーリーの分割、依存関係の整理、検証可能な受け入れ条件の確認を行います。
主な機能
- 01指定フォルダーから計画やPRDを検索
- 02作業を1イテレーション単位に分割
- 03依存関係に沿ってストーリーを配置
- 04PRD間の依存関係を検出
- 05受け入れ条件の明確さを確認
活用シーン
- 01承認済みの計画をRalph JSONに変換
- 02大きな機能を小さなストーリーに分割
- 03既存PRDに依存する作業を順序付け
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ richtabor/ agent-skills --skill ralph-json-create-issuesインストール後、Claude Code で/ralph-json-create-issuesを入力して読み込まれたか確認します。
詳細
PRD JSON の作成
Product Requirements Document(製品要件定義書)または計画ファイルを Ralph 用の JSON に変換します。
入力
次の場所を順番に確認します。
.claude/plans/— plan mode で承認済みの計画が保存される場所です。主な入力元です。plans/— プロジェクトレベルの計画ディレクトリです。prds/— plan mode で生成されたものではない、単独の PRD が保存される場所です。
複数の場所にファイルがある場合は、すべて列挙して、どのファイルを変換するかユーザーに確認します。ファイルが1つだけ見つかった場合は、そのファイルを使用します。どの場所にもファイルが見つからない場合は、PRD/計画ファイルのパスをユーザーに尋ねます。
変換ルール
ストーリーの規模(重要)
各ストーリーは、1回の Ralph イテレーション(1つのコンテキストウィンドウ)で完了できる必要があります。
適切な規模:
- データベースのカラムを追加する
- 単一の UI コンポーネントを作成する
- API エンドポイントを1つ追加する
- フォームのバリデーションを追加する
- サーバーアクションを更新する
大きすぎる場合(分割が必要):
❌ "Build entire auth system"
✅ "Add login form"
✅ "Add email validation"
✅ "Add auth server action"
依存関係の順序
ストーリーは優先度順に連続して実行されます。
- データベース/スキーマの変更
- バックエンドのロジック
- API エンドポイント
- UI コンポーネント
PRD 間の依存関係(重要)
Ralph は dependsOn に従って PRD の実行順序を調整します。JSON を生成する前に、次を行います。
- 既存の PRD をスキャンする — すべての
prds/*.jsonを読み、どの機能が存在するか確認します - 依存関係を検出する — Markdown の PRD 内にある次のような参照を探します。
- 明示的:「
elevenlabs-integration.mdを参照」「morning brief に依存」 - 暗黙的:他の機能に言及しているストーリーの注記
- 技術的:別の PRD で定義されたテーブル/API を使用
- 明示的:「
dependsOnを設定する — PRD 名(.json拡張子を除く)の配列
依存関係の検出例:
# In evening-ritual.md:
"See `elevenlabs-integration.md` for shared infrastructure"
→ dependsOn: ["elevenlabs-integration"]
"Depends on morning brief feature for regeneration"
→ dependsOn: ["elevenlabs-integration", "morning-brief"]
依存関係が検出されない場合:
"dependsOn": []
受け入れ条件(重要)
明確で検証可能な条件にする必要があります。
良い例:
- Email/password fields present
- Validates email format
- Shows error on invalid input
- Typecheck passes
- Verify at localhost:3000/login
悪い例:
- Users can log in (vague)
- Works correctly (vague)
- Good UX (subjective)
すべてのストーリーで必須:
- 「Typecheck が成功する」
- 「Lint が成功する」
UI ストーリーで必須:
- 「localhost:3000/[path] で確認する」
出力形式
prds/[feature-name].json を生成します。
{
"projectName": "Feature Name",
"branchName": "ralph/feature-name",
"description": "Brief description",
"dependsOn": ["other-feature", "another-feature"],
"status": "pending",
"completedAt": null,
"userStories": [
{
"id": "US-001",
"title": "Add login form",
"description": "As a user, I want to see a login form so I can authenticate",
"acceptanceCriteria": [
"Email/password fields present",
"Form submits on enter",
"Typecheck passes",
"Lint passes",
"Verify at localhost:3000/login"
],
"priority": 1,
"passes": false,
"notes": ""
}
]
}
プロセス
- 既存の PRD をスキャンする —
prds/*.jsonを読み、依存関係を把握します .claude/plans/、plans/、またはprds/から PRD/計画の Markdown ファイルを読みます- ファイル名から機能名を導き出します(例:
auth-flow.md→auth-flow) - 依存関係を検出する — Markdown 内で他の PRD への参照を確認します
- US-001 から始めて、適切な規模のストーリーに分割します
- 依存関係に基づいて順序を決めます(優先度を設定)
- 明確な受け入れ条件を追加します
prds/[feature-name].jsonに保存します
保存前のチェックリスト
保存する前に、次を確認します。
- 各ストーリーが1回のイテレーションで完了できる
- ストーリーが依存関係の順に並んでいる
- すべての条件に「Typecheck が成功する」が含まれている
- UI ストーリーに「localhost:3000/... で確認する」が含まれている
- 曖昧な条件(「動作する」「良い」「正しい」など)がない
- ストーリー ID が連番になっている(US-001、US-002、...)
-
dependsOnが設定されている(依存関係がない場合は空の配列) - 依存関係の参照先が既存の PRD 名(拡張子なし)になっている
変換後
Created prds/[feature-name].json with [N] stories
Dependencies: [list or "none"]
Branch: ralph/[feature-name]
Run: /ralph-json-start-loop
コメント
Markdown 対応