Fast, concise sprint snapshot — burndown and emerging risks for situational awareness. 'How is the sprint going?'
复制下面这句话,粘贴给 Claude Code、Codex、Cursor 等 AI 编程工具,它会读取安装说明并在你确认后完成安装。
请阅读 https://ai.atlankj.com/install/asset/gh-sprint-status-80e2211b84f9 ,按照其中的说明把「sprint-status」安装到你(当前 AI 工具)中。执行前先告诉我将运行的命令和写入的位置,等我确认。
查看 AI 将读取的安装说明正在读取 GitHub 原文…
内容来自 GitHub 原始文件,由原作者维护。在 GitHub 查看
!bash "${CLAUDE_SKILL_DIR}/../../hooks/yaml-helper.sh" resolve_config --keys story_granularity
This is a fast situational awareness check, not a sprint review. It reads the
current sprint plan and story files, scans for status markers, and produces a
concise snapshot in under 30 lines. For detailed sprint management, use
/sprint-plan update or /milestone-review.
This skill is read-only. It never proposes changes, never asks to write files, and makes at most one concrete recommendation.
story_granularity — it sets the
grain of the burn-down read: feature-sized chunks at coarse, task-sized
at balanced (default), AC-sized at fine.
Argument: $ARGUMENTS[0] (blank = use current sprint)
/sprint-status 3), search
production/sprints/ for a file matching sprint-03.md, sprint-3.md,
or similar. Report which file was found.production/sprints/ and treat it as the current sprint.production/sprints/ does not exist or is empty, report: "No sprint
files found. Start a sprint with /sprint-plan new." Then stop.Read the sprint file in full. Extract:
Using today's date and the sprint end date from the sprint file, calculate:
If the sprint file does not include explicit dates, note "Sprint dates not found — burndown assessment skipped."
First: check for production/sprint-status.yaml.
If it exists, read it directly — it is the authoritative source of truth.
Extract status for each story from the status field. No markdown scanning needed.
Use its sprint, goal, start, end fields instead of re-parsing the sprint plan.
If sprint-status.yaml does not exist (legacy sprint or first-time setup),
fall back to markdown scanning:
When using the fallback, add a note at the bottom of the output:
"⚠ No sprint-status.yaml found — status inferred from markdown. Run /sprint-plan update to generate one."
Optionally (fast check only — do not do a deep scan): grep the code root for a directory or file name that matches the story's system slug to check for implementation evidence. This is a hint only, not a definitive status.
After collecting status for all stories, check each IN PROGRESS story for staleness:
Grep pattern="\*{0,2}(Last Updated|Updated|last-updated|updated_at)\*{0,2}[[:space:]]*:" glob="production/epics/**/story-*.md" output_mode="content"
That one pattern accepts every field-name variant. A story with no match has
no date, which is not the same as being stale — report it as "never
stamped" and do not compute an age for it.The
\*{0,2}wrappers are why this works at all./create-storiesemits> **Last Updated**: …, so a pattern requiring:immediately after the word matched no story ever written. Combined with the "no match = never stamped" rule directly above — which is correct in itself — the failure was completely silent: every in-progress story reported as never stamped, and stale-story detection never once fired. A bareUpdated:anchor will regress it.
STALE stories are included in the output table and collected into an "Attention Needed" section (see Phase 5 output format).
Stale story escalation: If any IN PROGRESS story is flagged STALE (no progress in 4+ days), the burndown verdict is upgraded to at least At Risk — even if the completion percentage is within the normal On Track window. Record this escalation reason: "At Risk — [N] story(ies) with no progress in [N] days."
Calculate:
Assess burndown by comparing completion percentage to time consumed percentage:
If dates are unavailable, skip the burndown assessment and report "On Track / At Risk / Behind: unknown — sprint dates not found."
Keep the output concise. The story status table is mandatory — do not truncate it. Aim for under 50 lines total; omit the Emerging Risks section if nothing notable was found. Use this format:
## Sprint [N] Status — [Today's Date]
**Sprint Goal**: [from sprint plan]
**Days Remaining**: [N] of [total] ([% time consumed])
### Progress: [complete/total] tasks ([%])
| Story / Task | Priority | Status | Owner | Blocker |
|----------------------|------------|-------------|---------|----------------|
| [title] | Must Have | DONE | [owner] | |
| [title] | Must Have | IN PROGRESS | [owner] | |
| [title] | Must Have | BLOCKED | [owner] | [brief reason] |
| [title] | Should Have| NOT STARTED | [owner] | |
### Attention Needed
| Story / Task | Status | Last Updated | Days Stale | Note |
|----------------------|-------------|----------------|------------|----------------|
| [title] | IN PROGRESS | [date or N/A] | [N days] | [STALE / no timestamp — cannot check staleness / inline task — cannot check staleness] |
*(Omit this section entirely if no IN PROGRESS stories are stale or have timestamp concerns.)*
### Burndown: [On Track / At Risk / Behind]
[1-2 sentences. If behind: which Must Haves are at risk. If on track: confirm
and note any Should Haves the team could pull.]
### Must-Haves at Risk
[List any Must Have stories that are BLOCKED or NOT STARTED with less than
40% of sprint time remaining. If none, write "None."]
### Emerging Risks
[Any risks visible from the story scan: missing files, cascading blockers,
stories with no owner. If none, write "None identified."]
### Recommendation
[One concrete action, or "Sprint is on track — no action needed."]
Apply these rules before outputting, and place the flag at the TOP of the output if triggered (above the status table):
Critical flag — if Must Have stories are BLOCKED or NOT STARTED and less than 40% of the sprint time remains:
SPRINT AT RISK: [N] Must Have stories are not complete with [X]% of sprint
time remaining. Recommend replanning with `/sprint-plan update`.
Completion flag — if all Must Have stories are DONE:
All Must Haves complete. Team can pull from Should Have backlog.
Missing stories flag — if any referenced story files do not exist:
NOTE: [N] story files referenced in the sprint plan are missing.
Run `/story-readiness sprint` to validate story file coverage.
This skill is read-only. It reports observed facts from files on disk.
/sprint-plan update)For more detail on a specific story, the user can read the story file directly
or run /story-readiness [path].
For sprint replanning, use /sprint-plan update.
For end-of-sprint retrospective, use /retrospective.