Agent skill
sprint-review
Use when generating sprint review presentations: gathers sprint data from work items and git, generates a python-pptx script, and produces a branded PowerPoint slide deck.
Install this agent skill to your Project
npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/other/other/sprint-review
SKILL.md
Sprint Review
Purpose
Generate branded sprint review PowerPoint presentations using python-pptx. Each invocation produces a NEW python-pptx script tailored to the current sprint's data -- the script is regenerated every time, not reused from a static template.
Trigger
- Command:
/ai-sprint-review - Context: end of sprint, presenting delivered work to stakeholders.
When to Use
- End of sprint: presenting delivered work to engineers, heads, and managers
- Monthly reviews with stakeholders
- Ad-hoc progress reports for a specific period
When NOT to Use
- Daily updates -- use
/ai-standup - Sprint planning -- use
/ai-sprint plan - Retrospectives -- use
/ai-sprint retro - Incident write-ups -- use
/ai-postmortem
Pre-conditions (MANDATORY)
Before gathering data, read configuration:
- Read
.ai-engineering/manifest.yml-- focus on thework_itemssection. - Determine active provider:
work_items.provideris eithergithuborazure_devops. - Read provider-specific config:
- GitHub:
work_items.github.team_label - Azure DevOps:
work_items.azure_devops.area_path
- GitHub:
- Read quality thresholds from
qualitysection (coverage, duplication, cyclomatic, cognitive).
Procedure
Step 1 -- Determine Sprint Period
Resolve the date range for data gathering:
| Input | Behavior |
|---|---|
--sprint YYYY-MM |
Use that calendar month (1st to last day) |
--iteration <name> |
Query provider for iteration start/end dates |
| No arguments | Current calendar month |
Step 2 -- Gather Data
Collect data from three sources in parallel:
2a. Work Items (from provider)
GitHub:
gh issue list --label "<team_label>" --state all \
--json number,title,state,labels,milestone,closedAt,assignees
Azure DevOps:
az boards query --wiql "SELECT [System.Id], [System.Title], [System.State], [System.AssignedTo], [System.WorkItemType] FROM WorkItems WHERE [System.AreaPath] UNDER '<area_path>' AND [System.IterationPath] = @CurrentIteration" --expand relations
Categorize each item:
- Completed: closed/resolved during the sprint period
- In Progress: open, with activity during the sprint
- Carried Over: open, existed before sprint start, no completion
Walk the hierarchy when available: Feature > User Story > Task.
2b. Git Activity
# Commits
git log --since="<start>" --until="<end>" --format="%h|%s|%an" --no-merges
# Merged PRs (GitHub)
gh pr list --state merged --json number,title,mergedAt,author
# Merged PRs (Azure DevOps)
az repos pr list --status completed
Derive: commit count, unique authors, LOC delta, files changed.
2c. Quality Metrics
# Test count
pytest --co -q 2>/dev/null | tail -1
# Lint status
ruff check . --statistics 2>/dev/null
Compare actuals against thresholds from .ai-engineering/manifest.yml quality section.
Step 3 -- Generate python-pptx Script
Generate a NEW script each time. Reference docs/presentations/generate_sprint_review.py for style conventions. Do NOT copy the old script verbatim -- adapt all content to the current sprint's data.
Brand Constants (MUST use these exact values)
AI_BG_DARK = RGBColor(0x0B, 0x11, 0x20)
AI_WHITE = RGBColor(0xFF, 0xFF, 0xFF)
AI_TEXT_PRIMARY = RGBColor(0xE2, 0xE8, 0xF0)
AI_ACCENT = RGBColor(0x00, 0xD4, 0xAA)
AI_PRIMARY = RGBColor(0x1E, 0x3A, 0x5F)
AI_PRIMARY_LIGHT = RGBColor(0x2A, 0x4F, 0x7A)
AI_ERROR = RGBColor(0xEF, 0x44, 0x44)
AI_SUCCESS = RGBColor(0x10, 0xB9, 0x81)
AI_WARNING = RGBColor(0xF5, 0x9E, 0x0B)
AI_TEXT_LIGHT = RGBColor(0xF8, 0xFA, 0xFB)
AI_NEUTRAL = RGBColor(0x64, 0x74, 0x8B)
AI_TEXT_MUTED = RGBColor(0x94, 0xA3, 0xB8)
AI_BORDER_DARK = RGBColor(0x1A, 0x2A, 0x40)
AI_CARD_DARK = RGBColor(0x1E, 0x29, 0x3B)
SEC_BLUE = RGBColor(0x2E, 0x6B, 0xA4)
SEC_PURPLE = RGBColor(0x7B, 0x3F, 0xA0)
Typography
- Titles/headings:
JetBrains Mono - Body text:
Inter
Layout
- 16:9 aspect ratio: 13.333" x 7.5"
- LEFT_MARGIN: 1.2"
Helper Functions (include in generated script)
Include these helpers matching the signature patterns in the reference script:
add_textbox-- single-style text box with font, alignment, anchor controlsadd_rich_textbox-- multi-line text box with per-line styling (font, size, color, bold)add_accent_bar-- thin colored horizontal baradd_card-- filled rectangle with optional border and left accent stripeadd_rounded_rect-- rounded rectangle for badges_add_kpi_card-- card with large value + small label, centeredadd_slide_header-- accent bar + title + optional subtitle_blank_slide-- blank layout with dark background fillset_notes-- attach speaker notes to a slideadd_styled_table-- table with colored header row_style_cell-- style a single table cell (text, font, alignment, fill)_add_feature_card-- card with title + bullet list and left accent
Slide Structure (8-14 slides)
| # | Slide | Content |
|---|---|---|
| 1 | Title | Project name, sprint period, hero KPI badges |
| 2 | Sprint Overview | KPI cards (commits, LOC, PRs merged, coverage) + theme cards |
| 3-N | Feature Deep-Dives | One slide per major feature/spec delivered: before/after or bullet cards |
| N+1 | Quality Metrics | Table: metric, target, actual, status (color-coded) |
| N+2 | Risks & Next Sprint | Risk cards (severity-coded: HIGH=red, MEDIUM=yellow, LOW=teal) + next sprint priorities |
| N+3 | Q&A | Thank-you slide with summary badges |
Content Rules
- Technical but accessible -- audience is engineers, heads, and managers
- Include speaker notes for EVERY slide (the
set_notescall) - Quantify everything: numbers, percentages, before/after comparisons
- Use accent colors to differentiate categories (AI_ACCENT for primary features, SEC_BLUE/SEC_PURPLE/AI_WARNING/AI_ERROR for variety)
- Feature deep-dive slides use
_add_feature_cardfor consistent card layout - KPI cards use
_add_kpi_cardfor large-value display
Step 4 -- Execute and Output
- Write the generated script to
docs/presentations/generate_sprint_review.py(overwrite the existing file). - Run:
python3 docs/presentations/generate_sprint_review.py - Output file:
docs/presentations/sprint-review-YYYY-MM.pptx - Report to user: slide count, file path, key stats (commits, PRs, coverage).
Arguments
| Argument | Default | Description |
|---|---|---|
--sprint YYYY-MM |
current month | Sprint period as year-month |
--iteration <name> |
none | Iteration name (queries provider for dates) |
Quick Reference
/ai-sprint-review # current month, auto-detect provider
/ai-sprint-review --sprint 2026-03 # March 2026 sprint
/ai-sprint-review --iteration "Sprint 12" # named iteration from provider
Common Mistakes
- Reusing the old script -- every invocation MUST generate a new script with current data. Never copy-paste the previous script unchanged.
- Missing speaker notes -- every slide must have
set_notes(). Stakeholders use presenter view. - Wrong color palette -- use the brand constants above, not arbitrary colors.
- Skipping pre-conditions -- always read
manifest.ymlfirst to get provider config and quality thresholds. - Hardcoding dates -- derive the sprint period from arguments or current date, never hardcode.
- Missing
python-pptximport -- the generated script must import frompptxand its submodules.
Integration
- Reads
work_itemsconfig from.ai-engineering/manifest.yml - Can reference active specs from
.ai-engineering/specs/ - Quality thresholds from
manifest.ymlquality section drive the metrics table - Git history and PR data provide quantitative backing for every claim
$ARGUMENTS
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
Didn't find tool you were looking for?