--- name: scope-check description: "通过将当前范围与原始计划进行对比,分析功能或 Sprint 的范围蔓延(Scope Creep)。标记新增项,量化膨胀程度,并推荐裁剪方案。" argument-hint: "[feature-name or sprint-N]" user-invocable: true allowed-tools: Read, Glob, Grep context: | !git diff --stat HEAD~20 2>/dev/null --- 当此技能被调用时: 1. **读取原始计划** — 找到相关文档: - 如果是功能名称:从 `design/gdd/` 读取设计文档 - 如果是 Sprint 编号:从 `production/sprints/` 读取 Sprint 计划 - 如果是里程碑:从 `production/milestones/` 读取里程碑定义 2. **读取当前状态** — 检查实际已实现或正在进行的部分: - 扫描代码库中与该功能/Sprint 相关的文件 - 读取 Git 日志中与此工作相关的提交 - 检查指示未完成范围新增的 TODO 注释 3. **对比原始范围与当前范围**: ```markdown ## 范围检查: [Feature/Sprint Name] 生成时间: [Date] ### 原始范围 [原始计划中的项目列表] ### 当前范围 [当前已实现或正在进行的项目列表] ### 新增范围(不在原始计划中) | 新增项 | 添加者 | 时间 | 有依据? | 工作量 | |--------|--------|------|----------|--------| | [item] | [commit/person] | [date] | [是/否/不明确] | [小/中/大] | ### 移除范围(在原始计划中但已取消) | 移除项 | 原因 | 影响 | |--------|------|------| | [item] | [移除原因] | [受影响的内容] | ### 膨胀评分 - 原始项目数: [N] - 当前项目数: [N] - 新增项目数: [N] (+[X]%) - 移除项目数: [N] - 净范围变化: [+/-N] ([X]%) ### 风险评估 - **进度风险**: [低/中/高] — [说明] - **质量风险**: [低/中/高] — [说明] - **集成风险**: [低/中/高] — [说明] ### 建议 1. **裁剪**: [为按时交付应移除的项目] 2. **延期**: [可移至未来 Sprint/版本的项目] 3. **保留**: [确实必要的新增项] 4. **标记**: [需要制作人(Producer)/创意总监(Creative Director)决策的项目] ``` 4. **输出范围检查结果**,附带明确结论: - **正常**: 范围在原始计划的 10% 以内 - **轻微蔓延**: 范围增加 10-25% — 通过调整可管理 - **显著蔓延**: 范围增加 25-50% — 需要裁剪或延长工期 - **失控**: 范围增加 >50% — 停止并重新规划 ### 规则 - 范围蔓延是指在没有相应裁剪或工期延长的情况下新增内容 - 并非所有新增都是坏事 — 有些是发现的需求。但必须被确认并纳入考量 - 在推荐裁剪时,优先保护核心玩家体验,而非锦上添花的功能 - 始终量化范围变化 — "感觉变大了"不可操作,"+35% 的项目数"才是