How this skill is triggered — by the user, by Claude, or both
Slash command
/edge-scrum:sprint-health-capacity-analyzerThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Analyze sprint load, composition, and commitment health for start-of-sprint reporting.
Analyze sprint load, composition, and commitment health for start-of-sprint reporting.
Spawned by the sprint-health skill during Phase 3 when mode = capacity.
Read toolWrite toolThis agent makes no additional Jira queries.
| Placeholder | Description |
|---|---|
{WORKDIR} | Work directory path |
{TODAY} | Today's date (YYYY-MM-DD) |
{SPRINT_START} | Sprint start date (YYYY-MM-DD) |
{WORKDIR}/sprints.json — sprint metadata (target_sprint){WORKDIR}/sprint_issues.json — all sprint issues with aggregatesplugins/edge-scrum/.roster.json — team roster with sp_target per memberplugins/edge-scrum/references/laws/00-team-roster.md — SP targets and roster rulesplugins/edge-scrum/references/laws/06-jira-fields.md — custom field IDsplugins/edge-scrum/references/laws/07-workflow-states.md — done/closed state definitionsplugins/edge-scrum/references/laws/09-sprint-policies.md — capacity and churn rulesRead all input files. Extract:
sprints.json → target_sprint: name, goal, start, end, days_elapsed, days_remaining, total_dayssprint_issues.json: sp_by_assignee, issues_by_type, issues_by_epic, total_sp, total_issues, issues array.roster.json: array of { username, display_name, sp_target }For each roster member:
committed_sp = sp_by_assignee[username] or 0 if absenttarget_sp = sp_target from roster entry (default 8 if field missing)committed_sp > 10committed_sp > target_sp (and ≤ 10)committed_sp > 0 and committed_sp ≤ target_spcommitted_sp = 0 (no issues assigned)Also collect assignees from issues NOT in the roster — list as "Unrostered assignees" with their total SP from sp_by_assignee.
issues_by_typeissues_by_epic; note count of issues under "No Epic"sp_target values in rosterFor all non-Bug issues in the issues array:
sp = 0 or sp = nullepic_key = "No Epic"has_ac = falseCollect the list of offending issue keys for each category. Count each.
Write structured markdown to {WORKDIR}/analysis.md using this exact structure. Do not omit any sentinel line. The sentinel lines (===SECTION:*===) are machine-parsed — include them exactly as shown.
===SECTION:LOAD===
## Load by Person
| Member | Committed SP | Target SP | Status |
|--------|-------------|-----------|--------|
| <display_name> | <committed_sp> | <target_sp> | 🟢/🟡/🔴/⚠️ |
<If any unrostered assignees exist, add a paragraph: "Unrostered assignees: <username> (<sp> SP), ...">
===SECTION:COMPOSITION===
## Sprint Composition
### By Type
| Type | Issues | SP |
|------|--------|----|
| Story | <n> | <sp> |
| Bug | <n> | 0 |
| Spike | <n> | <sp> |
| Task | <n> | <sp> |
### By Epic
| Epic | Issues |
|------|--------|
| <epic_key> | <n> |
| No Epic | <n> |
===SECTION:COMMITMENT_HEALTH===
## Commitment Health
**Unpointed issues** (<count>): <comma-separated key list, or "None">
**No epic link** (<count>): <comma-separated key list, or "None">
**Missing AC** (<count>): <comma-separated key list, or "None">
===SECTION:ACTIONS===
## Recommended Actions
<Numbered list of actions, prioritized by severity. Each action must be specific and actionable.
Focus on: overloaded members (name them), unpointed issues (list them), missing epic links, missing AC.
Example: "1. Re-balance load: <name> is at <n> SP (target <t> SP) — move OCPEDGE-XXX to another member or defer.">
After writing {WORKDIR}/analysis.md, read it back and confirm:
===SECTION:LOAD===, ===SECTION:COMPOSITION===, ===SECTION:COMMITMENT_HEALTH===, ===SECTION:ACTIONS=== (note: HEADER section is NOT written by this agent — SKILL.md generates the header)Do NOT commit.
Report: DONE, DONE_WITH_CONCERNS, NEEDS_CONTEXT, or BLOCKED.
Guides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.
npx claudepluginhub openshift-eng/edge-tooling --plugin edge-scrum