Add "branding/progress-templates"
191
branding%2Fprogress-templates.-.md
Normal file
191
branding%2Fprogress-templates.-.md
Normal file
@@ -0,0 +1,191 @@
|
||||
# Progress Block Templates
|
||||
|
||||
Templates for sprint progress visualization during execution.
|
||||
|
||||
**Version:** 1.0.0
|
||||
**Created:** 2026-01-28
|
||||
|
||||
---
|
||||
|
||||
## Sprint Progress Block
|
||||
|
||||
Display during sprint-start and sprint-status commands:
|
||||
|
||||
```
|
||||
┌─ Sprint Progress ────────────────────────────────────────────────┐
|
||||
│ Sprint [N]: [Title] │
|
||||
│ ████████████░░░░░░░░░░░░░░░░░░ [XX]% complete │
|
||||
│ │
|
||||
│ ✅ Done: [n] ⏳ Active: [n] ⬚ Pending: [n] │
|
||||
│ │
|
||||
│ Current: │
|
||||
│ #[num] ⏳ [Issue title truncated to fit...] │
|
||||
│ #[num] ⏳ [Issue title truncated to fit...] │
|
||||
└──────────────────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Progress Bar Calculation
|
||||
|
||||
**Width:** 30 characters
|
||||
|
||||
```python
|
||||
def render_progress_bar(completed: int, total: int) -> str:
|
||||
if total == 0:
|
||||
percentage = 0
|
||||
else:
|
||||
percentage = (completed / total) * 100
|
||||
|
||||
filled = round(percentage * 30 / 100)
|
||||
empty = 30 - filled
|
||||
|
||||
bar = '█' * filled + '░' * empty
|
||||
return f"{bar} {percentage:.0f}% complete"
|
||||
```
|
||||
|
||||
**Examples:**
|
||||
|
||||
| Completed | Total | Percentage | Bar |
|
||||
|-----------|-------|------------|-----|
|
||||
| 0 | 10 | 0% | `░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 0%` |
|
||||
| 3 | 10 | 30% | `█████████░░░░░░░░░░░░░░░░░░░░░ 30%` |
|
||||
| 5 | 10 | 50% | `███████████████░░░░░░░░░░░░░░░ 50%` |
|
||||
| 8 | 10 | 80% | `████████████████████████░░░░░░ 80%` |
|
||||
| 10 | 10 | 100% | `██████████████████████████████ 100%` |
|
||||
|
||||
---
|
||||
|
||||
## Full Progress Block Example
|
||||
|
||||
```
|
||||
┌─ Sprint Progress ────────────────────────────────────────────────┐
|
||||
│ Sprint 6: Visual Branding Overhaul │
|
||||
│ ████████████░░░░░░░░░░░░░░░░░░ 40% complete │
|
||||
│ │
|
||||
│ ✅ Done: 4 ⏳ Active: 2 ⬚ Pending: 4 │
|
||||
│ │
|
||||
│ Current: │
|
||||
│ #271 ⏳ Implement header component │
|
||||
│ #272 ⏳ Update agent instructions │
|
||||
└──────────────────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## When to Display Progress Block
|
||||
|
||||
| Event | Display Progress Block |
|
||||
|-------|------------------------|
|
||||
| `/sprint-start` begins | Yes - initial state |
|
||||
| Issue completed | Yes - updated counts |
|
||||
| `/sprint-status` called | Yes - current state |
|
||||
| Before execution prompt | Yes - show what's active |
|
||||
| Batch complete | Yes - show batch transition |
|
||||
| `/sprint-close` | Yes - final summary |
|
||||
|
||||
---
|
||||
|
||||
## Batch Progress Display
|
||||
|
||||
During parallel execution, show batch progress:
|
||||
|
||||
```
|
||||
┌─ Sprint Progress ────────────────────────────────────────────────┐
|
||||
│ Sprint 6: Visual Branding Overhaul │
|
||||
│ ████████████████████░░░░░░░░░░ 67% complete │
|
||||
│ │
|
||||
│ ✅ Done: 4 ⏳ Active: 2 ⬚ Pending: 0 │
|
||||
│ │
|
||||
│ Batch 2 of 3: │
|
||||
│ #273 ⏳ Update projman commands (75%) │
|
||||
│ #274 ⏳ Add progress block to orchestrator (50%) │
|
||||
│ │
|
||||
│ ✅ Batch 1 complete | ⬚ Batch 3 waiting │
|
||||
└──────────────────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Compact Progress (For Inline Updates)
|
||||
|
||||
When space is limited or for inline status:
|
||||
|
||||
```
|
||||
Sprint 6: ████████████░░░░░░░░░░░░░░░░░░ 40% (4/10) | ⏳ #271, #272
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Issue Status Line Format
|
||||
|
||||
For current/active issues in progress block:
|
||||
|
||||
```
|
||||
#[issue_number] [status_icon] [title (max 50 chars)]
|
||||
```
|
||||
|
||||
**Status icons:**
|
||||
- `⏳` - In progress
|
||||
- `🚫` - Blocked
|
||||
- `⬚` - Pending (waiting in queue)
|
||||
|
||||
**Title truncation:** Truncate at 50 characters with `...` if longer.
|
||||
|
||||
---
|
||||
|
||||
## Integration with Orchestrator Agent
|
||||
|
||||
Add this section to `plugins/projman/agents/orchestrator.md`:
|
||||
|
||||
```markdown
|
||||
### Sprint Progress Block
|
||||
|
||||
**Display progress block after header during sprint execution.**
|
||||
|
||||
**When to Display:**
|
||||
- At start of sprint-start command
|
||||
- After each issue completion
|
||||
- Before generating next execution prompt
|
||||
- When user requests status
|
||||
- In final sprint summary
|
||||
|
||||
**Data Sources:**
|
||||
- `list_issues(milestone=current)` - Get all sprint issues
|
||||
- `get_milestone(milestone_id)` - Get sprint metadata
|
||||
- Issue labels for status (Status/In-Progress, etc.)
|
||||
|
||||
**Calculation:**
|
||||
- Total: Count all issues in milestone
|
||||
- Done: Count closed issues
|
||||
- Active: Count issues with Status/In-Progress label
|
||||
- Pending: Total - Done - Active
|
||||
|
||||
See: [[branding/progress-templates]] for format specification.
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Integration with sprint-status Command
|
||||
|
||||
Add this section to `plugins/projman/commands/sprint-status.md`:
|
||||
|
||||
```markdown
|
||||
## Visual Output
|
||||
|
||||
Display header followed by progress block:
|
||||
|
||||
[Header from branding/header-templates]
|
||||
|
||||
[Progress block from branding/progress-templates]
|
||||
|
||||
Then show detailed breakdown (existing format).
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Related Pages
|
||||
|
||||
- [[branding/visual-spec]] - Central visual specification
|
||||
- [[branding/plugin-registry]] - Plugin icons and display names
|
||||
- [[branding/header-templates]] - Copy-paste header templates
|
||||
Reference in New Issue
Block a user