jpskill.com
📦 その他 コミュニティ

ralph-tui-create-beads

PRD(製品要求仕様書)の内容を、ralph-tuiで実行可能な小さなタスク単位(ビーズ)に自動変換し、各ユーザーストーリーに対応したビーズを作成することで、ralph-tuiをタスク管理に活用するSkill。

📜 元の英語説明(参考)

Convert PRDs to beads for ralph-tui execution. Creates an epic with child beads for each user story. Use when you have a PRD and want to use ralph-tui with beads as the task source. Triggers on: create beads, convert prd to beads, beads for ralph, ralph beads.

🇯🇵 日本人クリエイター向け解説

一言でいうと

PRD(製品要求仕様書)の内容を、ralph-tuiで実行可能な小さなタスク単位(ビーズ)に自動変換し、各ユーザーストーリーに対応したビーズを作成することで、ralph-tuiをタスク管理に活用するSkill。

※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。

⚡ おすすめ: コマンド1行でインストール(60秒)

下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。

🍎 Mac / 🐧 Linux
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o ralph-tui-create-beads.zip https://jpskill.com/download/20878.zip && unzip -o ralph-tui-create-beads.zip && rm ralph-tui-create-beads.zip
🪟 Windows (PowerShell)
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/20878.zip -OutFile "$d\ralph-tui-create-beads.zip"; Expand-Archive "$d\ralph-tui-create-beads.zip" -DestinationPath $d -Force; ri "$d\ralph-tui-create-beads.zip"

完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。

💾 手動でダウンロードしたい(コマンドが難しい人向け)
  1. 1. 下の青いボタンを押して ralph-tui-create-beads.zip をダウンロード
  2. 2. ZIPファイルをダブルクリックで解凍 → ralph-tui-create-beads フォルダができる
  3. 3. そのフォルダを C:\Users\あなたの名前\.claude\skills\(Win)または ~/.claude/skills/(Mac)へ移動
  4. 4. Claude Code を再起動

⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。

🎯 このSkillでできること

下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。

📦 インストール方法 (3ステップ)

  1. 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
  2. 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
  3. 3. 展開してできたフォルダを、ホームフォルダの .claude/skills/ に置く
    • · macOS / Linux: ~/.claude/skills/
    • · Windows: %USERPROFILE%\.claude\skills\

Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。

詳しい使い方ガイドを見る →
最終更新
2026-05-18
取得日時
2026-05-18
同梱ファイル
1

📖 Skill本文(日本語訳)

※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。

[スキル名] ralph-tui-create-beads

Ralph TUI - ビーズの作成

PRDをビーズ(エピック + 子タスク)に変換し、ralph-tuiの自律実行に備えます。

注: このスキルはralph-tuiのBeadsトラッカープラグインにバンドルされています。将来のトラッカープラグイン(Linear、GitHub Issuesなど)は、独自のタスク作成スキルをバンドルする予定です。


ジョブ

PRD(Markdownファイルまたはテキスト)を受け取り、.beads/beads.jsonlにビーズを作成します。

  1. PRDの「Quality Gates」セクションから品質ゲートを抽出します。
  2. 機能のエピックビーズを作成します。
  3. 各ユーザーストーリーの子ビーズを作成します(品質ゲートを付加します)。
  4. ビーズ間の依存関係を設定します(スキーマ → バックエンド → UI)。
  5. ralph-tui run --tracker beadsですぐに実行できる形式で出力します。

ステップ1:品質ゲートの抽出

PRDの「Quality Gates」セクションを探します。

## Quality Gates

These commands must pass for every user story:
- `pnpm typecheck` - Type checking
- `pnpm lint` - Linting

For UI stories, also include:
- Verify in browser using dev-browser skill

以下を抽出します。

  • ユニバーサルゲート: すべてのストーリーに適用されるコマンド(例: pnpm typecheck
  • UIゲート: UIストーリーにのみ適用されるコマンド(例: ブラウザでの検証)

Quality Gatesセクションが存在しない場合: ユーザーにどのコマンドが合格すべきか尋ねるか、npm run typecheckのような適切なデフォルトを使用します。


出力形式

ビーズは、特殊文字を安全に処理するためにHEREDOC構文bd createコマンドを使用します。

# Create epic (link back to source PRD)
bd create --type=epic \
  --title="[Feature Name]" \
  --description="$(cat <<'EOF'
[Feature description from PRD]
EOF
)" \
  --external-ref="prd:./tasks/feature-name-prd.md"

# Create child bead (with quality gates in acceptance criteria)
bd create \
  --parent=EPIC_ID \
  --title="[Story Title]" \
  --description="$(cat <<'EOF'
[Story description with acceptance criteria INCLUDING quality gates]
EOF
)" \
  --priority=[1-4]

重要: HEREDOCデリミタには常に<<'EOF'(シングルクォート)を使用してください。これにより、説明内のバッククォート、$variables()のシェル解釈が防止されます。


ストーリーのサイズ:最重要ルール

各ストーリーは、ralph-tuiの1回のイテレーション(約1つのエージェントコンテキストウィンドウ)で完了できる必要があります。

ralph-tuiは、以前の作業の記憶を持たない新しいエージェントインスタンスをイテレーションごとに生成します。ストーリーが大きすぎると、エージェントは完了する前にコンテキストを使い果たしてしまいます。

適切なサイズのストーリー:

  • データベース列とマイグレーションの追加
  • 既存のページへのUIコンポーネントの追加
  • 新しいロジックによるサーバーアクションの更新
  • リストへのフィルタードロップダウンの追加

大きすぎる(分割すべき)ストーリー:

  • 「ダッシュボード全体を構築する」→ スキーマ、クエリ、UIコンポーネント、フィルターに分割
  • 「認証を追加する」→ スキーマ、ミドルウェア、ログインUI、セッション処理に分割
  • 「APIをリファクタリングする」→ エンドポイントまたはパターンごとに1つのストーリーに分割

経験則: 変更を2〜3文で説明できない場合、それは大きすぎます。


ストーリーの順序:依存関係が最初

ストーリーは依存関係の順序で実行されます。以前のストーリーは、後のストーリーに依存してはなりません。

正しい順序:

  1. スキーマ/データベースの変更(マイグレーション)
  2. サーバーアクション/バックエンドロジック
  3. バックエンドを使用するUIコンポーネント
  4. データを集計するダッシュボード/サマリービュー

間違った順序:

  1. ❌ UIコンポーネント(まだ存在しないスキーマに依存)
  2. ❌ スキーマ変更

bd dep addによる依存関係

bd dep addコマンドを使用して、どのビーズが最初に完了する必要があるかを指定します。

# Create the beads first
bd create --parent=epic-123 --title="US-001: Add schema" ...
bd create --parent=epic-123 --title="US-002: Create API" ...
bd create --parent=epic-123 --title="US-003: Build UI" ...

# Then add dependencies (issue depends-on blocker)
bd dep add ralph-tui-002 ralph-tui-001  # US-002 depends on US-001
bd dep add ralph-tui-003 ralph-tui-002  # US-003 depends on US-002

構文: bd dep add <issue> <depends-on> — issueはdepends-onに依存します(depends-onによってブロックされます)。

ralph-tuiは以下を行います。

  • 依存関係が完了するまで、ブロックされたビーズを「ブロック済み」として表示します。
  • 依存関係が未解決の間は、実行のためにビーズを選択しません。
  • ビーズの作業中に、プロンプトに依存関係のコンテキストを含めます。

正しい依存関係の順序:

  1. スキーマ/データベースの変更(依存関係なし)
  2. バックエンドロジック(スキーマに依存)
  3. UIコンポーネント(バックエンドに依存)
  4. 統合/仕上げ(UIに依存)

受け入れ基準:品質ゲート + ストーリー固有

各ビーズの説明には、以下の受け入れ基準を含める必要があります。

  1. PRDからのストーリー固有の基準(このストーリーが達成すること)
  2. PRDのQuality Gatesセクションからの品質ゲート(最後に付加)

良い基準(検証可能):

  • investorType列を投資家テーブルに追加し、デフォルトを'cold'にする」
  • 「フィルタードロップダウンにオプション:All、Cold、Friendがある」
  • 「トグルをクリックすると確認ダイアログが表示される」

悪い基準(曖昧):

  • ❌ 「正しく動作する」
  • ❌ 「ユーザーはXを簡単にできる」
  • ❌ 「良いUX」
  • ❌ 「エッジケースを処理する」

変換ルール

  1. 最初にPRDから品質ゲートを抽出します。
  2. 各ユーザーストーリー → 1つのビーズ
  3. 最初のストーリー: 依存関係なし(基盤を作成)
  4. 後続のストーリー: 前任者に依存(UIはバックエンドに依存など)
  5. 優先度: 依存関係の順序、次にドキュメントの順序に基づく(0=重要、2=中、4=バックログ)
  6. すべてのストーリー: status: "open"
  7. 受け入れ基準: ストーリーの基準 + 品質ゲートを付加
  8. UIストーリー: UI固有のゲート(ブラウザ検証)も付加

大規模なPRDの分割

PRDに大きな機能がある場合は、それらを分割します。

オリジナル:

「異なるメッセージングで友達へのアウトリーチトラックを追加する」

分割後:

  1. US-001: データベースにinvestorTypeフィールドを追加する
  2. US-002: 投資家リストUIにタイプトグルを追加する
  3. US-003: 友達固有のフェーズ進行ロジックを作成する
  4. US-004: 友達メッセージテンプレートを作成する
  5. US-005: 友達のタスク生成を接続する
  6. US-006: タイプによるフィルターを追加する
  7. US-007: 新しい投資家フォームを更新する
  8. US-008: ダッシュボードのカウントを更新する

それぞれが、独立して完了および検証できる、焦点を絞った変更です。


📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開

Ralph TUI - Create Beads

Converts PRDs to beads (epic + child tasks) for ralph-tui autonomous execution.

Note: This skill is bundled with ralph-tui's Beads tracker plugin. Future tracker plugins (Linear, GitHub Issues, etc.) will bundle their own task creation skills.


The Job

Take a PRD (markdown file or text) and create beads in .beads/beads.jsonl:

  1. Extract Quality Gates from the PRD's "Quality Gates" section
  2. Create an epic bead for the feature
  3. Create child beads for each user story (with quality gates appended)
  4. Set up dependencies between beads (schema → backend → UI)
  5. Output ready for ralph-tui run --tracker beads

Step 1: Extract Quality Gates

Look for the "Quality Gates" section in the PRD:

## Quality Gates

These commands must pass for every user story:
- `pnpm typecheck` - Type checking
- `pnpm lint` - Linting

For UI stories, also include:
- Verify in browser using dev-browser skill

Extract:

  • Universal gates: Commands that apply to ALL stories (e.g., pnpm typecheck)
  • UI gates: Commands that apply only to UI stories (e.g., browser verification)

If no Quality Gates section exists: Ask the user what commands should pass, or use a sensible default like npm run typecheck.


Output Format

Beads use bd create command with HEREDOC syntax to safely handle special characters:

# Create epic (link back to source PRD)
bd create --type=epic \
  --title="[Feature Name]" \
  --description="$(cat <<'EOF'
[Feature description from PRD]
EOF
)" \
  --external-ref="prd:./tasks/feature-name-prd.md"

# Create child bead (with quality gates in acceptance criteria)
bd create \
  --parent=EPIC_ID \
  --title="[Story Title]" \
  --description="$(cat <<'EOF'
[Story description with acceptance criteria INCLUDING quality gates]
EOF
)" \
  --priority=[1-4]

CRITICAL: Always use <<'EOF' (single-quoted) for the HEREDOC delimiter. This prevents shell interpretation of backticks, $variables, and () in descriptions.


Story Size: The #1 Rule

Each story must be completable in ONE ralph-tui iteration (~one agent context window).

ralph-tui spawns a fresh agent instance per iteration with no memory of previous work. If a story is too big, the agent runs out of context before finishing.

Right-sized stories:

  • Add a database column + migration
  • Add a UI component to an existing page
  • Update a server action with new logic
  • Add a filter dropdown to a list

Too big (split these):

  • "Build the entire dashboard" → Split into: schema, queries, UI components, filters
  • "Add authentication" → Split into: schema, middleware, login UI, session handling
  • "Refactor the API" → Split into one story per endpoint or pattern

Rule of thumb: If you can't describe the change in 2-3 sentences, it's too big.


Story Ordering: Dependencies First

Stories execute in dependency order. Earlier stories must not depend on later ones.

Correct order:

  1. Schema/database changes (migrations)
  2. Server actions / backend logic
  3. UI components that use the backend
  4. Dashboard/summary views that aggregate data

Wrong order:

  1. ❌ UI component (depends on schema that doesn't exist yet)
  2. ❌ Schema change

Dependencies with bd dep add

Use the bd dep add command to specify which beads must complete first:

# Create the beads first
bd create --parent=epic-123 --title="US-001: Add schema" ...
bd create --parent=epic-123 --title="US-002: Create API" ...
bd create --parent=epic-123 --title="US-003: Build UI" ...

# Then add dependencies (issue depends-on blocker)
bd dep add ralph-tui-002 ralph-tui-001  # US-002 depends on US-001
bd dep add ralph-tui-003 ralph-tui-002  # US-003 depends on US-002

Syntax: bd dep add <issue> <depends-on> — the issue depends on (is blocked by) depends-on.

ralph-tui will:

  • Show blocked beads as "blocked" until dependencies complete
  • Never select a bead for execution while its dependencies are open
  • Include dependency context in the prompt when working on a bead

Correct dependency order:

  1. Schema/database changes (no dependencies)
  2. Backend logic (depends on schema)
  3. UI components (depends on backend)
  4. Integration/polish (depends on UI)

Acceptance Criteria: Quality Gates + Story-Specific

Each bead's description should include acceptance criteria with:

  1. Story-specific criteria from the PRD (what this story accomplishes)
  2. Quality gates from the PRD's Quality Gates section (appended at the end)

Good criteria (verifiable):

  • "Add investorType column to investor table with default 'cold'"
  • "Filter dropdown has options: All, Cold, Friend"
  • "Clicking toggle shows confirmation dialog"

Bad criteria (vague):

  • ❌ "Works correctly"
  • ❌ "User can do X easily"
  • ❌ "Good UX"
  • ❌ "Handles edge cases"

Conversion Rules

  1. Extract Quality Gates from PRD first
  2. Each user story → one bead
  3. First story: No dependencies (creates foundation)
  4. Subsequent stories: Depend on their predecessors (UI depends on backend, etc.)
  5. Priority: Based on dependency order, then document order (0=critical, 2=medium, 4=backlog)
  6. All stories: status: "open"
  7. Acceptance criteria: Story criteria + quality gates appended
  8. UI stories: Also append UI-specific gates (browser verification)

Splitting Large PRDs

If a PRD has big features, split them:

Original:

"Add friends outreach track with different messaging"

Split into:

  1. US-001: Add investorType field to database
  2. US-002: Add type toggle to investor list UI
  3. US-003: Create friend-specific phase progression logic
  4. US-004: Create friend message templates
  5. US-005: Wire up task generation for friends
  6. US-006: Add filter by type
  7. US-007: Update new investor form
  8. US-008: Update dashboard counts

Each is one focused change that can be completed and verified independently.


Example

Input PRD:

# PRD: Friends Outreach

Add ability to mark investors as "friends" for warm outreach.

## Quality Gates

These commands must pass for every user story:
- `pnpm typecheck` - Type checking
- `pnpm lint` - Linting

For UI stories, also include:
- Verify in browser using dev-browser skill

## User Stories

### US-001: Add investorType field to investor table
**Description:** As a developer, I need to categorize investors as 'cold' or 'friend'.

**Acceptance Criteria:**
- [ ] Add investorType column: 'cold' | 'friend' (default 'cold')
- [ ] Generate and run migration successfully

### US-002: Add type toggle to investor list rows
**Description:** As Ryan, I want to toggle investor type directly from the list.

**Acceptance Criteria:**
- [ ] Each row has Cold | Friend toggle
- [ ] Switching shows confirmation dialog
- [ ] On confirm: updates type in database

### US-003: Filter investors by type
**Description:** As Ryan, I want to filter the list to see just friends or cold.

**Acceptance Criteria:**
- [ ] Filter dropdown: All | Cold | Friend
- [ ] Filter persists in URL params

Output beads:

# Create epic (link back to source PRD)
bd create --type=epic \
  --title="Friends Outreach Track" \
  --description="$(cat <<'EOF'
Warm outreach for deck feedback
EOF
)" \
  --external-ref="prd:./tasks/friends-outreach-prd.md"

# US-001: No deps (first - creates schema)
bd create --parent=ralph-tui-abc \
  --title="US-001: Add investorType field to investor table" \
  --description="$(cat <<'EOF'
As a developer, I need to categorize investors as 'cold' or 'friend'.

## Acceptance Criteria
- [ ] Add investorType column: 'cold' | 'friend' (default 'cold')
- [ ] Generate and run migration successfully
- [ ] pnpm typecheck passes
- [ ] pnpm lint passes
EOF
)" \
  --priority=1

# US-002: UI story (gets browser verification too)
bd create --parent=ralph-tui-abc \
  --title="US-002: Add type toggle to investor list rows" \
  --description="$(cat <<'EOF'
As Ryan, I want to toggle investor type directly from the list.

## Acceptance Criteria
- [ ] Each row has Cold | Friend toggle
- [ ] Switching shows confirmation dialog
- [ ] On confirm: updates type in database
- [ ] pnpm typecheck passes
- [ ] pnpm lint passes
- [ ] Verify in browser using dev-browser skill
EOF
)" \
  --priority=2

# Add dependency: US-002 depends on US-001
bd dep add ralph-tui-002 ralph-tui-001

# US-003: UI story
bd create --parent=ralph-tui-abc \
  --title="US-003: Filter investors by type" \
  --description="$(cat <<'EOF'
As Ryan, I want to filter the list to see just friends or cold.

## Acceptance Criteria
- [ ] Filter dropdown: All | Cold | Friend
- [ ] Filter persists in URL params
- [ ] pnpm typecheck passes
- [ ] pnpm lint passes
- [ ] Verify in browser using dev-browser skill
EOF
)" \
  --priority=3

# Add dependency: US-003 depends on US-002
bd dep add ralph-tui-003 ralph-tui-002

Output Location

Beads are written to: .beads/beads.jsonl

After creation, run ralph-tui:

# Work on a specific epic
ralph-tui run --tracker beads --epic ralph-tui-abc

# Or let it pick the best task automatically
ralph-tui run --tracker beads

ralph-tui will:

  1. Work on beads within the specified epic (or select the best available task)
  2. Close each bead when complete
  3. Close the epic when all children are done
  4. Output <promise>COMPLETE</promise> when epic is done

Checklist Before Creating Beads

  • [ ] Extracted Quality Gates from PRD (or asked user if missing)
  • [ ] Each story is completable in one iteration (small enough)
  • [ ] Stories are ordered by dependency (schema → backend → UI)
  • [ ] Quality gates appended to every bead's acceptance criteria
  • [ ] UI stories have browser verification (if specified in Quality Gates)
  • [ ] Acceptance criteria are verifiable (not vague)
  • [ ] No story depends on a later story (only earlier stories)
  • [ ] Dependencies added with bd dep add after creating beads