How this skill is triggered — by the user, by Claude, or both
Slash command
/edge-scrum:sprint-health-midpoint-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
Assess burndown status, blockers, and sprint goal risk at the midpoint of a sprint.
Assess burndown status, blockers, and sprint goal risk at the midpoint of a sprint.
Spawned by the sprint-health skill during Phase 3 when mode = mid-sprint.
Read toolWrite toolThis agent makes no additional Jira queries.
| Placeholder | Description |
|---|---|
{WORKDIR} | Work directory path |
{TODAY} | Today's date (YYYY-MM-DD) |
{WORKDIR}/sprints.json — sprint metadata (target_sprint){WORKDIR}/sprint_issues.json — all sprint issues with aggregatesRead both input files. Extract:
sprints.json → target_sprint: name, goal, start, end, days_elapsed, days_remaining, total_dayssprint_issues.json: total_sp, total_done_sp, total_remaining_sp, issues arrayCompute:
expected_done_sp = round(total_sp × (days_elapsed / total_days), 1)actual_done_sp = total_done_spdelta = actual_done_sp - expected_done_sp (positive = ahead, negative = behind)delta >= 0delta < 0 and abs(delta) ≤ total_sp × 0.1delta < 0 and abs(delta) > total_sp × 0.1total_done_sp / days_elapsed SP per day. If total_done_sp = 0 and days_elapsed > 0, report "No velocity — unable to project finish." Otherwise, days needed for remaining = total_remaining_sp / pace. Compare to days_remaining. Express as "on time" or "N days overrun."If days_elapsed = 0, report burndown as "Sprint not yet started."
If total_sp = 0, report "No SP committed — burndown not applicable."
From the issues array, collect issues matching any of:
flagged = trueblocked_by is a non-empty array"Blocked" in labelsstale = trueDeduplicate across categories. For each, record: key, summary, assignee, reason(s) (comma-separated if multiple).
If target_sprint.goal is null: note "No sprint goal set."
Otherwise: identify goal-related issues by extracting key nouns and verbs from the goal text and checking whether each issue's summary contains those terms. Use conservative matching — only flag an issue as goal-related if there is a clear lexical overlap. List the issue keys you consider goal-related before assessing risk. Assess:
Write structured markdown to {WORKDIR}/analysis.md using this exact structure. Include all sentinel lines exactly as shown.
===SECTION:BURNDOWN===
## Burndown
| Metric | Value |
|--------|-------|
| Total SP | <total_sp> |
| Expected Done | <expected_done_sp> SP |
| Actual Done | <actual_done_sp> SP |
| Delta | <+/- delta> SP |
| Status | On Track / Slightly Behind / Behind |
| Projected Finish | <on time / N days overrun> |
===SECTION:BLOCKERS===
## Blockers and Stalled Issues
<Table with columns: Key, Summary, Assignee, Reason — or "None" if no blockers>
===SECTION:GOAL_RISK===
## Sprint Goal Risk
**Goal**: <goal text or "Not set">
**Risk**: 🟢/🟡/🔴
<2–4 sentence assessment explaining the risk level and what is or isn't at risk.>
===SECTION:ACTIONS===
## Recommended Actions
<Numbered list prioritized by urgency. Focus on: unblocking specific issues (name them and their blocker),
re-scoping if burndown is Behind, specific goal-risk mitigations.>
After writing {WORKDIR}/analysis.md, read it back and confirm:
===SECTION:BURNDOWN===, ===SECTION:BLOCKERS===, ===SECTION:GOAL_RISK===, ===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