agentsclimarketplace

Plan epic

Skill hirokimry/vibecorp/skills/plan-epic

CEO が指定したテーマを複数の子タスクに分解し、親 Issue(エピック)と子 Issue を一括起票して GitHub 公式の sub-issue API で親子関係を構築する。full プリセット専用。 「/plan-epic」「エピック化」「Issue を分解して」と言った時に使用。From its SKILL.md

Install
npx -y skills add hirokimry/vibecorp --skill plan-epic

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

11.1 KB, as published. Nobody here has run it

🎯 エピック化スキル

[!IMPORTANT] full プリセット専用。CEO が指定したテーマを子タスクに分解し、親 Issue(エピック)+ 子 Issue 群を一括起票して GitHub 公式 sub-issue API で親子関係を構築する。 コード変更は一切行わない(起票と紐付けのみ)。子 Issue 実装は /vibecorp:ship で別途実行する。 結果のみを簡潔に返す。途中経過は出力しない。

CEO が「このテーマをエピック化して」と依頼した時、plan mode で子タスク分解を提示し、承認後に親 Issue + 子 Issue 群を一括起票する。子 Issue は GitHub 公式 sub-issue API で親に紐付ける。

📝 本文の書き方

親 Issue・子 Issue のタイトル・本文は CEO が読むため .claude/rules/communication.md に従って 動作主語 で書く(「〜になった/〜できるようになった」)。関数名・ファイルパスを並べるのではなく、ソフトウェアのふるまいの変化を 30 秒で掴める形にする。

🛠️ 使用方法

/vibecorp:plan-epic <テーマ>           # plan mode で分解 → 親+子 Issue 起票 → sub-issue 紐付け
/vibecorp:plan-epic <テーマ> --dry-run # 分解と起票プレビューのみ(実際には起票しない)

<テーマ> が省略された場合は CEO にヒアリングする。

🧱 前提条件

  • full プリセット専用(CISO/CPO/SM の 3 者承認ゲートを子 Issue 起票時に通すため、/vibecorp:issue が full プリセットの判定機能を要求する)
  • GitHub CLI (gh) が認証済みであること
  • リポジトリが GitHub 上にあり、sub-issue API が利用可能であること

📋 ワークフロー

1. プリセット確認

vibecorp.yml の preset を確認する。full 以外の場合は以下を出力して終了する:

/vibecorp:plan-epic は full プリセット専用です。現在のプリセット: <preset>
awk '/^preset:/ { print $2 }' "$CLAUDE_PROJECT_DIR/.claude/vibecorp.yml"

2. テーマのヒアリング

引数でテーマが渡されていない場合は CEO に確認する。

  • テーマ: エピックとして括る上位の目的(例: 「Issue 親子関係導入」「課金構造の総点検」)
  • 背景: なぜこのエピックが必要か(任意)
  • 完了基準: エピックの達成条件(任意)

3. plan mode で子タスクへの分解を提示

EnterPlanMode でプラン mode に入り、テーマを以下の観点で子タスクへ分解する。

  • 独立性: 子タスクは可能な限り並行実装できる粒度に分ける
  • テスト込み: 各子タスクにテスト方針を含める
  • 段階性: 基盤 → 実装 → 統合 の流れを意識する
  • スコープ: 1 子タスクは 1 PR で完結するサイズに収める

分解結果を以下のフォーマットで CEO に提示する。

## 🎯 エピック: <テーマ>

### 📦 子タスク
| # | タイトル | 概要 | 依存 |
|---|---------|------|------|
| 1 | <子1> | <概要> | — |
| 2 | <子2> | <概要> | #1 |
| 3 | <子3> | <概要> | — |

### 🗺️ 実装順序
- 並行実装可能: <子1>, <子3>
- 直列: <子2>(<子1> 完了後)

ExitPlanMode で承認待ちにする。CEO が承認しなかった場合は終了する。

4. 親 Issue(エピック)の起票

承認後、親 Issue を gh issue create で直接起票する。

  • タイトル: 🎯 epic: <テーマ>
  • ラベル: epic(リポジトリに存在する場合のみ付与)
  • 本文: 以下のテンプレート
## 🎯 エピック概要

<テーマと背景>

## 📦 子 Issue(実装は /vibecorp:ship で別途)

- [ ] #<子1番号>
- [ ] #<子2番号>
- [ ] #<子3番号>

## ✅ 完了基準

<エピック全体の完了条件>

## 📍 関連ファイル

<!-- エピック全体で触れるファイル・モジュールのパス一覧(relevant file locations)。 -->
<!-- Anthropic 公式推奨の初回プロンプト 4 要素のうち relevant file locations を起票時点で揃える。 -->
- `<対象ファイル 1>`
- `<対象ファイル 2>`

---
この Issue は /vibecorp:plan-epic により起票されました。

子 Issue 番号は次のステップで決まるため、起票時点では空のチェックリスト(後段で更新)にしてもよい。実装上は「子 Issue 起票完了 → 親 Issue 本文を gh issue edit で更新」の順で構わない。

gh issue create --title "🎯 epic: <テーマ>" --body "<本文>" --label "epic"

epic ラベルがリポジトリに存在しない場合は --label を省略する(gh label list で確認)。

5. 親 feature ブランチの作成

親エピックの feature ブランチを作成し、origin に push する。/ship が git ls-remote で自動検出するために必要。

5-1. default branch を取得:

gh repo view --json defaultBranchRef --jq '.defaultBranchRef.name'

5-2. ブランチを作成して push:

git switch -c "feature/epic-<親番号>_<要約>" "origin/<default_branch>"
git push -u origin "feature/epic-<親番号>_<要約>"
  • ブランチ名は feature/epic-{親Issue番号}_{要約} 形式(docs/specification.md のブランチ命名規約に準拠)
  • <要約> は親 Issue タイトルからスラッシュ・スペースを _ に置換し、英数字・アンダースコア・ハイフンのみにサニタイズする
  • push まで完了させることで /ship の git ls-remote --heads origin "feature/epic-<親番号>_*" で確実に検出される

6. 子 Issue の起票(/vibecorp:issue 経由)

ステップ 3 で分解した子タスクを 1 件ずつ /vibecorp:issue スキル経由で起票する。

子タスクの本文末尾に親エピックへの参照として Refs #<親番号> を必ず含める。Closes ではなく Refs を使うことで、子 PR がマージされても親エピックは auto-close されず、/vibecorp:release-epic のリリース PR で最終的に close される(Refs #<親エピック番号> 形式も等価)。

/vibecorp:issue を使って以下の子 Issue を起票してください:

タイトル: <子タスクのタイトル>
本文: <子タスクの本文>

---

## 📍 関連

Refs #<親エピック番号>
  • /vibecorp:issue の 3 者承認ゲート(CISO + CPO + SM)が自動で走る
  • いずれかの子 Issue が「除外」判定された場合は、その子 Issue だけスキップして CEO に報告する(親 Issue は残し、後から手動で追加可能とする)
  • Closes #N / Refs #N の運用は .claude/rules/workflow.md「PR 本文の Issue リンク(auto-close キーワード)」を参照

7. sub-issue API で親に紐付け

各子 Issue を GitHub 公式の sub-issue API で親 Issue に紐付ける。

gh api \
  --method POST \
  -H "Accept: application/vnd.github+json" \
  "/repos/<owner>/<repo>/issues/<親番号>/sub_issues" \
  -f sub_issue_id=<子の数値ID>
  • <owner>/<repo> は gh repo view --json owner,name --jq '.owner.login + "/" + .name' で取得
  • <子の数値ID> は gh issue view <子番号> --json id --jq '.id' で取得(issue 番号ではなく内部 ID が必要)
  • API エラー時はその子のみ紐付け失敗として記録し、最終レポートに明記する(処理は継続)

公式仕様: https://docs.github.com/en/rest/issues/sub-issues

8. 親 Issue 本文の更新

親 Issue の本文のチェックリストを実際の子 Issue 番号に書き換える。

gh issue edit <親番号> --body "<更新後の本文>"

9. 結果報告

## /vibecorp:plan-epic 完了

### 🎯 親 Issue(エピック)
- <親 URL>: <タイトル>

### 📦 子 Issue
| # | タイトル | URL | sub-issue 紐付け |
|---|---------|-----|------------------|
| 1 | <子1> | <URL> | ✅ |
| 2 | <子2> | <URL> | ✅ |
| 3 | <子3> | <URL> | ⚠️ 失敗(要手動紐付け) |

### サマリ
- 起票: <親1 + 子N> 件
- スキップ(3 者承認ゲートで除外): <n> 件
- sub-issue 紐付け失敗: <n> 件

🚦 介入ポイント

以下の状況では CEO に報告して判断を委ねる(自動でスキップしない)。

状況タイミング
full プリセットでないステップ 1
CEO が plan を承認しないステップ 3
子 Issue 起票で 3 者承認ゲートが「除外」と判定ステップ 6
sub-issue API がエラーを返したステップ 7
gh CLI が認証されていない全ステップ共通

🪶 --dry-run モード

--dry-run が指定された場合は以下のみ実行する。

  1. プリセット確認
  2. テーマヒアリング
  3. plan mode で子タスク分解を提示
  4. 起票プレビュー(親 Issue 本文と子 Issue タイトル一覧をレポート出力)

ステップ 4 以降の起票・ブランチ作成・API 呼び出しは行わない。

⚠️ 制約

  • コード変更は一切行わない — Issue 起票と sub-issue 紐付けのみ。
  • 子 Issue 実装は CEO が /vibecorp:ship で別途起動する(本スキルでは ship を呼ばない)。
  • --force / --hard / --no-verify は使用しない。
  • jq では string interpolation \(...) を使わない — Bash 上で \ がエスケープ文字、() がサブシェルとして解釈されパースエラーを引き起こす。必ず + で結合する。
  • コマンドをそのまま実行する — 2>/dev/null / || echo / ; echo 等のリダイレクトやフォールバックを付加しない(根拠)。
  • 介入ポイントでは CEO の指示を待つ(自動でスキップしない)。
  • 親 Issue 自体は不可領域変更を直接含まないため 3 者承認ゲートを通さない(メタ情報)。子 Issue 側で個別に走る /vibecorp:issue のゲートに依存する。

🔗 関連

種別参照先
設計判断.claude/knowledge/cpo/decisions/2026-Q2.md 2026-04-18 「Issue 親子関係: 条件付き Go」
GitHub sub-issue APIhttps://docs.github.com/en/rest/issues/sub-issues
自律実行不可領域.claude/rules/autonomous-restrictions.md
CEO 向け文面規約.claude/rules/communication.md
プロンプト作成基準.claude/rules/prompt-writing.md
マークダウン規約.claude/rules/markdown.md
関連スキル/vibecorp:issue(子 Issue 起票)/ /vibecorp:ship(子 Issue 実装)/ /vibecorp:release-epic(親エピック close)

Keep looking

Skills are one crate of 627,801. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.