feat: archive zoo_backup for home sync
This commit is contained in:
@@ -0,0 +1,121 @@
|
||||
---
|
||||
name: sprint-report
|
||||
description: Generate sprint status report from Jira data.
|
||||
---
|
||||
|
||||
# Skill: sprint-report
|
||||
|
||||
Generate sprint status report from Jira data.
|
||||
|
||||
## Invoked by
|
||||
|
||||
🎫 JiraOps mode (or 🪃 Orchestrator)
|
||||
|
||||
## Required Inputs
|
||||
|
||||
| Input | Source | Example |
|
||||
|-------|--------|---------|
|
||||
| `PROJECT_KEY` | Jira project key | `PROJECT` |
|
||||
| `SPRINT_ID` | Sprint ID (optional — auto-detected) | `1234` |
|
||||
|
||||
## Output
|
||||
|
||||
Markdown report: `docs/sprint-reports/sprint-<sprint_name>-<date>.md`
|
||||
|
||||
## Steps
|
||||
|
||||
### 1. Get active sprint
|
||||
|
||||
```python
|
||||
boards = get_agile_boards(project_key=PROJECT_KEY)
|
||||
sprints = get_sprints_from_board(board_id=boards[0]["id"], states="active")
|
||||
sprint = sprints[0]
|
||||
```
|
||||
|
||||
### 2. Get sprint tickets
|
||||
|
||||
```python
|
||||
tickets = get_tickets_from_sprint(sprint_id=sprint["id"])
|
||||
```
|
||||
|
||||
### 3. Categorize by status
|
||||
|
||||
| Category | Statuses |
|
||||
|----------|----------|
|
||||
| To Do | `Open`, `Backlog`, `To Do` |
|
||||
| In Progress | `In Progress`, `In Development` |
|
||||
| In Review | `In Review`, `Code Review` |
|
||||
| Done | `Done`, `Accepted`, `Closed` |
|
||||
|
||||
### 4. Calculate metrics
|
||||
|
||||
```python
|
||||
total = len(tickets)
|
||||
done = len([t for t in tickets if t["status"] in DONE_STATUSES])
|
||||
completion_pct = round(done / total * 100) if total > 0 else 0
|
||||
```
|
||||
|
||||
### 5. Generate report
|
||||
|
||||
```markdown
|
||||
# Sprint Report: <sprint_name>
|
||||
|
||||
**Date:** <today>
|
||||
**Sprint:** <sprint_name>
|
||||
**Period:** <start> — <end>
|
||||
**Project:** <PROJECT_KEY>
|
||||
|
||||
---
|
||||
|
||||
## Overview
|
||||
|
||||
| Metric | Value |
|
||||
|--------|-------|
|
||||
| Total tickets | <total> |
|
||||
| Done | <done> (<pct>%) |
|
||||
| In Progress | <wip> |
|
||||
| Open | <todo> |
|
||||
|
||||
## Progress
|
||||
|
||||
```
|
||||
[████████████░░░░░░░░] 60% (<done>/<total>)
|
||||
```
|
||||
|
||||
## By Status
|
||||
|
||||
### ✅ Done (<done>)
|
||||
|
||||
| Ticket | Type | Summary | Assignee |
|
||||
|--------|------|---------|----------|
|
||||
| <key> | Story | <summary> | <name> |
|
||||
|
||||
### 🔄 In Progress (<wip>)
|
||||
|
||||
| Ticket | Type | Summary | Assignee |
|
||||
|--------|------|---------|----------|
|
||||
|
||||
### ⏳ Open (<todo>)
|
||||
|
||||
| Ticket | Type | Summary | Assignee |
|
||||
|--------|------|---------|----------|
|
||||
|
||||
## By Assignee
|
||||
|
||||
| Assignee | Total | Done | In Progress | Open |
|
||||
|----------|-------|------|-------------|------|
|
||||
|
||||
## Blockers / Risks
|
||||
|
||||
| Ticket | Description | Since | Impact |
|
||||
|--------|-------------|-------|--------|
|
||||
```
|
||||
|
||||
### 6. Store in BigMind
|
||||
|
||||
```python
|
||||
memory_store_fact(
|
||||
category="codebase",
|
||||
fact=f"Sprint report for {sprint_name}: {done}/{total} done ({pct}%)"
|
||||
)
|
||||
```
|
||||
Reference in New Issue
Block a user