mcpField
C
create-user-story

create-user-story

github.com/huytieu開発1.3k179 回インストール6 日前に更新
リポジトリ

create-user-story について

機能要件をユーザーストーリーにまとめ、重複確認とレビューを経てトラッカーに登録する COG スキルです。プロジェクトトラッカーまたはローカル保管庫で要望を管理するチーム向けです。

主な機能

  1. 01機能とプロジェクトの背景を抽出
  2. 02作成前に重複を確認
  3. 03標準形式のユーザーストーリーを作成
  4. 04レビュー後に課題またはローカルファイルを作成

活用シーン

  1. 01機能要望をユーザーストーリーに変換
  2. 02要望がすでに登録済みか確認
  3. 03トラッカーがない場合にストーリーをローカル保存

インストール

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

$npx skills add https://github.com/huytieu/cog-second-brain --skill create-user-story

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

詳細

COG ユーザーストーリー作成スキル

呼び出すタイミング

  • ユーザーが新しいユーザーストーリー、機能リクエスト、または課題の作成を希望している
  • ユーザーが「ストーリーを作成」「新しいストーリー」「課題を追加」「ユーザーストーリーを書く」「チケットを作成」と言っている
  • ユーザーが、追跡すべき機能や要件について説明している

エージェントモードの確認

00-inbox/MY-PROFILE.md のフロントマターで agent_mode を確認します:

  • agent_mode: team の場合 — 並列エージェントを使って、すべてのアクティブなトラッカーで重複を同時に確認してから、ストーリーを作成します
  • agent_mode: solo の場合 — メインの会話で重複を確認し、ストーリーを順に作成します

コマンド:/create-user-story

事前確認

  1. 00-inbox/MY-INTEGRATIONS.md を読み、どのプロジェクトトラッカーが有効かを確認します:

    • Linear — Linear MCP ツールを使用します
    • GitHub — gh CLI を使用します
    • Jira — jira CLI または WebFetch 経由の Jira API を使用します
    • 有効なトラッカーがない場合は、ストーリーを 04-projects/[project]/stories/ に Markdown ファイルとして保存し、ユーザーに知らせます
  2. 00-inbox/MY-PROFILE.md を読み、次の情報を取得します:

    • アクティブなプロジェクト(対象のプロジェクト/リポジトリ/ボードを判断するため)
    • ユーザーの名前(ストーリーの作成者として記載するため)
  3. まだ提示されていない場合は、ユーザーに尋ねます:

    • 機能または要件は何ですか?(自由形式の説明)
    • どのプロジェクトに属しますか?(アクティブなプロジェクトが複数ある場合)
    • 優先度はどの程度ですか?(任意。指定がなければ中程度)

実行方針

フェーズ 1:リクエストを理解する

ユーザーの入力を解析して、次の情報を抽出します:

  • 機能の説明 — ユーザーが何を実現したいか
  • 対象ユーザー — 誰がメリットを得るか
  • 問題の説明 — どのような問題を解決するか
  • プロジェクトの背景 — どのプロジェクトに属するか

ユーザーの説明が簡潔な場合は、先に確認の質問をします:

  • この機能の対象ユーザーは誰ですか?
  • どのような問題を解決しますか?
  • 想定している具体的な受け入れ条件はありますか?
フェーズ 2:重複を確認する

重要:作成する前に、必ず重複を確認してください。

チームモード(並列エージェント)

run_in_background: true を指定して Task ツールを使い、重複確認エージェントを並列で起動します:

エージェント:「duplicate-checker-linear」(Linear が有効な場合)

Search Linear for potential duplicate issues.
1. Use ToolSearch to load Linear tools
2. Use mcp__claude_ai_Linear_2__list_issues to search for issues with similar keywords
3. Search across all active projects/teams
4. Return any issues that match by title similarity or description overlap

Search terms: [extracted keywords from user's description]
Return: list of potential duplicates with title, status, URL, and similarity assessment

エージェント:「duplicate-checker-github」(GitHub が有効な場合)

Search GitHub Issues for potential duplicates.
Repository: [CUSTOMIZE: your-org/your-repo]

1. gh search issues "[keywords]" --repo [CUSTOMIZE: your-org/your-repo] --json number,title,state,url,body --limit 20
2. Also search closed issues to check if this was already done:
   gh search issues "[keywords]" --repo [CUSTOMIZE: your-org/your-repo] --state closed --json number,title,state,url --limit 10

Return: list of potential duplicates with title, status, URL, and similarity assessment

エージェント:「duplicate-checker-jira」(Jira が有効な場合)

Search Jira for potential duplicate issues.
Project: [CUSTOMIZE: YOUR-PROJECT-KEY]

1. Use WebFetch or jira CLI to search:
   JQL: project = "[CUSTOMIZE: YOUR-PROJECT-KEY]" AND text ~ "[keywords]" ORDER BY created DESC
2. Check both open and recently resolved issues

Return: list of potential duplicates with key, title, status, URL, and similarity assessment
ソロモード(順次実行)

有効なトラッカーについて、同じ重複確認を順番に実行します。

フェーズ 3:重複を報告する(見つかった場合)

重複の可能性がある項目が見つかった場合は、ユーザーに提示します:

I found [N] potential duplicate(s):

1. **[TITLE]** ([STATUS]) — [URL]
   Similarity: [High/Medium/Low] — [reason]

2. **[TITLE]** ([STATUS]) — [URL]
   Similarity: [High/Medium/Low] — [reason]

Options:
a) These are different — proceed with creating the new story
b) This is a duplicate of #[N] — skip creation
c) This is related to #[N] — create and link them

続行する前に、ユーザーの確認を待ちます。

フェーズ 4:ユーザーストーリーを作成する

標準的なユーザーストーリー形式でストーリーを作成します:

## Title
[Concise, descriptive title]

## User Story
**As a** [type of user],
**I want** [goal/desire],
**So that** [benefit/value].

## Description
[Expanded description of the feature, including context and background]

## Acceptance Criteria

### Scenario 1: [Happy path scenario name]
- **Given** [precondition]
- **When** [action]
- **Then** [expected outcome]

### Scenario 2: [Alternative scenario name]
- **Given** [precondition]
- **When** [action]
- **Then** [expected outcome]

### Scenario 3: [Edge case or error scenario name]
- **Given** [precondition]
- **When** [action]
- **Then** [expected outcome]

## Technical Notes
[Any implementation hints, constraints, or dependencies — if applicable]

## Out of Scope
[What this story explicitly does NOT cover — helps prevent scope creep]

作成する前に、確認用として整形済みのストーリーをユーザーに提示します。

フェーズ 5:トラッカーに作成する

ユーザーがストーリーの内容を承認したら:

Linear
1. Use ToolSearch to load Linear tools
2. Use mcp__claude_ai_Linear_2__get_team to find the target team
3. Use mcp__claude_ai_Linear_2__list_issue_labels to find appropriate labels
4. Use mcp__claude_ai_Linear_2__save_issue to create the issue with:
   - title: [story title]
   - description: [full story in markdown]
   - team: [target team]
   - priority: [user-specified or default medium]
   - labels: [appropriate labels]
GitHub Issues
gh issue create \
  --repo [CUSTOMIZE: your-org/your-repo] \
  --title "[story title]" \
  --body "[full story in markdown]" \
  --label "[appropriate labels]"
Jira
Use WebFetch to POST to Jira REST API or use jira CLI:
- Project: [CUSTOMIZE: YOUR-PROJECT-KEY]
- Issue Type: Story
- Summary: [story title]
- Description: [full story in markdown/Jira wiki format]
- Priority: [user-specified or default Medium]
- Labels: [appropriate labels]
Vault へのフォールバック(有効なトラッカーがない場合)

04-projects/[project]/stories/story-YYYY-MM-DD-[slug].md に保存します

フェーズ 6:作成を確認してリンクする
  1. 作成したことをユーザーに確認します:

    Story created: **[TITLE]**
    [URL or file path]
    Priority: [priority]
    Labels: [labels]
    
  2. ユーザーが別の課題との関連を示していた場合(フェーズ 3 の選択肢 c)、両者の間にリンク/関連付けを作成します。

  3. また、Vault で参照できるように、ローカルコピーを 04-projects/[project]/stories/ に保存します。


フォールバック動作

シナリオ動作
有効なトラッカーがない04-projects/[project]/stories/ に Markdown として保存します
トラッカー API が失敗するローカルに保存し、ユーザーに警告して、整形済みの内容を使った手動作成を提案します
重複確認に失敗する重複確認をスキップしたことをユーザーに警告し、確認を得てから作成します
ユーザーがプロジェクトを指定しないMY-PROFILE.md に記載されたアクティブなプロジェクトを一覧表示し、どのプロジェクトか尋ねます
ユーザーの入力が最小限である完全なストーリーを作成するため、確認の質問をします

エラー処理

  • API のレート制限:待機してから一度だけ再試行し、その後はローカルへの保存に切り替えます
  • 認証エラー:連携の再認証が必要な可能性があることをユーザーに伝えます
  • 検索結果が多い場合:重複チェックを関連性の高い上位 10 件に制限します
  • コンテキストのオーバーフロー:重複結果の詳細をすべて表示するのではなく、要約します

コメント