retrospective
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChinesePhase 1: Parse Arguments
阶段1:解析参数
Determine whether this is a sprint retrospective () or a milestone retrospective ().
sprint-Nmilestone-name确定本次生成的是迭代冲刺回顾()还是里程碑回顾()。
sprint-Nmilestone-namePhase 1b: Check for Existing Retrospective
阶段1b:检查是否存在已有回顾文档
Before loading any data, glob for an existing retrospective file:
- For sprint retrospectives: (also check
production/retrospectives/retro-[sprint-slug]-*.mdas an alternate location)production/sprints/sprint-[N]-retrospective.md - For milestone retrospectives:
production/retrospectives/retro-[milestone-name]-*.md
If a matching file is found, use :
AskUserQuestion- Prompt: "An existing retrospective was found: [filename]. How do you want to proceed?"
- Options:
[A] Update existing — load it and add/revise sections with new data[B] Start fresh — generate a new retrospective (archive the old one)
If [A]: read the existing file and carry its content forward, revising sections with new data.
If [B]: continue to Phase 2 with a blank slate. Before writing the new file, rename the existing one with a suffix.
-archived-[date]在加载任何数据之前,查找是否存在已有的回顾文档:
- 迭代冲刺回顾文档:(同时检查备用路径
production/retrospectives/retro-[sprint-slug]-*.md)production/sprints/sprint-[N]-retrospective.md - 里程碑回顾文档:
production/retrospectives/retro-[milestone-name]-*.md
如果找到匹配文件,调用工具:
AskUserQuestion- 提示语:"检测到已有回顾文档:[文件名]。您希望如何处理?"
- 选项:
[A] 更新已有文档 —— 加载该文档并使用新数据添加/修订章节[B] 重新生成 —— 创建新的回顾文档(归档旧文档)
若选择[A]:读取已有文档并保留其内容,使用新数据修订对应章节。
若选择[B]:以空白状态进入阶段2。在写入新文档前,将旧文档重命名为后缀的格式。
[原文件名]-archived-[日期]Phase 2: Load Sprint or Milestone Data
阶段2:加载迭代冲刺或里程碑数据
Read the sprint or milestone plan from the appropriate location:
- Sprint plans:
production/sprints/ - Milestone definitions:
production/milestones/
Also check for : if it exists, read it alongside the sprint plan. It is the authoritative source for actual story completion status (status: done, completed dates, blockers). Use it as the primary source for completion metrics in Phase 3. Fall back to markdown scanning only if the yaml does not exist. Note discrepancies between the yaml and the sprint plan (e.g., stories in yaml not in plan, or vice versa).
production/sprint-status.yamlIf the file does not exist or is empty, output:
"No sprint data found for [sprint/milestone]. Runto generate sprint data first, or provide the sprint details manually."/sprint-status
Then use to present two options:
AskUserQuestion- [A] Provide data manually — ask the user to paste or describe the sprint tasks, dates, and outcomes; use that as the source of truth for the retrospective.
- [B] Stop — abort the skill. Verdict: BLOCKED — no sprint data available.
If the user chooses [A], collect the data and continue to Phase 3 using what they provide.
If the user chooses [B], stop here.
Extract: planned tasks, estimated effort, owners, and goals.
Run git log for the sprint period to understand what was actually committed and when. Use the Bash tool (which uses Git Bash on Windows — the is bash syntax, not PowerShell):
2>/dev/nullBash: git log --oneline --since="4 weeks ago" 2>/dev/null || git log --oneline -20Adjust the date to match the sprint duration if known from the sprint plan.
--since从对应路径读取迭代冲刺计划或里程碑定义:
- 迭代冲刺计划:
production/sprints/ - 里程碑定义:
production/milestones/
同时检查文件:如果存在,将其与迭代冲刺计划一同读取。该文件是实际故事完成状态(状态:已完成、完成日期、阻塞问题)的权威来源,将作为阶段3中完成指标的主要数据源。仅当该yaml文件不存在时,才退而使用扫描markdown文件的方式。记录yaml文件与迭代冲刺计划之间的差异(例如,yaml中的故事不在计划内,或反之)。
production/sprint-status.yaml如果文件不存在或为空,输出:
"未找到[迭代冲刺/里程碑]的数据。请先运行生成迭代冲刺数据,或手动提供迭代冲刺详情。"/sprint-status
随后调用工具提供两个选项:
AskUserQuestion- [A] 手动提供数据 —— 请用户粘贴或描述迭代冲刺的任务、日期和成果;以此作为回顾文档的事实来源。
- [B] 停止 —— 终止该技能。结论:阻塞 —— 无迭代冲刺数据可用。
若用户选择[A],收集提供的数据并进入阶段3。
若用户选择[B],流程终止。
提取以下信息:计划任务、预估工作量、负责人和目标。
运行git日志查看迭代冲刺周期内的实际提交记录和时间。使用Bash工具(Windows系统下使用Git Bash —— 是Bash语法,非PowerShell语法):
2>/dev/nullBash: git log --oneline --since="4 weeks ago" 2>/dev/null || git log --oneline -20根据迭代冲刺计划中已知的时长,调整参数的日期。
--sincePhase 3: Analyze Completion and Trends
阶段3:分析完成情况与趋势
Scan for completed and incomplete tasks by comparing the plan against actual deliverables. Check for:
- Tasks completed as planned
- Tasks completed but modified from the plan
- Tasks carried over (not completed)
- Tasks added mid-sprint (unplanned work)
- Tasks removed or descoped
Scan the codebase for TODO/FIXME trends:
- Count current TODO/FIXME/HACK comments
- Compare to previous sprint counts if available (check previous retrospectives)
- Note whether technical debt is growing or shrinking
Read previous retrospectives (if any) from to check:
production/retrospectives/- Were previous action items addressed?
- Are the same problems recurring?
- How has velocity trended?
通过对比计划与实际交付成果,梳理已完成和未完成的任务。检查以下内容:
- 按计划完成的任务
- 已完成但与计划有修改的任务
- 延期到下一个迭代的任务(未完成)
- 迭代中期新增的任务(计划外工作)
- 移除或缩小范围的任务
扫描代码库中的TODO/FIXME趋势:
- 统计当前的TODO/FIXME/HACK注释数量
- 如果有之前的迭代回顾文档,对比前一次的统计数量
- 记录技术债务是在增长还是减少
读取中的历史回顾文档(如果有),检查:
production/retrospectives/- 之前的行动项是否已落实?
- 是否存在重复出现的问题?
- 团队速度的变化趋势如何?
Phase 4: Generate the Retrospective
阶段4:生成回顾文档
markdown
undefinedmarkdown
undefinedRetrospective: [Sprint N / Milestone Name]
回顾文档:[迭代冲刺N / 里程碑名称]
Period: [Start Date] -- [End Date]
Generated: [Date]
周期:[开始日期] -- [结束日期]
生成日期:[日期]
Metrics
核心指标
| Metric | Planned | Actual | Delta |
|---|---|---|---|
| Tasks | [X] | [Y] | [+/- Z] |
| Completion Rate | -- | [Z%] | -- |
| Story Points / Effort Days | [X] | [Y] | [+/- Z] |
| Bugs Found | -- | [N] | -- |
| Bugs Fixed | -- | [N] | -- |
| Unplanned Tasks Added | -- | [N] | -- |
| Commits | -- | [N] | -- |
| 指标 | 计划值 | 实际值 | 差值 |
|---|---|---|---|
| 任务数量 | [X] | [Y] | [+/- Z] |
| 完成率 | -- | [Z%] | -- |
| 故事点数 / 工作量天数 | [X] | [Y] | [+/- Z] |
| 发现的Bug数量 | -- | [N] | -- |
| 修复的Bug数量 | -- | [N] | -- |
| 新增计划外任务数量 | -- | [N] | -- |
| 提交记录数 | -- | [N] | -- |
Velocity Trend
团队速度趋势
| Sprint | Planned | Completed | Rate |
|---|---|---|---|
| [N-2] | [X] | [Y] | [Z%] |
| [N-1] | [X] | [Y] | [Z%] |
| [N] (current) | [X] | [Y] | [Z%] |
Trend: [Increasing / Stable / Decreasing]
[One sentence explaining the trend]
| 迭代冲刺 | 计划值 | 实际完成值 | 完成率 |
|---|---|---|---|
| [N-2] | [X] | [Y] | [Z%] |
| [N-1] | [X] | [Y] | [Z%] |
| [N](当前) | [X] | [Y] | [Z%] |
趋势:[上升 / 稳定 / 下降]
[一句话解释趋势]
What Went Well
做得好的方面
- [Observation backed by specific data or examples]
- [Another positive observation]
- [Recognize specific contributions or decisions that paid off]
- [有具体数据或实例支撑的观察结论]
- [另一个正面观察结论]
- [认可特定贡献或决策带来的价值]
What Went Poorly
待改进的方面
- [Specific issue with measurable impact -- e.g., "Feature X took 5 days instead of estimated 2, blocking tasks Y and Z"]
- [Another issue with impact]
- [Do not assign blame -- focus on systemic causes]
- [有可衡量影响的具体问题 —— 例如:"功能X耗时5天,远超预估的2天,导致任务Y和Z阻塞"]
- [另一个有影响的问题]
- 不针对个人追责,聚焦系统性原因
Blockers Encountered
遇到的阻塞问题
| Blocker | Duration | Resolution | Prevention |
|---|---|---|---|
| [What blocked progress] | [How long] | [How it was resolved] | [How to prevent recurrence] |
| 阻塞问题 | 持续时长 | 解决方式 | 预防措施 |
|---|---|---|---|
| [阻碍进度的问题] | [持续时间] | [解决方法] | [如何避免再次发生] |
Estimation Accuracy
预估准确性
| Task | Estimated | Actual | Variance | Likely Cause |
|---|---|---|---|---|
| [Most overestimated task] | [X] | [Y] | [+Z] | [Why] |
| [Most underestimated task] | [X] | [Y] | [-Z] | [Why] |
Overall estimation accuracy: [X%] of tasks within +/- 20% of estimate
[Analysis: Are we consistently over- or under-estimating? For which types of
tasks? What adjustment should we apply?]
| 任务 | 预估工作量 | 实际工作量 | 偏差 | 可能原因 |
|---|---|---|---|---|
| [预估偏差最大的任务(高估)] | [X] | [Y] | [+Z] | [原因] |
| [预估偏差最大的任务(低估)] | [X] | [Y] | [-Z] | [原因] |
整体预估准确率:[X%]的任务工作量与预估偏差在±20%以内
[分析:我们是否持续高估或低估?针对哪些类型的任务?需要做出什么调整?]
Carryover Analysis
延期任务分析
| Task | Original Sprint | Times Carried | Reason | Action |
|---|---|---|---|---|
| [Task that was not completed] | [Sprint N-X] | [N] | [Why] | [Complete / Descope / Redesign] |
| 任务 | 原计划迭代冲刺 | 延期次数 | 原因 | 行动方案 |
|---|---|---|---|---|
| [未完成的任务] | [迭代冲刺N-X] | [N] | [原因] | [完成 / 缩小范围 / 重新设计] |
Technical Debt Status
技术债务状态
- Current TODO count: [N] (previous: [N])
- Current FIXME count: [N] (previous: [N])
- Current HACK count: [N] (previous: [N])
- Trend: [Growing / Stable / Shrinking]
- [Note any areas of concern]
- 当前TODO注释数量:[N](上一次:[N])
- 当前FIXME注释数量:[N](上一次:[N])
- 当前HACK注释数量:[N](上一次:[N])
- 趋势:[增长 / 稳定 / 下降]
- [记录需要关注的领域]
Previous Action Items Follow-Up
历史行动项跟进
| Action Item (from Sprint N-1) | Status | Notes |
|---|---|---|
| [Previous action] | [Done / In Progress / Not Started] | [Context] |
| 行动项(来自迭代冲刺N-1) | 状态 | 备注 |
|---|---|---|
| [历史行动项] | [已完成 / 进行中 / 未开始] | [背景信息] |
Action Items for Next Iteration
下一个迭代的行动项
| # | Action | Owner | Priority | Deadline |
|---|---|---|---|---|
| 1 | [Specific, measurable action] | [Who] | [High/Med/Low] | [When] |
| 2 | [Another action] | [Who] | [Priority] | [When] |
| # | 行动内容 | 负责人 | 优先级 | 截止日期 |
|---|---|---|---|---|
| 1 | [具体、可衡量的行动] | [负责人] | [高/中/低] | [日期] |
| 2 | [另一个行动内容] | [负责人] | [优先级] | [日期] |
Process Improvements
流程改进
- [Specific change to how we work, with expected benefit]
- [Another improvement -- keep it to 2-3 actionable items, not a wish list]
- [具体的工作方式变更,以及预期收益]
- [另一个改进建议 —— 限制在2-3个可落地的行动项,而非愿望清单]
Summary
总结
[2-3 sentence overall assessment: Was this a good sprint/milestone? What is
the single most important thing to change going forward?]
---[2-3句话的整体评估:本次迭代冲刺/里程碑是否成功?下一阶段最需要改变的一件事是什么?]
---Phase 5: Save Retrospective
阶段5:保存回顾文档
Present the retrospective and top findings to the user (completion rate, velocity trend, top blocker, most important action item).
Ask: "May I write this to ?" (or for milestone retrospectives)
production/retrospectives/retro-sprint-[N]-[date].mdproduction/retrospectives/retro-[milestone-name]-[date].mdIf yes, write the file, creating the directory if needed. Verdict: COMPLETE — retrospective saved.
production/retrospectives/If no, stop here. Verdict: BLOCKED — user declined write.
向用户展示生成的回顾文档和核心发现(完成率、团队速度趋势、主要阻塞问题、最重要的行动项)。
询问:“是否将该文档写入?”(对于里程碑回顾文档,路径为)
production/retrospectives/retro-sprint-[N]-[date].mdproduction/retrospectives/retro-[milestone-name]-[date].md如果用户同意,写入文件,若目录不存在则创建。结论:完成 —— 回顾文档已保存。
production/retrospectives/如果用户拒绝,流程终止。结论:阻塞 —— 用户拒绝写入。
Phase 6: Next Steps
阶段6:后续步骤
Use :
AskUserQuestion- Prompt: "Retrospective complete. The action items and velocity data are ready. Would you like to start sprint planning now with this data pre-loaded?"
- Options:
[A] Yes — open sprint planning with retro action items and velocity delta pre-populated[B] No — I'll reference the retrospective file manually when I'm ready
If the user selects [A]: Proceed to invoke , passing the retrospective file path and a summary of the action items and velocity change so the sprint planner can reference them.
/sprint-plan new- If this was a milestone retrospective, run to formally assess readiness for the next phase.
/gate-check
调用工具:
AskUserQuestion- 提示语:“回顾文档已完成。行动项和团队速度数据已准备就绪。是否立即使用这些预加载的数据开始迭代冲刺规划?”
- 选项:
[A] 是 —— 打开迭代冲刺规划页面,预填充回顾文档中的行动项和团队速度变化数据[B] 否 —— 我准备好后会手动参考回顾文档
若用户选择[A]:调用,传递回顾文档路径以及行动项和团队速度变化的摘要,以便迭代冲刺规划工具参考。
/sprint-plan new- 如果是里程碑回顾文档,运行正式评估进入下一阶段的准备情况。
/gate-check
Guidelines
指导原则
- Be honest and specific. Vague retrospectives ("communication could be better") produce vague improvements. Use data and examples.
- Focus on systemic issues, not individual blame.
- Limit action items to 3-5. More than that dilutes focus.
- Every action item must have an owner and a deadline.
- Check whether previous action items were completed. Recurring unaddressed items are a process smell.
- If this is a milestone retrospective, also evaluate whether the milestone goals were achieved and what that means for the overall project timeline.
- 保持诚实和具体。模糊的回顾文档(如“沟通可以更好”)无法带来切实的改进。要使用数据和实例支撑。
- 关注系统性问题,而非个人追责。
- 行动项限制在3-5个以内。过多的行动项会分散注意力。
- 每个行动项必须指定负责人和截止日期。
- 检查历史行动项是否已完成。反复未解决的行动项表明流程存在问题。
- 如果是里程碑回顾文档,还需评估里程碑目标是否达成,以及这对整体项目 timeline 的影响。