refactor(projman): extract skills and consolidate commands
Major refactoring of projman plugin architecture: Skills Extraction (17 new files): - Extracted reusable knowledge from commands and agents into skills/ - branch-security, dependency-management, git-workflow, input-detection - issue-conventions, lessons-learned, mcp-tools-reference, planning-workflow - progress-tracking, repo-validation, review-checklist, runaway-detection - setup-workflows, sprint-approval, task-sizing, test-standards, wiki-conventions Command Consolidation (17 → 12 commands): - /setup: consolidates initial-setup, project-init, project-sync (--full/--quick/--sync) - /debug: consolidates debug-report, debug-review (report/review modes) - /test: consolidates test-check, test-gen (run/gen modes) - /sprint-status: absorbs sprint-diagram via --diagram flag Architecture Cleanup: - Remove plugin-level mcp-servers/ symlinks (6 plugins) - Remove plugin README.md files (12 files, ~2000 lines) - Update all documentation to reflect new command structure - Fix documentation drift in CONFIGURATION.md, COMMANDS-CHEATSHEET.md Commands are now thin dispatchers (~20-50 lines) that reference skills. Agents reference skills for domain knowledge instead of inline content. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
192
plugins/projman/skills/progress-tracking.md
Normal file
192
plugins/projman/skills/progress-tracking.md
Normal file
@@ -0,0 +1,192 @@
|
||||
---
|
||||
name: progress-tracking
|
||||
description: Structured progress comments and status label management
|
||||
---
|
||||
|
||||
# Progress Tracking
|
||||
|
||||
## Purpose
|
||||
|
||||
Defines structured progress comment format and status label management.
|
||||
|
||||
## When to Use
|
||||
|
||||
- **Orchestrator agent**: When tracking sprint execution
|
||||
- **Executor agent**: When posting progress updates
|
||||
- **Commands**: `/sprint-start`, `/sprint-status`
|
||||
|
||||
---
|
||||
|
||||
## Status Labels
|
||||
|
||||
| Label | Meaning | When to Apply |
|
||||
|-------|---------|---------------|
|
||||
| `Status/In-Progress` | Work actively happening | When dispatching task |
|
||||
| `Status/Blocked` | Cannot proceed | When dependency or blocker found |
|
||||
| `Status/Failed` | Task failed | When task cannot complete |
|
||||
| `Status/Deferred` | Moved to future | When deprioritized |
|
||||
|
||||
### Rules
|
||||
|
||||
- Only ONE Status label at a time
|
||||
- Remove Status labels when closing successfully
|
||||
- Always add comment explaining status changes
|
||||
|
||||
---
|
||||
|
||||
## Applying Status Labels
|
||||
|
||||
**When dispatching:**
|
||||
```python
|
||||
update_issue(
|
||||
repo="org/repo",
|
||||
issue_number=45,
|
||||
labels=["Status/In-Progress", ...existing_labels]
|
||||
)
|
||||
```
|
||||
|
||||
**When blocked:**
|
||||
```python
|
||||
update_issue(
|
||||
repo="org/repo",
|
||||
issue_number=46,
|
||||
labels=["Status/Blocked", ...labels_without_in_progress]
|
||||
)
|
||||
add_comment(repo="org/repo", number=46, body="🚫 BLOCKED: Waiting for #45")
|
||||
```
|
||||
|
||||
**When failed:**
|
||||
```python
|
||||
update_issue(
|
||||
repo="org/repo",
|
||||
issue_number=47,
|
||||
labels=["Status/Failed", ...labels_without_in_progress]
|
||||
)
|
||||
add_comment(repo="org/repo", number=47, body="❌ FAILED: [Error description]")
|
||||
```
|
||||
|
||||
**On successful close:**
|
||||
```python
|
||||
update_issue(
|
||||
repo="org/repo",
|
||||
issue_number=45,
|
||||
state="closed",
|
||||
labels=[...labels_without_status] # Remove all Status/* labels
|
||||
)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Structured Progress Comment Format
|
||||
|
||||
```markdown
|
||||
## Progress Update
|
||||
**Status:** In Progress | Blocked | Failed
|
||||
**Phase:** [current phase name]
|
||||
**Tool Calls:** X (budget: Y)
|
||||
|
||||
### Completed
|
||||
- [x] Step 1
|
||||
- [x] Step 2
|
||||
|
||||
### In Progress
|
||||
- [ ] Current step (estimated: Z more calls)
|
||||
|
||||
### Blockers
|
||||
- None | [blocker description]
|
||||
|
||||
### Next
|
||||
- What happens after current step
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## When to Post Progress Comments
|
||||
|
||||
- After completing each major phase (every 20-30 tool calls)
|
||||
- When status changes (blocked, failed)
|
||||
- When encountering unexpected issues
|
||||
- Before approaching tool call budget limit
|
||||
|
||||
---
|
||||
|
||||
## Checkpoint Format (Resume Support)
|
||||
|
||||
For resume support, save checkpoints after major steps:
|
||||
|
||||
```markdown
|
||||
## Checkpoint
|
||||
**Branch:** feat/45-jwt-service
|
||||
**Commit:** abc123
|
||||
**Phase:** Testing
|
||||
**Tool Calls:** 67
|
||||
|
||||
### Completed Steps
|
||||
- [x] Created auth/jwt_service.py
|
||||
- [x] Implemented generate_token()
|
||||
- [x] Implemented verify_token()
|
||||
|
||||
### Pending Steps
|
||||
- [ ] Write unit tests
|
||||
- [ ] Add refresh logic
|
||||
- [ ] Commit and push
|
||||
|
||||
### Files Modified
|
||||
- auth/jwt_service.py (new)
|
||||
- auth/__init__.py (modified)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Sprint Progress Display
|
||||
|
||||
```
|
||||
┌─ Sprint Progress ────────────────────────────────────────────────┐
|
||||
│ Sprint 18 - User Authentication │
|
||||
│ ████████████░░░░░░░░░░░░░░░░░░ 40% complete │
|
||||
│ ✅ Done: 4 ⏳ Active: 2 ⬚ Pending: 4 │
|
||||
│ Current: │
|
||||
│ #45 ⏳ Implement JWT service │
|
||||
│ #46 ⏳ Build login endpoint │
|
||||
└──────────────────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
### Progress Bar Calculation
|
||||
|
||||
- Width: 30 characters
|
||||
- Filled: `█` (completed percentage)
|
||||
- Empty: `░` (remaining percentage)
|
||||
- Formula: `(closed_issues / total_issues) * 30`
|
||||
|
||||
---
|
||||
|
||||
## Parallel Execution Status
|
||||
|
||||
```
|
||||
Parallel Execution Status:
|
||||
|
||||
Batch 1:
|
||||
✅ #45 - JWT service - COMPLETED (12:45)
|
||||
🔄 #48 - API docs - IN PROGRESS (75%)
|
||||
|
||||
Batch 2 (now unblocked):
|
||||
⏳ #46 - Login endpoint - READY TO START
|
||||
⏳ #49 - Auth tests - READY TO START
|
||||
|
||||
#45 completed! #46 and #49 are now unblocked.
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Auto-Check Subtasks on Close
|
||||
|
||||
When closing an issue, update unchecked subtasks in body:
|
||||
|
||||
```python
|
||||
# Change - [ ] to - [x] for completed items
|
||||
update_issue(
|
||||
repo="org/repo",
|
||||
issue_number=45,
|
||||
body="... - [x] Completed subtask ..."
|
||||
)
|
||||
```
|
||||
Reference in New Issue
Block a user