Add AI providers, lean methodologies, and WWS skills
- Add synthetic.new skill (primary AI provider) - Add z.ai skill (fallback with GLM models) - Add lean backlog management skill with WSJF prioritization - Add lean prioritization skill with scheduling/parallelization - Add WWS serverless architecture overview 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
251
skills/lean/backlog.md
Normal file
251
skills/lean/backlog.md
Normal file
@@ -0,0 +1,251 @@
|
||||
# Skill: Lean - Backlog Management
|
||||
|
||||
## Description
|
||||
Manage and prioritize product backlog using WSJF (Weighted Shortest Job First) and lean principles for optimal value delivery.
|
||||
|
||||
## Input
|
||||
- **project_id**: Project identifier (required)
|
||||
- **action**: list|add|prioritize|groom|estimate (required)
|
||||
- **item**: Backlog item details for add/update (optional)
|
||||
- **filters**: Status, phase, assignee filters (optional)
|
||||
|
||||
## Backlog Item Structure
|
||||
```json
|
||||
{
|
||||
"id": "BLI-042",
|
||||
"title": "Add dark mode toggle",
|
||||
"description": "Allow users to switch between light and dark themes",
|
||||
"type": "feature|bug|tech_debt|spike",
|
||||
"phase": "empathize|define|ideate|prototype|test",
|
||||
"status": "idea|ready|in_progress|review|done|blocked",
|
||||
"priority_score": 8.5,
|
||||
"scoring": {
|
||||
"user_value": 7,
|
||||
"time_criticality": 3,
|
||||
"risk_reduction": 2,
|
||||
"effort": 3
|
||||
},
|
||||
"story_points": 5,
|
||||
"assigned_agent": "frontend|backend|tester|devops|pm",
|
||||
"dependencies": ["BLI-040", "BLI-041"],
|
||||
"labels": ["ux", "settings", "mvp"],
|
||||
"acceptance_criteria": [
|
||||
"Toggle visible in settings page",
|
||||
"Theme persists across sessions",
|
||||
"Respects system preference by default"
|
||||
],
|
||||
"created_at": "2024-12-14T10:00:00Z",
|
||||
"updated_at": "2024-12-14T15:30:00Z",
|
||||
"sprint_id": null
|
||||
}
|
||||
```
|
||||
|
||||
## WSJF Prioritization
|
||||
|
||||
### Formula
|
||||
```
|
||||
Priority Score = (User Value + Time Criticality + Risk Reduction) / Effort
|
||||
|
||||
Scale: 1-10 for each factor
|
||||
Result: Higher score = Higher priority
|
||||
```
|
||||
|
||||
### Scoring Guide
|
||||
|
||||
**User Value (1-10):**
|
||||
- 10: Core feature, all users need
|
||||
- 7-9: Important feature, most users benefit
|
||||
- 4-6: Nice to have, some users want
|
||||
- 1-3: Edge case, few users affected
|
||||
|
||||
**Time Criticality (1-10):**
|
||||
- 10: Must ship this sprint, blocking release
|
||||
- 7-9: Needed soon, customer commitment
|
||||
- 4-6: Planned for quarter, flexible timing
|
||||
- 1-3: Backlog, no deadline
|
||||
|
||||
**Risk Reduction (1-10):**
|
||||
- 10: Eliminates critical security/stability risk
|
||||
- 7-9: Reduces significant technical debt
|
||||
- 4-6: Improves maintainability
|
||||
- 1-3: Minor improvement
|
||||
|
||||
**Effort (1-10):**
|
||||
- 1-2: Trivial, < 2 hours
|
||||
- 3-4: Small, 2-8 hours
|
||||
- 5-6: Medium, 1-2 days
|
||||
- 7-8: Large, 3-5 days
|
||||
- 9-10: Epic, > 1 week (should be split)
|
||||
|
||||
### Priority Buckets
|
||||
```
|
||||
Score > 10: 🔥 Critical - Do immediately
|
||||
Score 7-10: ⚡ High - Sprint commitment
|
||||
Score 4-7: 📌 Medium - Plan for next sprint
|
||||
Score < 4: 💤 Low - Future backlog
|
||||
```
|
||||
|
||||
## Backlog Actions
|
||||
|
||||
### List Backlog
|
||||
```json
|
||||
{
|
||||
"action": "list",
|
||||
"filters": {
|
||||
"status": ["ready", "in_progress"],
|
||||
"phase": "prototype",
|
||||
"label": "mvp"
|
||||
},
|
||||
"sort": "priority_score",
|
||||
"limit": 20
|
||||
}
|
||||
```
|
||||
|
||||
### Add Item
|
||||
```json
|
||||
{
|
||||
"action": "add",
|
||||
"item": {
|
||||
"title": "Implement password reset flow",
|
||||
"description": "Users need ability to reset forgotten passwords",
|
||||
"type": "feature",
|
||||
"phase": "prototype",
|
||||
"labels": ["auth", "mvp"],
|
||||
"acceptance_criteria": [
|
||||
"Email sent with reset link",
|
||||
"Link expires after 1 hour",
|
||||
"Password requirements enforced"
|
||||
]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Prioritize Backlog
|
||||
```json
|
||||
{
|
||||
"action": "prioritize",
|
||||
"items": [
|
||||
{ "id": "BLI-042", "user_value": 7, "time_criticality": 3, "risk_reduction": 2, "effort": 3 },
|
||||
{ "id": "BLI-043", "user_value": 9, "time_criticality": 8, "risk_reduction": 5, "effort": 5 }
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
### Groom Items
|
||||
```json
|
||||
{
|
||||
"action": "groom",
|
||||
"item_id": "BLI-042",
|
||||
"updates": {
|
||||
"description": "Updated description with more detail",
|
||||
"acceptance_criteria": ["New criteria"],
|
||||
"story_points": 8,
|
||||
"status": "ready"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Output Format
|
||||
```json
|
||||
{
|
||||
"status": "success",
|
||||
"action": "list",
|
||||
"backlog": {
|
||||
"total_items": 45,
|
||||
"ready_items": 12,
|
||||
"in_progress": 5,
|
||||
"blocked": 1
|
||||
},
|
||||
"items": [
|
||||
{
|
||||
"id": "BLI-043",
|
||||
"title": "User authentication",
|
||||
"priority_score": 7.33,
|
||||
"status": "ready",
|
||||
"story_points": 8,
|
||||
"phase": "prototype"
|
||||
}
|
||||
],
|
||||
"recommendations": [
|
||||
{
|
||||
"type": "split",
|
||||
"item_id": "BLI-050",
|
||||
"reason": "Effort score 9 - consider breaking into smaller items"
|
||||
},
|
||||
{
|
||||
"type": "prioritize",
|
||||
"item_id": "BLI-043",
|
||||
"reason": "High time criticality, move to top"
|
||||
}
|
||||
],
|
||||
"next_step": "Plan sprint with /sprint plan"
|
||||
}
|
||||
```
|
||||
|
||||
## AI Advisory
|
||||
|
||||
### Recommendations Engine
|
||||
```javascript
|
||||
function generateRecommendations(backlog) {
|
||||
const recommendations = [];
|
||||
|
||||
// Large items should be split
|
||||
backlog.filter(i => i.scoring.effort >= 8).forEach(item => {
|
||||
recommendations.push({
|
||||
type: 'split',
|
||||
item_id: item.id,
|
||||
reason: `Effort ${item.scoring.effort} is too high. Split into 2-3 smaller items.`,
|
||||
priority: 'high'
|
||||
});
|
||||
});
|
||||
|
||||
// Blocked items need attention
|
||||
backlog.filter(i => i.status === 'blocked').forEach(item => {
|
||||
recommendations.push({
|
||||
type: 'unblock',
|
||||
item_id: item.id,
|
||||
reason: `Item blocked. Check dependencies: ${item.dependencies.join(', ')}`,
|
||||
priority: 'critical'
|
||||
});
|
||||
});
|
||||
|
||||
// Old items in "idea" status
|
||||
const oldIdeas = backlog.filter(i =>
|
||||
i.status === 'idea' &&
|
||||
daysSince(i.created_at) > 30
|
||||
);
|
||||
if (oldIdeas.length > 5) {
|
||||
recommendations.push({
|
||||
type: 'cleanup',
|
||||
reason: `${oldIdeas.length} items in "idea" status for 30+ days. Review or remove.`,
|
||||
priority: 'medium'
|
||||
});
|
||||
}
|
||||
|
||||
return recommendations;
|
||||
}
|
||||
```
|
||||
|
||||
## Quality Gates
|
||||
- [ ] All items have clear titles
|
||||
- [ ] Ready items have acceptance criteria
|
||||
- [ ] WSJF scores calculated
|
||||
- [ ] Dependencies documented
|
||||
- [ ] Large items flagged for splitting
|
||||
- [ ] Blocked items have resolution plan
|
||||
|
||||
## Token Budget
|
||||
- Max input: 800 tokens
|
||||
- Max output: 1500 tokens
|
||||
|
||||
## Model
|
||||
- Recommended: sonnet (prioritization reasoning)
|
||||
|
||||
## Philosophy
|
||||
> "Build less, ship faster. Priority is about saying no."
|
||||
|
||||
**Keep it simple:**
|
||||
- Small items > Large epics
|
||||
- Done > Perfect
|
||||
- User value > Technical elegance
|
||||
- Weekly grooming beats quarterly planning
|
||||
Reference in New Issue
Block a user