Manage sprint lifecycle including planning, execution tracking, and closure operations.
/plugin marketplace add marcel-Ngan/ai-dev-team/plugin install marcel-ngan-ai-dev-team@marcel-Ngan/ai-dev-teamThis skill inherits all available tools. When active, it can use any tool Claude has access to.
Manage sprint lifecycle including planning, execution tracking, and closure operations.
| Tool | Purpose |
|---|---|
Atlassian:searchJiraIssuesUsingJql | Query sprint items, velocity |
Atlassian:editJiraIssue | Assign items to sprint, update status |
Atlassian:addCommentToJiraIssue | Log sprint decisions |
Atlassian:getJiraIssue | Fetch issue details |
All values come from config/project.json:
{
"cloudId": "{{jira.cloudId}}",
"projectKey": "{{jira.development.projectKey}}",
"sprintLengthDays": "{{agile.sprintLengthDays}}"
}
Atlassian:searchJiraIssuesUsingJql({
cloudId: "{{jira.cloudId}}",
jql: "project = {{jira.development.projectKey}} AND labels = 'refined' AND sprint IS EMPTY ORDER BY rank ASC",
fields: ["summary", "priority", "labels", "customfield_10016", "issuetype"]
})
// Get completed stories from last sprint
Atlassian:searchJiraIssuesUsingJql({
cloudId: "{{jira.cloudId}}",
jql: "project = {{jira.development.projectKey}} AND sprint IN closedSprints() AND status = Done AND resolved >= -14d",
fields: ["customfield_10016"] // story points field
})
Atlassian:editJiraIssue({
cloudId: "{{jira.cloudId}}",
issueIdOrKey: "PROJECT-45",
fields: {
customfield_10020: 123 // sprint ID field - get from board
}
})
Atlassian:addCommentToJiraIssue({
cloudId: "{{jira.cloudId}}",
issueIdOrKey: "PROJECT-45",
commentBody: `🤖 **Orchestrator Agent** - Sprint Planning
**Sprint:** Sprint 5 (Jan 6 - Jan 20)
**Committed:** Yes
**Sprint Goal Alignment:**
This story supports sprint goal: "Complete user authentication"
**Capacity Check:**
- Team velocity: 34 points
- Current commitment: 28 points
- This story: 5 points
- Remaining capacity: 1 point`
})
Atlassian:searchJiraIssuesUsingJql({
cloudId: "{{jira.cloudId}}",
jql: "project = {{jira.development.projectKey}} AND sprint IN openSprints()",
fields: ["summary", "status", "assignee", "customfield_10016"]
})
Atlassian:searchJiraIssuesUsingJql({
cloudId: "{{jira.cloudId}}",
jql: "project = {{jira.development.projectKey}} AND sprint IN openSprints() AND status = 'In Progress'",
fields: ["summary", "assignee", "updated"]
})
Atlassian:searchJiraIssuesUsingJql({
cloudId: "{{jira.cloudId}}",
jql: "project = {{jira.development.projectKey}} AND sprint IN openSprints() AND labels = 'blocked'",
fields: ["summary", "labels", "comment"]
})
Atlassian:searchJiraIssuesUsingJql({
cloudId: "{{jira.cloudId}}",
jql: "project = {{jira.development.projectKey}} AND sprint IN openSprints() AND (status CHANGED DURING (-1d, now()) OR updated >= -1d)",
fields: ["summary", "status", "assignee", "updated"]
})
// All sprint items with status
Atlassian:searchJiraIssuesUsingJql({
cloudId: "{{jira.cloudId}}",
jql: "project = {{jira.development.projectKey}} AND sprint IN openSprints()",
fields: ["summary", "status", "customfield_10016", "issuetype"]
})
## Sprint Progress Report
**Sprint:** Sprint 5
**Days Remaining:** 7 of 14
### Status Breakdown
| Status | Count | Points |
|--------|-------|--------|
| Done | 4 | 13 |
| In Progress | 3 | 8 |
| To Do | 2 | 5 |
| Blocked | 1 | 3 |
### Burndown
- **Committed:** 29 points
- **Completed:** 13 points (45%)
- **On Track:** Yes
### Blockers
- PROJECT-52: Waiting for API documentation (blocked 2 days)
### Risk Assessment
- Medium risk: 1 blocked item needs resolution by mid-sprint
Atlassian:searchJiraIssuesUsingJql({
cloudId: "{{jira.cloudId}}",
jql: "project = {{jira.development.projectKey}} AND sprint IN openSprints() AND status != Done",
fields: ["summary", "status", "customfield_10016"]
})
Atlassian:addCommentToJiraIssue({
cloudId: "{{jira.cloudId}}",
issueIdOrKey: "PROJECT-45",
commentBody: `🤖 **Orchestrator Agent** - Sprint Closure
**Sprint 5 Complete**
**This Story:** ✅ Done
**Sprint Summary:**
- Committed: 29 points
- Completed: 26 points
- Velocity: 90%
**Carryover:** 1 story (3 points) moved to Sprint 6`
})
// Update sprint field to next sprint ID
Atlassian:editJiraIssue({
cloudId: "{{jira.cloudId}}",
issueIdOrKey: "PROJECT-58",
fields: {
customfield_10020: 124 // next sprint ID
}
})
Atlassian:addCommentToJiraIssue({
cloudId: "{{jira.cloudId}}",
issueIdOrKey: "PROJECT-58",
commentBody: `🤖 **Orchestrator Agent**
**Carried over from Sprint 5**
**Reason:** Not completed due to blocked dependency
**Original commitment:** Sprint 5
**New sprint:** Sprint 6
**Notes:** Dependency resolved, ready to continue`
})
// Get last 3 sprints completed points
Atlassian:searchJiraIssuesUsingJql({
cloudId: "{{jira.cloudId}}",
jql: "project = {{jira.development.projectKey}} AND sprint IN closedSprints() AND status = Done AND resolved >= -42d",
fields: ["customfield_10016", "resolutiondate"]
})
## Sprint Velocity Metrics
**Last 3 Sprints:**
| Sprint | Committed | Completed | Velocity |
|--------|-----------|-----------|----------|
| Sprint 4 | 28 | 26 | 93% |
| Sprint 3 | 32 | 30 | 94% |
| Sprint 2 | 25 | 25 | 100% |
**Average Velocity:** 27 points
**Recommended Commitment:** 26-28 points
| Agent | Usage |
|---|---|
| Orchestrator | Sprint ceremonies, planning, closure |
| Project Manager | Progress tracking, reports |
| Engineering Manager | Velocity metrics, retrospectives |
| Product Owner | Sprint scope decisions |
| Error | Cause | Resolution |
|---|---|---|
| Sprint not found | Invalid sprint ID | Query board for sprint IDs |
| Cannot modify | Sprint is closed | Use next open sprint |
| No permission | Board access required | Verify board permissions |
This skill should be used when the user asks to "create a slash command", "add a command", "write a custom command", "define command arguments", "use command frontmatter", "organize commands", "create command with file references", "interactive command", "use AskUserQuestion in command", or needs guidance on slash command structure, YAML frontmatter fields, dynamic arguments, bash execution in commands, user interaction patterns, or command development best practices for Claude Code.
This skill should be used when the user asks to "create an agent", "add an agent", "write a subagent", "agent frontmatter", "when to use description", "agent examples", "agent tools", "agent colors", "autonomous agent", or needs guidance on agent structure, system prompts, triggering conditions, or agent development best practices for Claude Code plugins.
This skill should be used when the user asks to "create a hook", "add a PreToolUse/PostToolUse/Stop hook", "validate tool use", "implement prompt-based hooks", "use ${CLAUDE_PLUGIN_ROOT}", "set up event-driven automation", "block dangerous commands", or mentions hook events (PreToolUse, PostToolUse, Stop, SubagentStop, SessionStart, SessionEnd, UserPromptSubmit, PreCompact, Notification). Provides comprehensive guidance for creating and implementing Claude Code plugin hooks with focus on advanced prompt-based hooks API.