Skills

/carve

仕様書を実装可能なPR単位に分割し、Jiraチケットを一括作成する。

About

仕様書を実装可能なPR単位に分割し、Jiraチケットを一括作成する。

Category:Planning
Scope:universal

Usage

Use when user says "carve", "チケット分割", "タスク分解", "PR分割", "break down", "チケット作って".

Requirements

MCP SERVERS

Atlassian

Install

Agent:
curl -sf /api/skills/carve/download | tar xz -C .claude/skills/

Download / Upload

ZIP でダウンロード

→ Claude.ai: Customize > Skills にアップロード

Source

Carve

仕様書を実装可能な PR 単位に分割し、依存関係付きで Jira チケットを一括作成する。

入力

  • $ARGUMENTS: Confluence ページURL、Jira エピックキー、またはローカルの仕様書パス
  • 入力がない場合はユーザーに確認する

定数

  • cloudId: 実行時に getAccessibleAtlassianResources で取得する
  • プロジェクトキー: LLAM($ARGUMENTS で上書き可能)

手順

1. 仕様書の取得

入力ソースに応じて仕様書を読み込む:

  • Confluence URL: getConfluencePage でページ内容を取得
  • Jira エピック: getJiraIssue で description を取得 + 既存の子チケットを確認
  • ローカルファイル: Read ツールで読み込み
  • 直前の /shape の出力: 同一セッション内なら記憶しているのでそのまま使う

2. コードベース探索

仕様書の内容に基づき、実装に必要な技術的コンテキストを収集する:

  • 変更が必要なファイル・ディレクトリの特定
  • 依存関係の把握(このファイルを変えると何に影響するか)
  • テスト戦略(どのレベルのテストが必要か)

3. PR 分割

以下の原則に基づいて仕様を PR 単位に分割する:

分割の原則:

  • 1 PR = 1 目的(「認証APIの追加」「ログイン画面の改修」など)
  • レビュー可能なサイズ: 差分が大きすぎない(目安: 変更ファイル 10 個以内)
  • 小さすぎない: 1ファイル1PRのような過度な分割はしない
  • 単独でマージ可能: 各PRは単独でCIが通り、壊れた状態にならない
  • 依存順が明確: どの順で着手・マージすべきか

典型的な分割パターン:

  1. データモデル変更(Prisma schema + migration)
  2. バックエンド: データ層(repository / database utils)
  3. バックエンド: サービス層 + API エンドポイント
  4. フロントエンド: 共通コンポーネント
  5. フロントエンド: 画面実装
  6. 結合テスト / E2E テスト

並列実行の考慮:

  • 依存関係がないチケットは並列着手可能であることを明示する
  • エージェントが worktree で並列実行するケースを想定する

4. 分割案の提示

以下の形式でユーザーに提示する:

チケット一覧テーブル

#タイトルタイプ優先度依存先並列可概要

依存関係図

  ┌────────┐     ┌────────┐
  │ #1 DB  │────▶│ #2 API │──┬──▶ #4 画面A
  └────────┘     └────────┘  └──▶ #5 画面B(並列可)
                                       ↓
                               ┌────────┐
                               │ #3 共通 │──▶ #4, #5 が利用
                               └────────┘

各チケットの詳細

チケットごとに:

  • 設計方針: どの層に何を追加するか、既存パターンの参照先
  • AC: 具体的で検証可能な受け入れ条件
  • 影響範囲: 変更対象のファイル・ディレクトリ(概要レベル)

5. ユーザー確認と調整

分割案を提示し、フィードバックを受ける:

  • チケットの統合・分割の調整
  • 優先度の変更
  • 担当者の割り当て(任意)
  • エピックの指定

6. Jira チケット一括作成

承認されたら createJiraIssue で一括作成する:

各チケットに設定する情報:

  • summary: チケットタイトル
  • description: 設計方針 + AC(Markdown形式)
  • issueTypeName: タスク / ストーリー / バグ(内容に応じて)
  • priority: 分割案で決めた優先度
  • parent: 指定されたエピック
  • customfield_10020: 現在のアクティブスプリント(必要に応じて)

作成後:

  • チケット間の依存関係を issuelinks で設定(blocks / is blocked by)
  • 仕様書(Confluence)へのリンクをチケットの description に含める
  • 作成結果のサマリを表示(チケットキー + URL の一覧)

注意事項

  • チケットの description にコード例は書かない。設計方針と AC のみ
  • customfield_10045(Steps to reproduce)はバグタイプの場合のみ ADF 形式で設定する
  • 並列実行可能なチケットは明示的にマークする(エージェントの worktree 活用を想定)
  • 分割が不要な小さい機能の場合は「分割不要、1チケットで十分です」と伝える