关于 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
如果脚本失败,则按 base → team → user 的顺序读取以下三个文件,并应用与解析器相同的结构合并规则,自行解析 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} 下的路径或 glob 模式——加载所引用的内容作为事实。其他所有条目均按原文视为事实。
步骤 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}};否则设置 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:以 "epic-" 开头(且不以 "-retrospective" 结尾)的键 - 复盘:以 "-retrospective" 结尾的键 - 故事:其他所有键(例如 1-2-login-form) 将旧版故事状态 "drafted" 映射为 "ready-for-dev" 统计故事状态:backlog、ready-for-dev、in-progress、review、done 将旧版 Epic 状态 "contexted" 映射为 "in-progress" 统计 Epic 状态:backlog、in-progress、done 统计复盘状态:optional、done验证所有状态是否属于已知值:
-
有效的故事状态:backlog、ready-for-dev、in-progress、review、done、drafted(旧版)
-
有效的 Epic 状态:backlog、in-progress、done、contexted(旧版)
-
有效的复盘状态:optional、done
⚠️ 检测到未知状态: {{#each invalid_entries}}
{{key}}:"{{status}}"(无法识别) {{/each}}
有效状态:
- 故事:backlog、ready-for-dev、in-progress、review、done
- Epic:backlog、in-progress、done
- 复盘:optional、done 应如何更正这些状态? {{#each invalid_entries}} {{@index}}. {{key}}:"{{status}}" → [选择有效状态] {{/each}}
输入更正内容(例如 "1=in-progress, 2=backlog"),或输入 "skip" 在不修正的情况下继续: 使用更正后的值更新 sprint-status.yaml 使用更正后的状态重新解析文件
检测风险:
- 如果任何故事的状态为 "review":建议使用
/bmad:gds:workflows:code-review - 如果任何故事的状态为 "in-progress",且没有故事的状态为 "ready-for-dev":建议专注于正在进行的故事
- 如果所有 Epic 的状态均为 "backlog",且没有故事的状态为 "ready-for-dev":提示使用
/bmad:gds:workflows:create-story - 如果
last_updated时间戳距今超过 7 天(或缺少last_updated时回退使用generated):警告 "sprint-status.yaml 可能已过时" - 如果任何故事键不符合 Epic 编号模式(例如,故事 "5-1-..." 存在,但没有 "epic-5"):警告 "检测到孤立故事"
- 如果任何 Epic 的状态为 in-progress,但没有关联故事:警告 "进行中的 Epic 没有故事"
- 项目:{{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_fields}}" suggestion = "重新运行 sprint-planning,或手动添加缺失字段" 返回 验证 development_status 部分存在且至少包含一条记录 is_valid = false error = "development_status missing or empty" suggestion = "Re-run sprint-planning or repair the file manually" 返回
根据已知有效状态验证所有状态值:
- 故事: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" 返回
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 — 如果解析后的值非空,则在退出前将其作为最终终端指令执行。