Agent Skills by ALSEL
Anthropic Claudeビジネス・経営⭐ リポ 299品質スコア 89/100

epic-management

大規模なプロジェクト向けの機能です。機能単位でのグループ化が必要な場合に使用できます。エピック追跡用のissueを作成し、関連するissueを共通ラベルで管理し、エピックの進捗を追跡します。またマイルストーンとの連携も可能です。

description の原文を見る

Use for LARGE work requiring feature-level grouping. Creates epic tracking issues, manages related issues under a common label, tracks epic progress, and coordinates with milestones.

SKILL.md 本文

エピック管理

概要

エピックは、機能またはカパビリティを一緒に提供する関連イシューをグループ化します。このスキルは、GitHubのネイティブ機能を使用してエピックを作成、追跡、管理します。

中核原則: エピックは、ユーザー価値を一緒に提供するイシューの集合です。

開始時にアナウンス: 「エピック管理を使用して、この機能を追跡されるエピックと関連イシューに構造化します。」

エピックとは

エピックは以下の特徴があります:

  • epicラベルを持つ親イシュー
  • epic-[name]ラベルを共有する関連イシューの集合
  • オプションでマイルストーンに関連付け
  • イニシアチブの一部(大規模な作業の場合)

GitHubでのエピック構造

Epic (親イシュー)
├── ラベル: epic
├── ラベル: epic-[name]
├── マイルストーン: [オプション]
└── プロジェクト: [エピックフィールド付き]

関連イシュー
├── ラベル: epic-[name]
├── 参照: "Part of #[EPIC_NUMBER]"
└── マイルストーン: [エピックと同じ]

エピックの作成

ステップ1: エピックラベルの作成

# エピック固有のラベルを作成
gh label create "epic-[SHORT-NAME]" \
  --color "0E8A16" \
  --description "[エピック目標の簡潔な説明]"

ステップ2: エピック追跡イシューの作成

gh issue create \
  --title "[Epic] [NAME]" \
  --label "epic,epic-[SHORT-NAME]" \
  --body "## Epic: [NAME]

## ゴール
[このエピックが完了した時点で提供するもの]

## 成功基準
- [ ] [高レベルの基準1]
- [ ] [高レベルの基準2]
- [ ] [高レベルの基準3]

## コンテキスト
[背景、このエピックが存在する理由、関連するリンク]

## 依存関係
- **必須:** [最初に完了する必要がある他のエピック/イシュー]
- **有効化:** [このエピックに依存する他のエピック/イシュー]

## イシュー

### 準備完了
- [ ] #[N] - [タイトル]

### 進行中
[まだなし]

### 完了
[まだなし]

## 進捗
**イシュー:** 0 / [TOTAL] 完了
**最終更新:** [DATE]

---
## イニシアチブ
[該当する場合は #[INITIATIVE] の一部、またはスタンドアロンエピック]

## マイルストーン
[関連マイルストーン、または「未割り当て」]"

ステップ3: プロジェクトボードに追加(必須ゲート)

このステップはオプションではありません。エピックはプロジェクトボードに入っている必要があります。

# エピックイシューのURLを取得
EPIC_URL=$(gh issue view [EPIC_NUMBER] --json url -q '.url')

# エピックをプロジェクトに追加 - 必須
gh project item-add "$GITHUB_PROJECT_NUM" --owner "$GH_PROJECT_OWNER" --url "$EPIC_URL"

if [ $? -ne 0 ]; then
  echo "ERROR: Failed to add epic to project. Cannot proceed."
  exit 1
fi

# アイテムIDを取得 - 必須
ITEM_ID=$(gh project item-list "$GITHUB_PROJECT_NUM" --owner "$GH_PROJECT_OWNER" \
  --format json | jq -r ".items[] | select(.content.number == [EPIC_NUMBER]) | .id")

if [ -z "$ITEM_ID" ] || [ "$ITEM_ID" = "null" ]; then
  echo "ERROR: Epic added but item ID not found."
  exit 1
fi

echo "Epic #[EPIC_NUMBER] added to project with item ID: $ITEM_ID"

ステップ3.5: プロジェクトボードフィールドの設定(必須)

すべてのエピックはプロジェクトボードでType = Epicが設定されている必要があります。

# プロジェクトとフィールドIDを取得
PROJECT_ID=$(gh project list --owner "$GH_PROJECT_OWNER" --format json | \
  jq -r ".projects[] | select(.number == $GITHUB_PROJECT_NUM) | .id")

STATUS_FIELD_ID=$(gh project field-list "$GITHUB_PROJECT_NUM" --owner "$GH_PROJECT_OWNER" \
  --format json | jq -r '.fields[] | select(.name == "Status") | .id')

TYPE_FIELD_NAME="Type"
if ! gh project field-list "$GITHUB_PROJECT_NUM" --owner "$GH_PROJECT_OWNER" --format json | jq -e '.fields[] | select(.name == "Type")' >/dev/null 2>&1; then
  if gh project field-list "$GITHUB_PROJECT_NUM" --owner "$GH_PROJECT_OWNER" --format json | jq -e '.fields[] | select(.name == "Issue Type")' >/dev/null 2>&1; then
    TYPE_FIELD_NAME="Issue Type"
  fi
fi

TYPE_FIELD_ID=$(gh project field-list "$GITHUB_PROJECT_NUM" --owner "$GH_PROJECT_OWNER" \
  --format json | jq -r --arg type_field "$TYPE_FIELD_NAME" '.fields[] | select(.name == $type_field) | .id')

# オプションIDを取得
BACKLOG_OPTION_ID=$(gh project field-list "$GITHUB_PROJECT_NUM" --owner "$GH_PROJECT_OWNER" \
  --format json | jq -r '.fields[] | select(.name == "Status") | .options[] | select(.name == "Backlog") | .id')

EPIC_TYPE_OPTION_ID=$(gh project field-list "$GITHUB_PROJECT_NUM" --owner "$GH_PROJECT_OWNER" \
  --format json | jq -r --arg type_field "$TYPE_FIELD_NAME" '.fields[] | select(.name == $type_field) | .options[] | select(.name == "Epic") | .id')

# Status = Backlog に設定(またはまだイシューがない場合はReady)
gh project item-edit --project-id "$PROJECT_ID" --id "$ITEM_ID" \
  --field-id "$STATUS_FIELD_ID" --single-select-option-id "$BACKLOG_OPTION_ID"

# Type = Epic に設定
gh project item-edit --project-id "$PROJECT_ID" --id "$ITEM_ID" \
  --field-id "$TYPE_FIELD_ID" --single-select-option-id "$EPIC_TYPE_OPTION_ID"

# フィールドが設定されたことを確認
echo "Verifying project board fields..."
VERIFY=$(gh project item-list "$GITHUB_PROJECT_NUM" --owner "$GH_PROJECT_OWNER" \
  --format json | jq ".items[] | select(.content.number == [EPIC_NUMBER])")

echo "Status: $(echo "$VERIFY" | jq -r '.status.name')"
echo "Type: $(echo "$VERIFY" | jq -r '.type.name // "not set"')"

スキル: project-board-enforcement

エピック内でのイシュー作成

エピックイシューのテンプレート

gh issue create \
  --title "[TYPE] [Title]" \
  --label "epic-[SHORT-NAME]" \
  --body "## 説明
[このイシューが提供するもの]

エピック #[EPIC_NUMBER]: [エピックタイトル] の一部

## 受け入れ基準
- [ ] [基準1]
- [ ] [基準2]

## 技術的注記
[実装に関する詳細]

## 依存関係
- 必須: #[N](該当する場合)
- ブロック: #[N](該当する場合)"

イシューをエピックにリンク

エピック内のすべてのイシューは以下の要件を満たす必要があります:

  1. epic-[name]ラベルを持つ
  2. 説明内でエピックを参照: 「Part of epic #[N]」
  3. 同じマイルストーン(設定されている場合)を共有
  4. プロジェクトボードにStatusとTypeが設定された状態で配置される
  5. Epicフィールドが存在する場合は親エピック番号に設定される

子イシューをプロジェクトボードに追加(必須)

# 子イシュー作成後、プロジェクトボードに追加
CHILD_URL=$(gh issue view [CHILD_NUMBER] --json url -q '.url')

gh project item-add "$GITHUB_PROJECT_NUM" --owner "$GH_PROJECT_OWNER" --url "$CHILD_URL"

# アイテムIDを取得
CHILD_ITEM_ID=$(gh project item-list "$GITHUB_PROJECT_NUM" --owner "$GH_PROJECT_OWNER" \
  --format json | jq -r ".items[] | select(.content.number == [CHILD_NUMBER]) | .id")

# Status = Ready に設定
gh project item-edit --project-id "$PROJECT_ID" --id "$CHILD_ITEM_ID" \
  --field-id "$STATUS_FIELD_ID" --single-select-option-id "$READY_OPTION_ID"

# 適切なType(Feature、Bugなど)を設定
gh project item-edit --project-id "$PROJECT_ID" --id "$CHILD_ITEM_ID" \
  --field-id "$TYPE_FIELD_ID" --single-select-option-id "$TYPE_OPTION_ID"

# 親エピックにリンク(Epicフィールドが存在する場合)
EPIC_FIELD_ID=$(gh project field-list "$GITHUB_PROJECT_NUM" --owner "$GH_PROJECT_OWNER" \
  --format json | jq -r '.fields[] | select(.name == "Epic") | .id')

if [ -n "$EPIC_FIELD_ID" ] && [ "$EPIC_FIELD_ID" != "null" ]; then
  gh project item-edit --project-id "$PROJECT_ID" --id "$CHILD_ITEM_ID" \
    --field-id "$EPIC_FIELD_ID" --text "#[EPIC_NUMBER]"
fi

スキル: project-board-enforcement

エピック進捗の追跡

エピックイシューを定期的に更新

イシューのステータスが変わるとき、エピックを更新します:

gh issue comment [EPIC_NUMBER] --body "## 進捗更新 - [DATE]

**完了:** #[N] - [タイトル]

**現在のステータス:**
- 準備完了: [X] イシュー
- 進行中: [Y] イシュー
- 完了: [Z] イシュー
- 合計: [X+Y+Z] / [TOTAL]

**次:** #[N] - [タイトル]"

エピック本文を再編成

エピック本文を最新に保つ:

## イシュー

### 準備完了
- [ ] #102 - Database schema
- [ ] #103 - API endpoints

### 進行中
- [ ] #101 - Initial setup (担当: @dev)

### 完了
- [x] #100 - Research spike

## 進捗
**イシュー:** 1 / 4 完了 (25%)
**最終更新:** 2025-12-02

エピックのライフサイクル

┌────────────┐     ┌────────────┐     ┌────────────┐     ┌────────────┐
│  Planning  │────▶│   Active   │────▶│  Closing   │────▶│   Done     │
└────────────┘     └────────────┘     └────────────┘     └────────────┘
     │                   │                   │                  │
     ▼                   ▼                   ▼                  ▼
  イシュー           イシュー        最後のイシュー     すべてのイシュー
  作成中            進行中          完了中            完了

エピック状態

状態プロジェクトステータスインジケーター
PlanningBacklogイシューが作成中、作業未開始
ActiveIn Progress少なくとも1つのイシューが進行中
ClosingIn Reviewすべてのイシューが完了またはレビュー中
DoneDoneすべてのイシューが完了、エピック完了

エピックの完了

完了前チェックリスト

エピックを完了する前に:

  • エピック内のすべてのイシューが完了している
  • エピックの成功基準がチェック済み
  • 依存するエピックが更新されている
  • イニシアチブ(該当する場合)が通知されている

エピックを完了

# 最終進捗更新
gh issue comment [EPIC_NUMBER] --body "## エピック完了 🎉

**すべてのイシューが解決:**
- [x] #100 - Research spike
- [x] #101 - Initial setup
- [x] #102 - Database schema
- [x] #103 - API endpoints

**成功基準を満たしました:**
- [x] 基準1
- [x] 基準2
- [x] 基準3

**完了日:** [DATE]
**期間:** [X日/週]"

# エピックを完了
gh issue close [EPIC_NUMBER]

# 該当する場合、イニシアチブを更新
gh issue comment [INITIATIVE_NUMBER] --body "## エピック完了: #[EPIC_NUMBER]

[エピック名]が完了しました。[X]個のイシューが解決されました。

**残りのエピック:** [一覧]"

エピックの依存関係

依存関係を文書化

エピック本文内:

## 依存関係

### このエピックが必要なもの
- #[EPIC_A] - [タイトル] - **ステータス:** [完了/進行中]
  - このエピックでブロックされるアイテム: #101、#102

### このエピックが有効化するもの
- #[EPIC_B] - [タイトル] - これが完了したときにブロック解除

ブロック済みイシューの管理

イシューが別のエピックでブロックされている場合:

gh issue edit [ISSUE_NUMBER] --add-label "blocked"

gh issue comment [ISSUE_NUMBER] --body "**ブロック元:** エピック #[OTHER_EPIC]

待機中: #[SPECIFIC_ISSUE] の完了を待っています。

ブロック解除条件: [条件]"

イニシアチブなしのエピック

スタンドアロンエピック(より大きなイニシアチブの一部ではない場合):

gh issue create \
  --title "[Epic] [NAME]" \
  --label "epic,epic-[SHORT-NAME]" \
  --body "## Epic: [NAME]

## ゴール
[このエピックが提供するもの]

## 成功基準
- [ ] [基準1]
- [ ] [基準2]

## イシュー
[作成予定]

## 進捗
**イシュー:** 0 / 0 完了

---
**タイプ:** スタンドアロンエピック
**マイルストーン:** [該当する場合]"

例: ダークモードエピック

エピックの作成

gh label create "epic-dark-mode" --color "1D76DB" \
  --description "Dark mode theme implementation"

gh issue create \
  --title "[Epic] Dark Mode Support" \
  --label "epic,epic-dark-mode" \
  --milestone "Q1 2026" \
  --body "## Epic: Dark Mode Support

## ゴール
ユーザーがライトテーマとダークテーマを切り替え、設定を永続化できます。

## 成功基準
- [ ] 設定のテーマ切り替え
- [ ] すべてのコンポーネントがテーマを適用
- [ ] セッション間で設定を永続化
- [ ] システム設定の検出

## イシュー

### 準備完了
- [ ] #201 - Design tokens for dark theme
- [ ] #202 - Theme context provider
- [ ] #203 - Settings toggle UI
- [ ] #204 - Component theme updates
- [ ] #205 - Preference persistence
- [ ] #206 - System preference detection

## 進捗
**イシュー:** 0 / 6 完了
**最終更新:** 2025-12-02"

イシューの作成

gh issue create \
  --title "[Feature] Design tokens for dark theme" \
  --label "epic-dark-mode,feature" \
  --body "エピック #200: Dark Mode Support の一部

## 説明
ダークテーマ用のCSS カスタムプロパティを作成します。

## 受け入れ基準
- [ ] ダークテーマカラーパレットが定義されている
- [ ] すべてのテーマカラーのCSS変数
- [ ] トークン使用方法のドキュメント"

メモリ統合

mcp__memory__create_entities([{
  "name": "Epic-[NAME]",
  "entityType": "Epic",
  "observations": [
    "Created: [DATE]",
    "Goal: [GOAL]",
    "Issue: #[NUMBER]",
    "Label: epic-[SHORT-NAME]",
    "Status: [Planning/Active/Done]",
    "Issues: [COUNT]",
    "Initiative: #[N] or Standalone"
  ]
}])

チェックリスト

  • エピック固有ラベルを作成した
  • エピック追跡イシューを作成した
  • エピックをプロジェクトボードに追加した(ITEM_IDで確認)
  • プロジェクトStatus = BacklogまたはReadyに設定した
  • プロジェクトType = Epicに設定した
  • 成功基準を定義した
  • 依存関係を文書化した
  • 最初のイシューをエピックラベル付きで作成した
  • すべての子イシューをプロジェクトボードに追加した
  • すべての子イシューのStatusとTypeを設定した
  • 子をエピックにリンクした(Epicフィールドが利用可能な場合)
  • マイルストーンを設定した(該当する場合)
  • イニシアチブにリンクした(該当する場合)
  • ナレッジグラフに保存した

ゲート: エピックとすべてのイシューがプロジェクトボードに配置されていない場合、子イシューを作成することも作業を開始することもできません。

スキル: project-board-enforcement

ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ

詳細情報

作者
majiayu000
リポジトリ
majiayu000/claude-skill-registry
ライセンス
MIT
最終更新
2026/5/4

Source: https://github.com/majiayu000/claude-skill-registry / ライセンス: MIT

本サイトは GitHub 上で公開されているオープンソースの SKILL.md ファイルをクロール・インデックス化したものです。 各スキルの著作権は原作者に帰属します。掲載に問題がある場合は info@alsel.co.jp または /takedown フォームよりご連絡ください。
原作者: majiayu000 · majiayu000/claude-skill-registry · ライセンス: MIT