mcpField
C
create-epics

create-epics

github.com/donchitos開発28.5k456 回インストール1 週間前に更新
リポジトリ

create-epics について

アーキテクチャモジュールごとに範囲を定めた開発エピックを定義し、プロジェクトのエピック文書と索引に記録するスキルです。GDD、ADR、アーキテクチャ資料を使い、エピックごとに確認を求めます。ストーリーは作成しません。

主な機能

  1. 01システムまたはレイヤー単位で範囲を設定
  2. 02GDD、ADR、設計資料に基づくエピック定義
  3. 03エピックごとの提示と確認
  4. 04EPIC.mdと索引の更新
  5. 05既存ストーリー情報を保持し上書きを防止

活用シーン

  1. 01アーキテクチャレイヤーの開発作業を分割
  2. 02承認済み設計に基づくエピック文書の作成
  3. 03後続のcreate-storiesワークフロー向けに準備

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/donchitos/claude-code-game-studios --skill create-epics

インストール後、Claude Code で/create-epicsを入力して読み込まれたか確認します。

同梱ファイルCONTRACT.mdreferences/pr-epic-gate.md

詳細

!bash "${CLAUDE_SKILL_DIR}/../../hooks/yaml-helper.sh" resolve_config --keys review_mode,review_gate,automation,workflow,docs.density,engine_values,system_overrides

上記で解決済みです。そのまま使用してください。--review は review_mode を上書きします。ブロックがない場合は → .claude/docs/config-resolution.md のデフォルトを使用します。

質問ツールで質問してください。質問ツールがない場合は、選択肢に番号を付けて列挙し、ユーザーの回答を待つためにターンを終了してください。質問がスキップまたは却下されても回答とは見なさず、プレーンテキストでもう一度質問してください。

エピックの作成

エピックとは、1 つのアーキテクチャモジュールに関する範囲の明確な作業単位です。何を構築するのか、そしてどの決定に従うのかを定めます。構築方法はストーリーで扱います。開発がそのレイヤーに到達した段階で、レイヤーごとに一度実行してください。Core がほぼ完成する前に作成した Feature エピックは、すでに変更されている設計を記述することになります。

書き込み先: 各エピックの production/epics/[epic-slug]/EPIC.md と、production/epics/index.md の該当行です。それぞれ個別に承認を得てから書き込みます。 次の手順: エピックごとに /create-stories [epic-slug] を実行します。このスキルがストーリーを書き込むことはありません。

質問は .claude/docs/automation-modes.md に従います(collaborative は常に質問し、guided は主要な選択肢について質問し、autonomous は記録して続行します。automation_always_ask カテゴリでは常に質問します)。

チェックリスト(コピーして、進めながらチェックしてください):

- [ ] Phase 1: scope and tier
- [ ] Phase 2: inputs loaded and reported
- [ ] Phase 3: each epic shown, "Shall I create Epic: …?" asked one at a time
- [ ] Phase 4: producer review run, or its skip noted
- [ ] Phase 5: each EPIC.md and index row written after its own yes
- [ ] Phase 6: closing block printed

フェーズ 1:範囲とティア

スキル名の後に入力されたテキストから、--review <mode> の組み合わせを除いたもの:

  • all:レイヤー順に、すべてのシステム。
  • layer: foundation(または core、feature、presentation):そのレイヤーのみ。
  • システム名:そのシステムのみ。
  • 何も指定しない場合:リクエスト本文でレイヤーまたはシステムが指定されていればその内容(「foundation and core」など)。指定されていなければ、「どのレイヤーまたはシステムのエピックを作成しますか?」と質問します。

ティア。 プロジェクトの workflow の値によって、必要な項目(フェーズ 2)が決まります。対象となる各システムの GDD の基準は、該当する場合、そのシステムの system_overrides 行から取得します。

minimal の場合は、まずユーザーに伝えてください: このティアではこの手順は任意です。/create-stories が design/game-brief.md からエピックを自動で作成するためです。そのうえで、ユーザーがエピックを依頼している場合は続行してください。

フェーズ 2:入力の読み込み

minimal:ブリーフ

design/game-brief.md を読み込みます。存在しない場合は、「design/game-brief.md がありません。最初に /start または /brainstorm を実行してください。」と伝えて停止します。GDD、システムインデックス、アーキテクチャ文書、ADR、TR レジストリ、コントロールマニフェストを求めてはいけません。また、最初に /design-system、/map-systems、/create-architecture へユーザーを誘導してはいけません。このティアでは、これらは意図的に用意されていません。

まず、次の文を一字一句そのまま報告してください:

Loaded: design/game-brief.md · engine [name version from the engine_values line]
At minimal this step is optional: /create-stories builds the epic from the brief by itself.

エピックは、ブリーフの MVP 機能リストに基づき、Build order の順に作成します。短いブリーフの場合は 1 つのエピックとし、ブリーフの仮タイトルをもとにスラッグを付けます(何も入力されていない場合に /create-stories が使用するスラッグです)。ユーザーが作業をグループ化するよう求めた場合は、まとめてリリースする MVP 機能のグループごとに 1 つのエピックを作成します。各エピックにはスラッグを必ず記載してください。/create-stories ではスラッグの入力が必要です。

standard と full:設計とアーキテクチャ
  1. システム GDD。 bash .claude/scripts/gdd-structure-check.sh は、すべてのシステム GDD を一覧表示します。ゲームコンセプト、システムインデックス、柱、相互レビュー、その他のシステム以外のドキュメントは対象外です。件数は N です。N が 0 の場合は停止し、「design/gdd/ にシステム GDD が見つかりません — まず /design-system を実行してください。」と表示します。
  2. 対象範囲。 各 GDD の ## Summary クイックリファレンスにレイヤーと優先度が記載されています。## Summary がない GDD(古い GDD にはこのセクションがありません)のレイヤーは、design/gdd/systems-index.md から取得します。## Summary がないことを、システムが存在しないこととして扱ってはいけません。対象範囲から除外してはいけません。
  3. アーキテクチャ。 docs/architecture/architecture.md は両方のティアで必須です。存在しない場合は停止し、「docs/architecture/architecture.md がありません — まず /create-architecture を実行してください。」と表示します。モジュール境界を決して捏造してはいけません。
  4. 対象範囲内のシステムのみを、文書全体ではなくセクション単位で確認します。
    • 各 GDD の Overview と Acceptance Criteria (bash .claude/scripts/md-section.sh extract design/gdd/<file>.md "Overview");
    • bash .claude/scripts/adr-status.sh で、すべての ADR のステータス、レイヤー、不足セクションを確認します。その後、対象範囲内のシステムを扱う ADR の GDD Requirements Addressed、Decision、Engine Compatibility セクションを確認します;
    • docs/architecture/tr-registry.yaml:system: が対象範囲内のシステムであるエントリー;
    • コントロールマニフェストの Manifest Version 行(standard では存在する場合に読み取り、full では必須);
    • エンジンのリスクレベルを確認するための docs/engine-reference/<engine>/VERSION.md。

定義を始める前に、実際の状態を報告します。

Loaded: [N] system GDDs, [n] in scope ([names]) · [M] ADRs ([A] Accepted, [P] Proposed) · manifest v[date | absent] · engine [name version from the engine_values line]

full では、対象範囲内のすべての GDD に 8 つのセクションすべてと Approved ステータスが必要で、TR レジストリとコントロールマニフェストも必須です。standard では、GDD に必須の 5 つのセクションが必要で、Critical(Foundation レイヤー)の ADR のみが想定されます。

フェーズ 3:各エピックを定義し、一度に 1 つずつ尋ねる

レイヤー順に処理します。Foundation、Core、Feature、Presentation の順です。各レイヤー内では、システムインデックスの順序(minimal ではブリーフの Build 順)に従います。各システムについて、architecture.md に記載されたモジュール(minimal ではブリーフの機能グループ)を確認します。

要件のカバレッジ(minimal を除く)。システムの各 TR-ID は、次のいずれかです。

  • カバー済み:Accepted の ADR が対応している場合;
  • 未追跡:それ以外の場合。唯一の ADR が Proposed(またはその他のステータス)である要件は、カバー済みではなく未追跡です。したがって、その行には ❌ No ADR (ADR-NNNN Proposed) と記載され、/create-stories は引き続きその ADR を認識してストーリーをブロックします。

未追跡の要件は Untraced Requirements の下に一覧表示されます。以下の ⚠️ 警告は、full では未追跡の要件ごとに表示し、standard では Foundation レイヤーの未追跡要件に限って表示します。standard でそれ以外の未追跡要件がある場合は、警告なしで情報として一覧表示します。

## Epic: [System Name]
**Layer**: [Foundation | Core | Feature | Presentation]
**GDD**: design/gdd/[file].md   (at minimal: design/game-brief.md, MVP features [list])
**Architecture Module**: [module]
**Governing ADRs**: [Accepted ADRs, or "none"]
**Engine Risk**: [LOW | MEDIUM | HIGH — the highest among governing ADRs, else VERSION.md's]
**Requirements covered by Accepted ADRs**: [n / total]
**Untraced Requirements**: [TR-IDs with why, or "None"]

該当する場合の警告:「⚠️ [system] には Accepted の ADR がない要件が [N] 件あります。これらの要件のストーリーは、基準となる ADR なしで作成されるか、Proposed の ADR によって Blocked になります。意思決定が必要な場合は、まず /architecture-decision を実行してください。そうでなければ、この不足を受け入れて続行してください。」

次に、このエピックのみについて、次のように尋ねます。「エピック:[name] を作成しますか?」選択肢:はい、作成する/このエピックをスキップする/一時停止 — 先に ADR を作成する必要があります。この回答の後でのみ、次のエピックを表示して質問します。複数のエピックを 1 つの質問にまとめてはいけません。

はいという回答が承認するのは、その回答に対応するエピックのみです。「全部」「すべて進めて」など、すべてを対象とする言い方であっても同様です。エピックは提示された時点で承認されます。対象範囲内のすべてのエピックを提示して回答を得るまで、次のエピックのブロックを表示して再度尋ねます。

フェーズ 4:プロデューサーレビュー

上記の review_gate 行を読みます。skill-gates=skip(solo または lean)の場合:エージェントを実行せず、返信と最後のブロックに PR-EPIC skipped — [Solo | Lean] mode と記載します。skill-gates=run の場合は、references/pr-epic-gate.md と .claude/docs/director-gates.md を読み、対象範囲内のすべてのエピックを定義した後、書き込みを行う前に実行します。スキップする場合は、これらを読み込まないでください。

フェーズ 5:各エピックを作成する

ユーザーが承認した各エピックについて、順番に進めます。

すでに EPIC.md がある場合: 上書きしてはいけません。「[name] にはすでに EPIC.md があります。その場で更新しますか、それともスキップしますか?」と尋ねます。選択肢:その場で更新 / このエピックをスキップ。 更新時に編集するのは、このスキルが所有する箇所(Stories、Overview、Governing ADRs、GDD Requirements、Definition of Done 以外のヘッダーフィールド)のみです。**Stories** 行と ## Stories テーブルはそのままにします。これらは /create-stories が作成したもので、リセットすると既存のストーリーが孤立します。

新規の場合: 「production/epics/[epic-slug]/EPIC.md を作成し、production/epics/index.md に行を追加してもよいですか[ファイルがなければ作成します]?」と尋ねます。これはエピックごとに、フェーズ 3 の承認後に行う個別の確認です。フェーズ 3 での承認はエピックの承認であり、書き込みの承認ではありません。明示的な承認があった場合にのみ書き込みます。書き込む直前に、bash .claude/scripts/write-guard.sh overwrite production/epics/[epic-slug]/EPIC.md を実行します。常に checked 行が出力されます。その後 OVERWRITE 行が返された場合、ファイルが存在することになるため、何も書き込まず、更新について尋ねます。

docs.density は Overview の詳細度を設定します(terse は箇条書き、balanced は短い段落、thorough は ADR の根拠とリスクを含む詳しい文章)。テーブルはどの詳細度でも省略しません。

# Epic: [System Name]

> **Layer**: [Foundation | Core | Feature | Presentation]
> **GDD**: design/gdd/[file].md
> **Architecture Module**: [module]
> **Status**: Ready
> **Stories**: Not yet created — run `/create-stories [epic-slug]`

## Overview

[What this epic implements, from the GDD Overview and the module's responsibilities]

## Governing ADRs

| ADR | Decision Summary | Engine Risk |
|-----|------------------|-------------|
| ADR-NNNN: [title] | [one line] | LOW/MEDIUM/HIGH |

## GDD Requirements

| TR-ID | Requirement | ADR Coverage |
|-------|-------------|--------------|
| TR-[system]-001 | [requirement text from the registry] | ADR-NNNN ✅ |
| TR-[system]-002 | [requirement text] | ❌ No ADR (ADR-NNNN Proposed) |

## Definition of Done

- Every story implemented, reviewed and closed with `/story-done`
- Every acceptance criterion of design/gdd/[file].md verified
- Logic and Integration stories have passing tests in the test root
- Visual/Feel and UI stories have retained screenshots in `production/qa/evidence/`
  (a lead sign-off too for Visual/Feel)

minimal の場合、GDD の行には design/game-brief.md を記載し、Governing ADRs と GDD Requirements のテーブルは省略します。また、エピックの MVP 機能を Build の順序で並べた Scope リストを設けます。

production/epics/index.md: エピックごとに 1 行を記載します。すでに行があるエピックはその行を維持し、その場で更新します。行を重複して追加したり、Stories セルをリセットしたりしてはいけません。

# Epics Index

Last Updated: [date]
Engine: [name version]

| Epic | Layer | System | GDD | Stories | Status |
|------|-------|--------|-----|---------|--------|
| [name] | [layer] | [system] | [file] | Not yet created | Ready |

フェーズ 6:完了

standard と full の場合、Foundation と Core のエピックが揃ったら、次を追加します。「Foundation と Core のエピックは、Pre-Production → Production ゲートで必要なものです。/gate-check production で準備状況を確認できます。」minimal では追加しません。

各エピックの内容は、GDD、ADR、アーキテクチャドキュメント(minimal では brief)に基づくものとし、創作してはいけません。

実行の最後の返信は、このブロックで終わらせます(以前に表示していても、もう一度記載します)。

Verdict: COMPLETE — [N] epics written: [slugs]
Review: [PR-EPIC skipped — Solo mode | skipped — Lean mode | its verdict]
Index: production/epics/index.md [created | updated]
Next step: /create-stories [first-epic-slug]

ユーザーがすべてのエピックをスキップまたは拒否した場合:Verdict: BLOCKED — no epic written ([why])。対象範囲に該当するシステムがない場合:Verdict: BLOCKED — no eligible systems in [scope]。

コメント