mcpField
R
ralph-json-create-issues

ralph-json-create-issues

github.com/richtaborエージェントワークフロー7348 回インストール29 週間前に更新
リポジトリ

ralph-json-create-issues について

製品要件文書や計画をRalphのPRD JSONに変換するスキルです。Ralphを使うチーム向けに、ストーリーの分割、依存関係の整理、検証可能な受け入れ条件の確認を行います。

主な機能

  1. 01指定フォルダーから計画やPRDを検索
  2. 02作業を1イテレーション単位に分割
  3. 03依存関係に沿ってストーリーを配置
  4. 04PRD間の依存関係を検出
  5. 05受け入れ条件の明確さを確認

活用シーン

  1. 01承認済みの計画をRalph JSONに変換
  2. 02大きな機能を小さなストーリーに分割
  3. 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 に変換します。

入力

次の場所を順番に確認します。

  1. .claude/plans/ — plan mode で承認済みの計画が保存される場所です。主な入力元です。
  2. plans/ — プロジェクトレベルの計画ディレクトリです。
  3. 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"
依存関係の順序

ストーリーは優先度順に連続して実行されます。

  1. データベース/スキーマの変更
  2. バックエンドのロジック
  3. API エンドポイント
  4. UI コンポーネント
PRD 間の依存関係(重要)

Ralph は dependsOn に従って PRD の実行順序を調整します。JSON を生成する前に、次を行います。

  1. 既存の PRD をスキャンする — すべての prds/*.json を読み、どの機能が存在するか確認します
  2. 依存関係を検出する — Markdown の PRD 内にある次のような参照を探します。
    • 明示的:「elevenlabs-integration.md を参照」「morning brief に依存」
    • 暗黙的:他の機能に言及しているストーリーの注記
    • 技術的:別の PRD で定義されたテーブル/API を使用
  3. 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": ""
    }
  ]
}

プロセス

  1. 既存の PRD をスキャンする — prds/*.json を読み、依存関係を把握します
  2. .claude/plans/、plans/、または prds/ から PRD/計画の Markdown ファイルを読みます
  3. ファイル名から機能名を導き出します(例:auth-flow.md → auth-flow)
  4. 依存関係を検出する — Markdown 内で他の PRD への参照を確認します
  5. US-001 から始めて、適切な規模のストーリーに分割します
  6. 依存関係に基づいて順序を決めます(優先度を設定)
  7. 明確な受け入れ条件を追加します
  8. 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

コメント