mcpField
S
story-definition

story-definition

github.com/somnio-software開発844 回インストール1 週間前に更新
リポジトリ

story-definition について

story-definitionは、機能、エピック、要件、アイデアを実装可能なユーザーストーリーに分解するチーム向けスキルです。垂直スライスとテスト可能性の確認を行い、プロジェクトトラッカー接続時は承認後にストーリーを作成できます。

主な機能

  1. 01プロジェクトとバックログの情報収集
  2. 02作業を垂直スライスに分解
  3. 03テスト可能な受け入れ条件付きストーリーの作成
  4. 04範囲、重複、依存関係の確認
  5. 05承認後のトラッカーチケット作成

活用シーン

  1. 01エピックをスプリント対応のストーリーに分解
  2. 02機能の受け入れ条件を明確化
  3. 03ストーリーの依存関係と順序を整理

MCP 対応

プロジェクトトラッカー接続時は、プロジェクト情報とバックログを確認し、承認されたストーリーや依存リンクを作成できます。接続済みのチャットを使い、確認後にチームへ通知することもできます。

インストール

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

$npx skills add https://github.com/somnio-software/somnio-ai-tools --skill story-definition

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

詳細

ストーリー定義

チームが、機能、エピック、要件、アイデアから、明確で実装可能なユーザーストーリーを定義できるよう支援します。接続済みのツールからプロジェクトのコンテキストを取得し、構造化されたフレームワークを適用して、プロジェクトトラッカーにストーリーを直接作成します。

ワークフロー

ステップ 1 — コンテキストを収集する

何を分解する必要があるのかを把握してから、書き始めます。

~~project tracker が接続されている場合:

  • 作業するプロジェクトまたはボードをユーザーに尋ねます
  • 現在のエピック、ラベル、チームメンバーを取得して、プロジェクトの構成を把握します
  • 関連するストーリーや重複するストーリーがないか、既存のバックログを確認します
  • コンテキストを把握するため、リンクされた要件、仕様、親エピックを取得します
  • プロジェクトで使われている既存の規約(ラベルの分類、ストーリーポイントの尺度、命名パターン)を特定します

プロジェクトトラッカーが接続されていない場合:

  • 機能、エピック、または要件について、ユーザーに説明を求めます
  • 誰が実装するのか、技術スタック、制約など、チームの状況を尋ねます
  • ストーリーの形式に関して、既存の規約があるか尋ねます

必ず尋ねること:

  • この作業で達成すべき目標や成果は何ですか?
  • 既知の制約(スケジュール、依存関係、技術的制限)はありますか?
  • どの程度の粒度が必要ですか?(エピックレベル、スプリント対応、タスクレベル)
ステップ 2 — 分析して分解する

入力を、論理的で実装可能な単位に分解します。

分解の原則:

  1. 垂直分割 — 各ストーリーは水平のレイヤーではなく、エンドツーエンドの価値を薄く切り出して提供します。ストーリーは、特定の動作に必要なすべてのレイヤー(UI、API、DB)に関わるものにします。
  2. INVEST 基準 — すべてのストーリーは、以下の条件を満たす必要があります。
    • Independent(独立している)— 他のストーリーを待たずに構築して提供できる(依存関係を最小限にする)
    • Negotiable(交渉可能である)— 詳細を話し合えるものであり、厳格な仕様ではない
    • Valuable(価値がある)— ユーザー、ステークホルダー、またはシステムに明確な価値を提供する
    • Estimable(見積もり可能である)— チームが妥当に作業量を見積もれる
    • Small(小さい)— 1 つのスプリント内に収まる(大きすぎる場合は、さらに分割する)
    • Testable(テスト可能である)— 完了したことを確認できる明確な条件がある
  3. 依存関係のマッピング — 他のストーリーを妨げるストーリーを特定し、循環依存に注意します
  4. リスク優先の順序付け — リスクや不確実性の高いストーリーを早い段階で明らかにし、優先して取り組めるようにします

ストーリーが大きすぎる場合の分割方法:

方法使用する場面例
ワークフローのステップごと複数ステップのプロセス「ユーザーが商品をカートに追加できる」対「ユーザーがチェックアウトできる」
ビジネスルールごと複雑なバリデーション「基本的なバリデーション」対「エッジケースの処理」
データの種類ごと複数のエンティティタイプ「CSV の連絡先をインポートする」対「CSV の企業をインポートする」
インターフェースごと複数のエントリーポイント「フォームから作成する」対「API から作成する」
操作ごとCRUD 全体「一覧を表示する」対「項目を編集する」対「項目を削除する」
ペルソナごとユーザータイプの違い「管理者が設定できる」対「メンバーが表示できる」
正常系/エッジケース複雑なフロー「支払いが成功する」対「失敗時に支払いを再試行する」
ステップ 3 — ストーリーを書く

各ストーリーに、次の形式を使用します。プロジェクトの規約と異なる場合は、フィールド名を合わせて調整します。

Title: [Action-oriented, concise — starts with a verb or "As a..."]

User story:
As a [specific persona/role],
I want to [concrete action],
so that [measurable outcome or business value].

Acceptance criteria:
- [ ] Given [context], when [action], then [expected result]
- [ ] Given [context], when [action], then [expected result]
- [ ] [Additional criteria using Given/When/Then or plain checkboxes]

Definition of done:
- [ ] Code implemented and passing CI
- [ ] Unit/integration tests covering acceptance criteria
- [ ] Code reviewed and approved
- [ ] [Project-specific DoD items from team conventions]

Technical notes:
- Implementation hints, API contracts, data model changes
- Links to relevant specs, designs, or documentation
- Known risks or open questions to resolve during implementation

Size: [T-shirt (XS/S/M/L/XL) or story points — match project convention]
Priority: [P0-Critical / P1-High / P2-Medium / P3-Low]
Labels: [Use existing project labels when available]
Dependencies: [List story titles or IDs this story depends on]

品質チェックリスト — すべてのストーリーに適用します:

  • ボードビューでタイトルをざっと読んで把握できる(80 文字未満)
  • 「その結果」には、アクションの言い換えではなく、実際の成果が記載されている
  • 受け入れ条件がテスト可能であり、「適切に動作する」のような曖昧な表現がない
  • 各受け入れ条件が 1 つの動作を扱っている(複合した条件は分割する)
  • 実装者にとって自明でない内容には、技術的な注記がある
  • サイズはコード量ではなく、実際の複雑さを反映している
  • 隠れた作業がない — ストーリーにマイグレーション、設定変更、ドキュメント更新が必要な場合、それらが明記されている
ステップ 4 — 検証して整理する

ストーリーを提示または作成する前に、品質チェックを行います。

検証項目:

  1. 網羅性 — ストーリー全体で機能/エピックを完全に実現できますか?不足している点を特定します。
  2. 重複 — 同じ作業を行うストーリーが複数ありませんか?統合するか、境界を明確にします。
  3. 依存関係グラフ — ストーリーをビルド可能な順序に並べられますか?循環依存があれば指摘します。
  4. スプリントへの適合性 — 各ストーリーは 1 スプリントで完了できる規模ですか?さらに分割が必要なものがあれば指摘します。
  5. テスト可能性 — QA はすべての受け入れ条件を曖昧さなく検証できますか?
  6. バックログの確認 — ~~project tracker が接続されている場合、既存のストーリーでこの作業がすでにカバーされていないか確認します。

出力を整理する:

  • エピックまたは機能領域ごとにストーリーをグループ化します
  • 推奨実装順(依存関係が先、その後に優先度)に並べます
  • スプリント対応済みのストーリーと、さらに詳細化が必要なストーリーを明確に示します
  • 作業範囲の合計をまとめます:ストーリー数、推定総工数、推奨スプリント配分
ステップ 5 — プロジェクト管理ツールで作成する

~~project tracker が接続されている場合:

  • チケットを作成する前にユーザーの確認を取ります
  • 先に概要テーブルを表示します:
#タイトル規模優先度依存関係
1...SP1—
2...MP1#1
  • ユーザーの承認後、接続されたツールで各ストーリーを作成します
  • 相談した内容に基づき、ラベル、担当者、スプリント、親エピックを設定します
  • 対応している場合、ストーリー間の依存関係リンクを設定します
  • 作成したチケットへのリンクを報告します

プロジェクト管理ツールが接続されていない場合:

  • 上記の構造化された形式でストーリーを提示します
  • ユーザーがツールに貼り付けられるよう、Markdown または書式付きリストでのエクスポートを提案します
ステップ 6 — チームに通知する

~~chat が接続されている場合:

  • 新しいストーリーについてチームに通知するか、ユーザーに確認します
  • 作成した内容、ストーリー数、推定総工数、ボード/プロジェクトへのリンクをまとめた簡潔なメッセージを作成します
  • ユーザーの確認後にのみ投稿します

ストーリーの規模ガイド

プロジェクトで既存の尺度があれば、それを使用します。なければ、次のいずれかを提案します。

T シャツサイズ(見積もりに慣れていないチームにおすすめ):

サイズ一般的な作業範囲例
XS設定変更、文言の更新、1 行の修正機能フラグの切り替え、誤字の修正
S単一コンポーネント、明確な進め方フォーム項目の追加、既知のパターンに沿った新しい API エンドポイント
M複数コンポーネント、多少の不確実性新しい CRUD 機能、ドキュメント化された API との統合
L横断的な作業、設計上の判断が必要新しい認証フロー、データ変換を伴うデータ移行
XLおそらくさらに分割すべき機能全体の再設計、新しいサービス

フィボナッチストーリーポイント(ベロシティ追跡を行うチーム向け):

ポイント相対的な工数
1ごく簡単 — 数時間
2小規模 — 1 日以内
3中程度 — 数日
5大きな作業 — ほぼ 1 週間
8大規模 — 1 週間、分割を検討
13非常に大規模 — 分割必須

優先度の基準

レベルラベル基準対応
P0重大リリースを妨げる、セキュリティ上の問題、データ損失のリスク即時対応 — 現在のスプリント
P1高機能/エピックの目標に不可欠、ユーザーへの影響が大きい次に空いているスプリント
P2中価値のある改善だが、ブロッカーではないバックログ — キャパシティに余裕があるときに計画
P3低あれば便利、仕上げ、軽微な機能強化バックログ — 計画時に再検討

避けるべきアンチパターン

アンチパターン問題解決策
「機能 X を実装する」ユーザーにとっての価値が示されておらず、受け入れ基準もありませんペルソナ、成果、テスト可能な基準を追加します
水平分割「API を構築する」の後に「UI を構築する」では、両方が完了するまで価値を提供できません垂直に分割し、ひとつの動作をエンドツーエンドで実現します
巨大なストーリー「ユーザーとして、チェックアウトのフロー全体を利用したい」では、見積もりができませんワークフローのステップ、操作、またはビジネスルールごとに分割します
曖昧な受け入れ基準「正しく動作すること」では、テストできません具体的な入力と出力を用いて、Given/When/Then を使用します
依存関係の不足前提条件が特定されていないため、ストーリーが失敗します分解の際に依存関係を明示的に整理します
ゴールドプレーティング「あるとよい」詳細が中核要件に混在しています必須の基準と機能強化を分けます
ペルソナの使い回しすべてに「ユーザーとして」を使うと、文脈が失われます管理者、メンバー、ゲスト、API 利用者など、具体的な役割を使います

コメント