gds-sprint-status について
gds-sprint-statusは、sprint-status.yamlを基にスプリント状況をまとめる開発者向けワークフロースキルです。ステータスとリスクを確認し、次のワークフローを提案するほか、ステータス別のStory表示やファイル内容の表示ができます。
主な機能
- 01スプリント状況の集計
- 02ステータスの検証
- 03リスクの検出
- 04次のワークフローの提案
- 05ステータス別のStory整理
活用シーン
- 01スプリントの進捗確認
- 02古い管理情報や不整合の検出
- 03次の開発ワークフローの選択
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ bmad-code-org/ bmad-module-game-dev-studio --skill gds-sprint-statusインストール後、Claude Code で/gds-sprint-statusを入力して読み込まれたか確認します。
同梱ファイルcustomize.toml
詳細
スプリント状況ワークフロー
目標: スプリントの状況を要約し、リスクを明らかにして、次に推奨するワークフローのアクションを提示します。
あなたの役割: 明確で実行可能なスプリント状況を示す開発者です。所要時間の見積もりは行わず、状況、リスク、次のステップに重点を置いてください。
パス
sprint_status_file={implementation_artifacts}/sprint-status.yaml
入力ファイル
| 入力 | パス | 読み込み方法 |
|---|---|---|
| スプリント状況 | {sprint_status_file} | FULL_LOAD |
コンテキスト
project_context=**/project-context.md(存在する場合に読み込み)
規則
- パスのみ(例:
template.md)はスキルのルートから解決します。 {skill-root}は、このスキルのインストール先ディレクトリ(customize.tomlがある場所)を指します。{project-root}は、プロジェクトの作業ディレクトリから親ディレクトリをたどり、最初に見つかった_bmad/を含むフォルダーを指します。{skill-name}はスキルディレクトリのベース名を指します。
有効化時
ステップ 1:ワークフローブロックを解決する
実行:uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --project-root {project-root} --key workflow
スクリプトが失敗した場合は、次の 3 つのファイルをベース → チーム → ユーザーの順に読み込み、リゾルバーと同じ構造マージ規則を適用して、workflow ブロックを自分で解決します。
{skill-root}/customize.toml— デフォルト{project-root}/_bmad/custom/{skill-name}.toml— チームによる上書き{project-root}/_bmad/custom/{skill-name}.user.toml— 個人による上書き
存在しないファイルはスキップします。スカラー値は上書きされ、テーブルは深くマージされます。code または id をキーとするテーブル配列は、一致する項目を置き換えて新しい項目を追加します。それ以外の配列はすべて追加されます。
ステップ 2:追加の先行ステップを実行する
続行する前に、{workflow.activation_steps_prepend} の各エントリを順番に実行します。
ステップ 3:永続的な事実を読み込む
{workflow.persistent_facts} の各エントリを、ワークフロー実行中に保持する基盤コンテキストとして扱います。file: で始まるエントリは、{project-root} 配下のパスまたはグロブです。参照されている内容を事実として読み込みます。それ以外のエントリは、記載どおりの事実です。
ステップ 4:設定を読み込む
{project-root}/_bmad/gds/config.yaml から設定を読み込み、次の項目を解決します。
user_namecommunication_languageimplementation_artifacts
ステップ 5:ユーザーにあいさつする
{communication_language} で {user_name} にあいさつします。
ステップ 6:追加の後続ステップを実行する
{workflow.activation_steps_append} の各エントリを順番に実行します。
有効化が完了しました。activation_steps_prepend または activation_steps_append にエントリがあった場合は、すべてのエントリを順番どおりに実行したことを確認してから続行します。すべての有効化ステップが完了するまで、メインワークフローを開始しないでください。
実行
呼び出し元が指定した場合は mode = {{mode}} に設定します。指定がない場合は mode = "interactive" に設定します ステップ 20 に進みます ステップ 30 に進みます ステップ 1 に進みます {project_context} を読み込み、プロジェクト全体のパターンと規則を確認します(存在する場合) {sprint_status_file} を探します ❌ sprint-status.yaml が見つかりません。 `/bmad:gds:workflows:sprint-planning` を実行して生成してから、sprint-status を再実行してください。 ワークフローを終了します ステップ 2 に進みます ファイル全体を読み込みます:{sprint_status_file} 次のフィールドを解析します:generated、last_updated、project、project_key、tracking_system、story_location development_status マップを解析します。キーを分類します: - エピック:「epic-」で始まり、「-retrospective」で終わらないキー - レトロスペクティブ:「-retrospective」で終わるキー - ストーリー:その他すべてのキー(例:1-2-login-form) 旧式のストーリーステータス「drafted」を「ready-for-dev」にマッピングします ストーリーステータスを集計します:backlog、ready-for-dev、in-progress、review、done 旧式のエピックステータス「contexted」を「in-progress」にマッピングします エピックステータスを集計します:backlog、in-progress、done レトロスペクティブのステータスを集計します:optional、doneすべてのステータスが既知の値か検証します:
-
有効なストーリーステータス:backlog、ready-for-dev、in-progress、review、done、drafted(旧式)
-
有効なエピックステータス:backlog、in-progress、done、contexted(旧式)
-
有効なレトロスペクティブのステータス:optional、done
⚠️ 不明なステータスが見つかりました: {{#each invalid_entries}}
{{key}}:「{{status}}」(認識されません) {{/each}}
有効なステータス:
- ストーリー:backlog、ready-for-dev、in-progress、review、done
- エピック:backlog、in-progress、done
- レトロスペクティブ:optional、done どのように修正しますか? {{#each invalid_entries}} {{@index}}. {{key}}:「{{status}}」→[有効なステータスを選択] {{/each}}
修正内容を入力してください(例:「1=in-progress, 2=backlog」)。修正せずに続行する場合は「skip」と入力してください: 修正した値で sprint-status.yaml を更新します 修正後のステータスでファイルを再解析します
リスクを検出します:
- IF いずれかのストーリーのステータスが「review」→
/bmad:gds:workflows:code-reviewを提案します - IF いずれかのストーリーのステータスが「in-progress」かつ、ステータスが「ready-for-dev」のストーリーがない → 作業中のストーリーに集中し続けることを推奨します
- IF すべてのエピックのステータスが「backlog」かつ、ステータスが「ready-for-dev」のストーリーがない →
/bmad:gds:workflows:create-storyを促します - IF
last_updatedのタイムスタンプが7日より古い(またはlast_updatedがない場合はgeneratedを使用)→ 「sprint-status.yaml may be stale」と警告します - IF いずれかのストーリーキーがエピックのパターンと一致しない(例:ストーリーが「5-1-...」なのに「epic-5」がない)→ 「orphaned story detected」と警告します
- IF いずれかのエピックのステータスが「in-progress」なのに関連するストーリーがない → 「in-progress epic has no stories」と警告します
- プロジェクト:{{project}}({{project_key}})
- トラッキング:{{tracking_system}}
- ステータスファイル:{sprint_status_file}
ストーリー: バックログ {{count_backlog}}、開発準備完了 {{count_ready}}、進行中 {{count_in_progress}}、レビュー {{count_review}}、完了 {{count_done}}
エピック: バックログ {{epic_backlog}}、進行中 {{epic_in_progress}}、完了 {{epic_done}}
次の推奨事項: /bmad:gds:workflows:{{next_workflow_id}}({{next_story_id}})
{{#if risks}} リスク: {{#each risks}}
-
{{this}} {{/each}} {{/if}}
実行:uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --project-root {project-root} --key workflow.on_complete — 解決された値が空でない場合は、終了前の最後のターミナル指示としてそれに従ってください。
実行:uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --project-root {project-root} --key workflow.on_complete — 解決された値が空でない場合は、終了前の最後のターミナル指示としてそれに従ってください。
{sprint_status_file} を読み込んで解析する
必須のメタデータフィールドが存在することを確認する:generated、project、project_key、tracking_system、story_location(後方互換性のため last_updated は任意) is_valid = false error = "Missing required field(s): {{missing_fields}}" suggestion = "Re-run sprint-planning or add missing fields manually" 戻る development_status セクションが存在し、エントリーが1つ以上あることを確認します is_valid = false error = "development_status missing or empty" suggestion = "Re-run sprint-planning or repair the file manually" Return
すべてのステータス値が既知の有効なステータスと一致することを検証します:
- ストーリー:backlog、ready-for-dev、in-progress、review、done(旧形式:drafted)
- エピック:backlog、in-progress、done(旧形式:contexted)
- レトロスペクティブ:任意、done is_valid = false error = "Invalid status values: {{invalid_entries}}" suggestion = "Fix invalid statuses in sprint-status.yaml" Return
is_valid = true
message = "sprint-status.yaml valid: metadata complete, all statuses recognized"
実行:uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --project-root {project-root} --key workflow.on_complete — 解決された値が空でない場合は、終了前の最後のターミナル指示として従ってください。