specweave 0.23.8 โ 0.23.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +7 -7
- package/CLAUDE.md +391 -1338
- package/dist/src/cli/commands/cleanup-cache.d.ts +14 -0
- package/dist/src/cli/commands/cleanup-cache.d.ts.map +1 -0
- package/dist/src/cli/commands/cleanup-cache.js +63 -0
- package/dist/src/cli/commands/cleanup-cache.js.map +1 -0
- package/dist/src/cli/commands/init.js +40 -0
- package/dist/src/cli/commands/init.js.map +1 -1
- package/dist/src/cli/commands/migrate-config.d.ts +22 -0
- package/dist/src/cli/commands/migrate-config.d.ts.map +1 -0
- package/dist/src/cli/commands/migrate-config.js +149 -0
- package/dist/src/cli/commands/migrate-config.js.map +1 -0
- package/dist/src/cli/helpers/async-project-loader.d.ts +148 -0
- package/dist/src/cli/helpers/async-project-loader.d.ts.map +1 -0
- package/dist/src/cli/helpers/async-project-loader.js +351 -0
- package/dist/src/cli/helpers/async-project-loader.js.map +1 -0
- package/dist/src/cli/helpers/cancelation-handler.d.ts +123 -0
- package/dist/src/cli/helpers/cancelation-handler.d.ts.map +1 -0
- package/dist/src/cli/helpers/cancelation-handler.js +187 -0
- package/dist/src/cli/helpers/cancelation-handler.js.map +1 -0
- package/dist/src/cli/helpers/import-strategy-prompter.d.ts +43 -0
- package/dist/src/cli/helpers/import-strategy-prompter.d.ts.map +1 -0
- package/dist/src/cli/helpers/import-strategy-prompter.js +136 -0
- package/dist/src/cli/helpers/import-strategy-prompter.js.map +1 -0
- package/dist/src/cli/helpers/issue-tracker/ado.d.ts +5 -2
- package/dist/src/cli/helpers/issue-tracker/ado.d.ts.map +1 -1
- package/dist/src/cli/helpers/issue-tracker/ado.js +90 -40
- package/dist/src/cli/helpers/issue-tracker/ado.js.map +1 -1
- package/dist/src/cli/helpers/issue-tracker/index.d.ts.map +1 -1
- package/dist/src/cli/helpers/issue-tracker/index.js +112 -60
- package/dist/src/cli/helpers/issue-tracker/index.js.map +1 -1
- package/dist/src/cli/helpers/issue-tracker/jira.d.ts +26 -2
- package/dist/src/cli/helpers/issue-tracker/jira.d.ts.map +1 -1
- package/dist/src/cli/helpers/issue-tracker/jira.js +197 -132
- package/dist/src/cli/helpers/issue-tracker/jira.js.map +1 -1
- package/dist/src/cli/helpers/progress-tracker.d.ts +121 -0
- package/dist/src/cli/helpers/progress-tracker.d.ts.map +1 -0
- package/dist/src/cli/helpers/progress-tracker.js +202 -0
- package/dist/src/cli/helpers/progress-tracker.js.map +1 -0
- package/dist/src/cli/helpers/project-count-fetcher.d.ts +69 -0
- package/dist/src/cli/helpers/project-count-fetcher.d.ts.map +1 -0
- package/dist/src/cli/helpers/project-count-fetcher.js +173 -0
- package/dist/src/cli/helpers/project-count-fetcher.js.map +1 -0
- package/dist/src/config/types.d.ts +14 -14
- package/dist/src/core/cache/cache-manager.d.ts +119 -0
- package/dist/src/core/cache/cache-manager.d.ts.map +1 -0
- package/dist/src/core/cache/cache-manager.js +304 -0
- package/dist/src/core/cache/cache-manager.js.map +1 -0
- package/dist/src/core/cache/rate-limit-checker.d.ts +92 -0
- package/dist/src/core/cache/rate-limit-checker.d.ts.map +1 -0
- package/dist/src/core/cache/rate-limit-checker.js +160 -0
- package/dist/src/core/cache/rate-limit-checker.js.map +1 -0
- package/dist/src/core/config/config-manager.d.ts +135 -0
- package/dist/src/core/config/config-manager.d.ts.map +1 -0
- package/dist/src/core/config/config-manager.js +341 -0
- package/dist/src/core/config/config-manager.js.map +1 -0
- package/dist/src/core/config/config-migrator.d.ts +102 -0
- package/dist/src/core/config/config-migrator.d.ts.map +1 -0
- package/dist/src/core/config/config-migrator.js +367 -0
- package/dist/src/core/config/config-migrator.js.map +1 -0
- package/dist/src/core/config/index.d.ts +10 -0
- package/dist/src/core/config/index.d.ts.map +1 -0
- package/dist/src/core/config/index.js +10 -0
- package/dist/src/core/config/index.js.map +1 -0
- package/dist/src/core/config/types.d.ts +216 -0
- package/dist/src/core/config/types.d.ts.map +1 -0
- package/dist/src/core/config/types.js +32 -0
- package/dist/src/core/config/types.js.map +1 -0
- package/dist/src/core/progress/cancelation-handler.d.ts +79 -0
- package/dist/src/core/progress/cancelation-handler.d.ts.map +1 -0
- package/dist/src/core/progress/cancelation-handler.js +111 -0
- package/dist/src/core/progress/cancelation-handler.js.map +1 -0
- package/dist/src/core/progress/import-state.d.ts +71 -0
- package/dist/src/core/progress/import-state.d.ts.map +1 -0
- package/dist/src/core/progress/import-state.js +96 -0
- package/dist/src/core/progress/import-state.js.map +1 -0
- package/dist/src/core/progress/progress-tracker.d.ts +139 -0
- package/dist/src/core/progress/progress-tracker.d.ts.map +1 -0
- package/dist/src/core/progress/progress-tracker.js +223 -0
- package/dist/src/core/progress/progress-tracker.js.map +1 -0
- package/dist/src/init/architecture/types.d.ts +6 -6
- package/dist/src/integrations/ado/ado-client.d.ts +25 -0
- package/dist/src/integrations/ado/ado-client.d.ts.map +1 -1
- package/dist/src/integrations/ado/ado-client.js +67 -0
- package/dist/src/integrations/ado/ado-client.js.map +1 -1
- package/dist/src/integrations/ado/ado-dependency-loader.d.ts +99 -0
- package/dist/src/integrations/ado/ado-dependency-loader.d.ts.map +1 -0
- package/dist/src/integrations/ado/ado-dependency-loader.js +207 -0
- package/dist/src/integrations/ado/ado-dependency-loader.js.map +1 -0
- package/dist/src/integrations/jira/jira-client.d.ts +32 -0
- package/dist/src/integrations/jira/jira-client.d.ts.map +1 -1
- package/dist/src/integrations/jira/jira-client.js +81 -0
- package/dist/src/integrations/jira/jira-client.js.map +1 -1
- package/dist/src/integrations/jira/jira-dependency-loader.d.ts +101 -0
- package/dist/src/integrations/jira/jira-dependency-loader.d.ts.map +1 -0
- package/dist/src/integrations/jira/jira-dependency-loader.js +200 -0
- package/dist/src/integrations/jira/jira-dependency-loader.js.map +1 -0
- package/dist/src/integrations/jira/jira-hierarchy-mapper.d.ts +104 -0
- package/dist/src/integrations/jira/jira-hierarchy-mapper.d.ts.map +1 -0
- package/dist/src/integrations/jira/jira-hierarchy-mapper.js +178 -0
- package/dist/src/integrations/jira/jira-hierarchy-mapper.js.map +1 -0
- package/package.json +1 -1
- package/plugins/specweave/.claude-plugin/plugin.json +20 -0
- package/plugins/specweave/agents/architect/AGENT.md +100 -602
- package/plugins/specweave/agents/pm/AGENT.md +96 -597
- package/plugins/specweave/agents/pm/AGENT.md.bak +1893 -0
- package/plugins/specweave/agents/pm/AGENT.md.bak2 +1754 -0
- package/plugins/specweave/commands/check-hooks.md +257 -0
- package/plugins/specweave/commands/migrate-config.md +104 -0
- package/plugins/specweave/hooks/post-edit-spec.sh +202 -31
- package/plugins/specweave/hooks/post-task-completion.sh +225 -228
- package/plugins/specweave/hooks/post-write-spec.sh +207 -31
- package/plugins/specweave/hooks/pre-edit-spec.sh +151 -0
- package/plugins/specweave/hooks/pre-task-completion.sh +5 -7
- package/plugins/specweave/hooks/pre-write-spec.sh +151 -0
- package/plugins/specweave/hooks/test-pretooluse-env.sh +72 -0
- package/plugins/specweave/skills/compliance-architecture/SKILL.md +374 -0
- package/plugins/specweave/skills/external-sync-wizard/SKILL.md +610 -0
- package/plugins/specweave/skills/pm-closure-validation/SKILL.md +541 -0
- package/plugins/specweave/skills/roadmap-planner/SKILL.md +473 -0
- package/plugins/specweave-ado/commands/refresh-cache.js +25 -0
- package/plugins/specweave-ado/commands/refresh-cache.ts +40 -0
- package/plugins/specweave-ado/hooks/post-task-completion.sh +1 -1
- package/plugins/specweave-github/hooks/post-task-completion.sh +1 -1
- package/plugins/specweave-jira/commands/refresh-cache.js +25 -0
- package/plugins/specweave-jira/commands/refresh-cache.ts +40 -0
- package/plugins/specweave-jira/hooks/post-task-completion.sh +1 -1
- package/plugins/specweave-kafka-streams/commands/topology.md +437 -0
- package/plugins/specweave-n8n/commands/workflow-template.md +262 -0
- package/plugins/specweave-release/hooks/.specweave/logs/dora-tracking.log +228 -6333
|
@@ -0,0 +1,473 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: roadmap-planner
|
|
3
|
+
description: Product roadmap and feature prioritization expert. Creates product roadmaps, prioritizes features using RICE/MoSCoW/Kano frameworks, defines success metrics and KPIs, and translates technical decisions into business impact. Activates for roadmap, prioritization, RICE, MoSCoW, Kano, product planning, feature ranking, success metrics, KPIs, stakeholder communication, business impact, Q1 Q2 Q3 Q4 planning, quarterly goals, release planning, feature prioritization.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Roadmap Planner - Strategic Product Planning
|
|
7
|
+
|
|
8
|
+
**Purpose**: Provide expert guidance on product roadmaps, feature prioritization frameworks, success metrics definition, and stakeholder communication.
|
|
9
|
+
|
|
10
|
+
**When to Use**:
|
|
11
|
+
- Planning product roadmaps (quarterly, annual)
|
|
12
|
+
- Prioritizing features across multiple increments
|
|
13
|
+
- Defining success metrics and KPIs
|
|
14
|
+
- Communicating technical decisions to stakeholders
|
|
15
|
+
- Analyzing ROI and business impact
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## Feature Prioritization Frameworks
|
|
20
|
+
|
|
21
|
+
### RICE Score
|
|
22
|
+
|
|
23
|
+
**Formula**: `RICE = (Reach ร Impact ร Confidence) / Effort`
|
|
24
|
+
|
|
25
|
+
**Components**:
|
|
26
|
+
- **Reach**: How many users/customers will this impact per quarter?
|
|
27
|
+
- **Impact**: How much will this impact each user? (0.25 = minimal, 0.5 = low, 1 = medium, 2 = high, 3 = massive)
|
|
28
|
+
- **Confidence**: How confident are you in your estimates? (50% = low, 80% = medium, 100% = high)
|
|
29
|
+
- **Effort**: How many person-weeks/months will this take?
|
|
30
|
+
|
|
31
|
+
**Example**:
|
|
32
|
+
```
|
|
33
|
+
Feature: Real-time Collaboration
|
|
34
|
+
- Reach: 8000 users/quarter (80% of user base)
|
|
35
|
+
- Impact: 3 (Massive impact on user satisfaction)
|
|
36
|
+
- Confidence: 70% (some unknowns in WebSocket scalability)
|
|
37
|
+
- Effort: 8 person-weeks
|
|
38
|
+
|
|
39
|
+
RICE = (8000 ร 3 ร 0.7) / 8 = 2100
|
|
40
|
+
|
|
41
|
+
Higher RICE = Higher Priority
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
**When to Use RICE**:
|
|
45
|
+
- โ
Large feature backlogs (50+ features)
|
|
46
|
+
- โ
Data-driven product teams
|
|
47
|
+
- โ
B2C products with large user bases
|
|
48
|
+
- โ
Need to compare features objectively
|
|
49
|
+
|
|
50
|
+
**RICE Scoring Table Example**:
|
|
51
|
+
```markdown
|
|
52
|
+
| Feature | Reach | Impact | Confidence | Effort | RICE Score | Priority |
|
|
53
|
+
|---------|-------|--------|------------|--------|------------|----------|
|
|
54
|
+
| Real-time Collaboration | 8000 | 3 | 70% | 8 | 2100 | P1 |
|
|
55
|
+
| Dark Mode | 6000 | 1 | 90% | 2 | 2700 | P1 |
|
|
56
|
+
| Advanced Search | 4000 | 2 | 60% | 6 | 800 | P2 |
|
|
57
|
+
| Mobile App | 10000 | 3 | 50% | 20 | 750 | P2 |
|
|
58
|
+
| AI Suggestions | 5000 | 2 | 40% | 12 | 333 | P3 |
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
### MoSCoW Prioritization
|
|
64
|
+
|
|
65
|
+
**Categories**:
|
|
66
|
+
- **Must Have**: Critical for MVP, without these product fails
|
|
67
|
+
- Non-negotiable requirements
|
|
68
|
+
- Legal/compliance requirements
|
|
69
|
+
- Core value proposition
|
|
70
|
+
|
|
71
|
+
- **Should Have**: Important but not critical, workarounds exist
|
|
72
|
+
- Adds significant value
|
|
73
|
+
- Can be deferred if necessary
|
|
74
|
+
- User experience improvements
|
|
75
|
+
|
|
76
|
+
- **Could Have**: Nice-to-have, adds value but not essential
|
|
77
|
+
- Desirable features
|
|
78
|
+
- Low implementation effort
|
|
79
|
+
- "Polish" items
|
|
80
|
+
|
|
81
|
+
- **Won't Have**: Out of scope for this release
|
|
82
|
+
- Future roadmap items
|
|
83
|
+
- Technical debt cleanup
|
|
84
|
+
- Edge case features
|
|
85
|
+
|
|
86
|
+
**Example**:
|
|
87
|
+
```markdown
|
|
88
|
+
## Feature Prioritization (Q1 2025 MVP)
|
|
89
|
+
|
|
90
|
+
### Must Have (P1)
|
|
91
|
+
| Feature | Reason |
|
|
92
|
+
|---------|--------|
|
|
93
|
+
| User Authentication | Foundation for all other features, security requirement |
|
|
94
|
+
| Task CRUD Operations | Core value proposition, minimum viable product |
|
|
95
|
+
| Real-time Synchronization | Key differentiator vs competitors |
|
|
96
|
+
|
|
97
|
+
### Should Have (P2)
|
|
98
|
+
| Feature | Reason |
|
|
99
|
+
|---------|--------|
|
|
100
|
+
| File Attachments | Requested by 60% of beta users, improves collaboration |
|
|
101
|
+
| Task Comments | Team collaboration feature, workaround: use Slack |
|
|
102
|
+
|
|
103
|
+
### Could Have (P3)
|
|
104
|
+
| Feature | Reason |
|
|
105
|
+
|---------|--------|
|
|
106
|
+
| Dark Mode | UI polish, low effort, nice-to-have |
|
|
107
|
+
| Custom Themes | Requested by enterprise customers, can wait for v2 |
|
|
108
|
+
|
|
109
|
+
### Won't Have (This Release)
|
|
110
|
+
- Mobile apps (Q2 2025 roadmap)
|
|
111
|
+
- Advanced analytics dashboard (Q3 2025)
|
|
112
|
+
- API for third-party integrations (Q4 2025)
|
|
113
|
+
- Offline mode (technical complexity too high for MVP)
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
**When to Use MoSCoW**:
|
|
117
|
+
- โ
MVP planning (focus on "Must Have")
|
|
118
|
+
- โ
Agile sprints (prioritize within time-box)
|
|
119
|
+
- โ
Stakeholder alignment (clear categories)
|
|
120
|
+
- โ
Resource-constrained teams
|
|
121
|
+
|
|
122
|
+
---
|
|
123
|
+
|
|
124
|
+
### Kano Model
|
|
125
|
+
|
|
126
|
+
**Categories**:
|
|
127
|
+
- **Basic Needs** (Threshold Attributes):
|
|
128
|
+
- Users expect these by default
|
|
129
|
+
- Absence causes dissatisfaction
|
|
130
|
+
- Presence doesn't increase satisfaction
|
|
131
|
+
- Examples: Authentication, data persistence, security
|
|
132
|
+
|
|
133
|
+
- **Performance Needs** (Linear Attributes):
|
|
134
|
+
- More is better
|
|
135
|
+
- Satisfaction increases linearly with quality
|
|
136
|
+
- Examples: Speed, reliability, uptime, accuracy
|
|
137
|
+
|
|
138
|
+
- **Excitement Needs** (Delighters):
|
|
139
|
+
- Unexpected features that delight users
|
|
140
|
+
- Absence doesn't cause dissatisfaction
|
|
141
|
+
- Presence creates competitive advantage
|
|
142
|
+
- Examples: AI suggestions, beautiful UI, thoughtful details
|
|
143
|
+
|
|
144
|
+
**Example Analysis**:
|
|
145
|
+
```markdown
|
|
146
|
+
## Kano Model Analysis: Task Management App
|
|
147
|
+
|
|
148
|
+
### Basic Needs (Must Work)
|
|
149
|
+
- User authentication (email/password)
|
|
150
|
+
- Create, read, update, delete tasks
|
|
151
|
+
- Data persistence (don't lose my tasks!)
|
|
152
|
+
- Secure data storage (HTTPS, encrypted)
|
|
153
|
+
- Basic search functionality
|
|
154
|
+
|
|
155
|
+
### Performance Needs (More is Better)
|
|
156
|
+
- **Speed**: Task creation < 100ms
|
|
157
|
+
- **Reliability**: 99.9% uptime SLA
|
|
158
|
+
- **Accuracy**: Search finds relevant tasks
|
|
159
|
+
- **Capacity**: Support 10K+ tasks per user
|
|
160
|
+
- **Responsiveness**: UI updates instantly
|
|
161
|
+
|
|
162
|
+
### Excitement Needs (Delighters)
|
|
163
|
+
- **AI-powered task suggestions**: "You might want to schedule a follow-up"
|
|
164
|
+
- **Beautiful, minimalist UI**: Thoughtful animations, delightful interactions
|
|
165
|
+
- **Smart reminders**: Context-aware notifications
|
|
166
|
+
- **Collaboration magic**: Seamless real-time updates
|
|
167
|
+
- **Voice input**: "Add task: Buy milk"
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
**When to Use Kano**:
|
|
171
|
+
- โ
Understanding user expectations
|
|
172
|
+
- โ
Differentiating from competitors
|
|
173
|
+
- โ
Balancing "table stakes" vs innovation
|
|
174
|
+
- โ
UX/product design decisions
|
|
175
|
+
|
|
176
|
+
---
|
|
177
|
+
|
|
178
|
+
## Product Roadmap Creation
|
|
179
|
+
|
|
180
|
+
### Quarterly Roadmap Template
|
|
181
|
+
|
|
182
|
+
**Structure**: Themes โ Features โ Success Metrics
|
|
183
|
+
|
|
184
|
+
**Example**:
|
|
185
|
+
```markdown
|
|
186
|
+
# Product Roadmap 2025
|
|
187
|
+
|
|
188
|
+
## Q1 2025: Foundation (MVP)
|
|
189
|
+
**Theme**: Core Task Management
|
|
190
|
+
**Goal**: Launch with 100 beta users
|
|
191
|
+
**Team Focus**: Backend + Frontend (1:1 split)
|
|
192
|
+
|
|
193
|
+
### Features
|
|
194
|
+
- โ
User Authentication (Weeks 1-2) - COMPLETED
|
|
195
|
+
- Email/password login
|
|
196
|
+
- Password reset flow
|
|
197
|
+
- Session management
|
|
198
|
+
|
|
199
|
+
- โ
Task CRUD Operations (Weeks 3-4) - COMPLETED
|
|
200
|
+
- Create, read, update, delete tasks
|
|
201
|
+
- Task properties: title, description, due date, priority
|
|
202
|
+
- Basic filtering and sorting
|
|
203
|
+
|
|
204
|
+
- ๐ Real-time Synchronization (Weeks 5-7) - IN PROGRESS
|
|
205
|
+
- WebSocket-based live updates
|
|
206
|
+
- Conflict resolution (Operational Transform)
|
|
207
|
+
- Offline queue with sync on reconnect
|
|
208
|
+
|
|
209
|
+
- โณ File Attachments (Weeks 8-9) - PLANNED
|
|
210
|
+
- Upload files (images, PDFs, docs)
|
|
211
|
+
- S3 storage integration
|
|
212
|
+
- Virus scanning
|
|
213
|
+
|
|
214
|
+
- โณ Beta Launch (Week 10) - PLANNED
|
|
215
|
+
- Onboarding flow
|
|
216
|
+
- User feedback mechanism
|
|
217
|
+
- Analytics instrumentation
|
|
218
|
+
|
|
219
|
+
### Success Metrics
|
|
220
|
+
- **User Acquisition**: 100 active beta users
|
|
221
|
+
- **Engagement**: >70% weekly active usage
|
|
222
|
+
- **Performance**: <5 min average onboarding time
|
|
223
|
+
- **Quality**: <5 critical bugs reported per week
|
|
224
|
+
|
|
225
|
+
### Risks & Mitigations
|
|
226
|
+
- **Risk**: WebSocket scalability issues at 100 concurrent users
|
|
227
|
+
- **Mitigation**: Load testing with 200 users, fallback to polling
|
|
228
|
+
- **Risk**: Low beta signups
|
|
229
|
+
- **Mitigation**: ProductHunt launch, Reddit outreach
|
|
230
|
+
|
|
231
|
+
---
|
|
232
|
+
|
|
233
|
+
## Q2 2025: Collaboration
|
|
234
|
+
**Theme**: Team Features
|
|
235
|
+
**Goal**: 1K paying customers, $50K MRR
|
|
236
|
+
**Team Focus**: Backend + Frontend + Mobile (2:2:1 split)
|
|
237
|
+
|
|
238
|
+
### Features
|
|
239
|
+
- Team workspaces (multi-tenant architecture)
|
|
240
|
+
- Role-based permissions (owner, admin, member, viewer)
|
|
241
|
+
- Task comments and @mentions
|
|
242
|
+
- Activity feeds (real-time notifications)
|
|
243
|
+
- Mobile apps (iOS/Android React Native)
|
|
244
|
+
|
|
245
|
+
### Success Metrics
|
|
246
|
+
- **Revenue**: $50K MRR (avg $5/user/month)
|
|
247
|
+
- **Growth**: 1K paying customers
|
|
248
|
+
- **Retention**: <2% monthly churn rate
|
|
249
|
+
- **Activation**: 60% of signups create a team within 7 days
|
|
250
|
+
|
|
251
|
+
---
|
|
252
|
+
|
|
253
|
+
## Q3 2025: Integrations
|
|
254
|
+
**Theme**: Workflow Automation
|
|
255
|
+
**Goal**: 5K customers, $200K MRR
|
|
256
|
+
|
|
257
|
+
### Features
|
|
258
|
+
- Slack integration (notifications, create tasks from Slack)
|
|
259
|
+
- GitHub integration (link tasks to PRs, auto-close on merge)
|
|
260
|
+
- Zapier webhooks (connect to 3000+ apps)
|
|
261
|
+
- Public API for third-party apps (REST + GraphQL)
|
|
262
|
+
- Workflow automation (IFTTT-style rules)
|
|
263
|
+
|
|
264
|
+
### Success Metrics
|
|
265
|
+
- **Integration Adoption**: 40% of teams use at least one integration
|
|
266
|
+
- **API Usage**: 500K API calls/month
|
|
267
|
+
- **Revenue**: $200K MRR
|
|
268
|
+
- **NPS**: >50 (promoters significantly outnumber detractors)
|
|
269
|
+
|
|
270
|
+
---
|
|
271
|
+
|
|
272
|
+
## Q4 2025: Enterprise
|
|
273
|
+
**Theme**: Scale & Compliance
|
|
274
|
+
**Goal**: 10K customers, $500K MRR
|
|
275
|
+
|
|
276
|
+
### Features
|
|
277
|
+
- SSO (SAML, OAuth for enterprise)
|
|
278
|
+
- Advanced permissions (custom roles, granular ACLs)
|
|
279
|
+
- Audit logs (compliance requirements)
|
|
280
|
+
- SOC 2 Type II compliance
|
|
281
|
+
- Custom SLAs for enterprise customers
|
|
282
|
+
|
|
283
|
+
### Success Metrics
|
|
284
|
+
- **Enterprise Customers**: 50 companies (>100 seats each)
|
|
285
|
+
- **Revenue**: $500K MRR ($200K from enterprise tier)
|
|
286
|
+
- **Compliance**: SOC 2 Type II certification
|
|
287
|
+
- **Uptime**: 99.99% SLA for enterprise tier
|
|
288
|
+
```
|
|
289
|
+
|
|
290
|
+
---
|
|
291
|
+
|
|
292
|
+
## Success Metrics & KPIs
|
|
293
|
+
|
|
294
|
+
### Framework: OKRs (Objectives & Key Results)
|
|
295
|
+
|
|
296
|
+
**Example**:
|
|
297
|
+
```yaml
|
|
298
|
+
objective: "Become the #1 task management tool for remote teams"
|
|
299
|
+
|
|
300
|
+
key_results:
|
|
301
|
+
KR1:
|
|
302
|
+
metric: "Daily Active Users (DAU)"
|
|
303
|
+
target: "70% of registered users"
|
|
304
|
+
measurement: "Track unique logins per day (Mixpanel)"
|
|
305
|
+
current: "52%"
|
|
306
|
+
target_date: "2025-Q2"
|
|
307
|
+
|
|
308
|
+
KR2:
|
|
309
|
+
metric: "Feature Adoption - Real-time Collaboration"
|
|
310
|
+
target: "50% of teams use real-time editing within first week"
|
|
311
|
+
measurement: "Track WebSocket connections per team"
|
|
312
|
+
current: "0% (feature not launched)"
|
|
313
|
+
target_date: "2025-Q1"
|
|
314
|
+
|
|
315
|
+
KR3:
|
|
316
|
+
metric: "Customer Satisfaction (NPS)"
|
|
317
|
+
target: "NPS > 40"
|
|
318
|
+
measurement: "In-app survey after 1 week of use"
|
|
319
|
+
current: "28"
|
|
320
|
+
target_date: "2025-Q3"
|
|
321
|
+
|
|
322
|
+
KR4:
|
|
323
|
+
metric: "Revenue Growth"
|
|
324
|
+
target: "$200K MRR by end of Q3"
|
|
325
|
+
measurement: "Stripe dashboard (MRR)"
|
|
326
|
+
current: "$15K MRR"
|
|
327
|
+
target_date: "2025-Q3"
|
|
328
|
+
```
|
|
329
|
+
|
|
330
|
+
### Metric Categories
|
|
331
|
+
|
|
332
|
+
**Engagement Metrics**:
|
|
333
|
+
- Daily Active Users (DAU)
|
|
334
|
+
- Weekly Active Users (WAU)
|
|
335
|
+
- Monthly Active Users (MAU)
|
|
336
|
+
- DAU/MAU ratio (stickiness)
|
|
337
|
+
- Session duration
|
|
338
|
+
- Feature adoption rate
|
|
339
|
+
|
|
340
|
+
**Performance Metrics**:
|
|
341
|
+
- API response time (p50, p95, p99)
|
|
342
|
+
- Page load time (< 2 seconds)
|
|
343
|
+
- Sync latency (< 100ms)
|
|
344
|
+
- Error rate (< 0.1%)
|
|
345
|
+
- Uptime SLA (99.9% โ 99.99%)
|
|
346
|
+
|
|
347
|
+
**Business Metrics**:
|
|
348
|
+
- Monthly Recurring Revenue (MRR)
|
|
349
|
+
- Customer Acquisition Cost (CAC)
|
|
350
|
+
- Lifetime Value (LTV)
|
|
351
|
+
- LTV:CAC ratio (should be > 3:1)
|
|
352
|
+
- Churn rate (< 2% monthly)
|
|
353
|
+
- Net Promoter Score (NPS)
|
|
354
|
+
|
|
355
|
+
**Example Measurement Plan**:
|
|
356
|
+
```markdown
|
|
357
|
+
## Measurement Plan: Real-time Collaboration Feature
|
|
358
|
+
|
|
359
|
+
### Instrumentation
|
|
360
|
+
1. **Analytics Events** (Mixpanel/Amplitude)
|
|
361
|
+
- `collaboration_session_started`
|
|
362
|
+
- `collaboration_edit_made`
|
|
363
|
+
- `collaboration_conflict_resolved`
|
|
364
|
+
- `collaboration_session_ended`
|
|
365
|
+
|
|
366
|
+
2. **Performance Monitoring** (Grafana/Datadog)
|
|
367
|
+
- WebSocket connection metrics
|
|
368
|
+
- Message round-trip latency (p50, p95, p99)
|
|
369
|
+
- Concurrent user count per workspace
|
|
370
|
+
- Operational Transform conflict rate
|
|
371
|
+
|
|
372
|
+
3. **User Feedback** (In-app surveys)
|
|
373
|
+
- NPS survey after 1 week of use
|
|
374
|
+
- "How would you rate the real-time collaboration feature?" (1-5 stars)
|
|
375
|
+
- "What could we improve?"
|
|
376
|
+
|
|
377
|
+
### Success Criteria (Go/No-Go Decision)
|
|
378
|
+
- โ
**PASS**: 50%+ teams adopt feature within 1 week
|
|
379
|
+
- โ
**PASS**: p95 latency < 200ms
|
|
380
|
+
- โ
**PASS**: < 1% conflict rate requiring manual merge
|
|
381
|
+
- โ
**PASS**: NPS improvement of +10 points
|
|
382
|
+
|
|
383
|
+
- โ **FAIL**: Adoption < 30% after 2 weeks โ Investigate UX issues
|
|
384
|
+
- โ **FAIL**: p95 latency > 500ms โ Performance optimization required
|
|
385
|
+
```
|
|
386
|
+
|
|
387
|
+
---
|
|
388
|
+
|
|
389
|
+
## Stakeholder Communication
|
|
390
|
+
|
|
391
|
+
### Translating Technical to Business Impact
|
|
392
|
+
|
|
393
|
+
**Input**: Technical architecture decision
|
|
394
|
+
**Output**: Business-friendly explanation with ROI
|
|
395
|
+
|
|
396
|
+
**Example**:
|
|
397
|
+
```markdown
|
|
398
|
+
## Stakeholder Update: Microservices Architecture Migration
|
|
399
|
+
|
|
400
|
+
### Executive Summary
|
|
401
|
+
We're proposing a shift from our current monolithic architecture to microservices. This is a significant technical change that will deliver measurable business benefits.
|
|
402
|
+
|
|
403
|
+
### Business Impact Summary
|
|
404
|
+
|
|
405
|
+
**Benefits**:
|
|
406
|
+
|
|
407
|
+
1. **Faster Feature Delivery** (30% improvement)
|
|
408
|
+
- **Current**: Teams block each other, 3-week average time-to-market
|
|
409
|
+
- **Future**: Teams work independently, 2-week average time-to-market
|
|
410
|
+
- **Impact**: Ship features 33% faster, respond to customer requests quicker
|
|
411
|
+
- **Revenue Impact**: Faster iteration โ better product-market fit โ higher conversion
|
|
412
|
+
|
|
413
|
+
2. **Better Scalability** (2x cost efficiency)
|
|
414
|
+
- **Current**: Scale entire system even if only one feature needs it ($100K/year infrastructure)
|
|
415
|
+
- **Future**: Scale only the parts that need it ($50K/year infrastructure)
|
|
416
|
+
- **Impact**: Save $50K/year in AWS costs
|
|
417
|
+
- **Example**: During Black Friday, scale only payment service, not entire app
|
|
418
|
+
|
|
419
|
+
3. **Reduced Risk** (99.9% โ 99.99% uptime)
|
|
420
|
+
- **Current**: If one service fails, entire app goes down (8 hours downtime/year)
|
|
421
|
+
- **Future**: If one service fails, others keep running (1 hour downtime/year)
|
|
422
|
+
- **Impact**: 7 hours less downtime = $200K revenue protected
|
|
423
|
+
- **Customer Trust**: Fewer incidents = better reputation
|
|
424
|
+
|
|
425
|
+
**Costs**:
|
|
426
|
+
- **Engineering Time**: 8 weeks of dedicated migration work
|
|
427
|
+
- **New Tools**: +$5K/year for monitoring and orchestration (Kubernetes, Datadog)
|
|
428
|
+
- **Short-term Risk**: Temporary productivity dip during migration
|
|
429
|
+
|
|
430
|
+
**ROI Analysis**:
|
|
431
|
+
- **Costs**: $150K (8 weeks ร 3 engineers ร $75K salary + $5K tools)
|
|
432
|
+
- **Benefits Year 1**: $250K ($50K infra savings + $200K revenue protection)
|
|
433
|
+
- **Net Benefit Year 1**: $100K
|
|
434
|
+
- **Break-even**: 6 months
|
|
435
|
+
- **Payback Period**: 18 months for 3x ROI
|
|
436
|
+
|
|
437
|
+
**Recommendation**: Approve for Q3 implementation
|
|
438
|
+
**Timeline**: 8 weeks (Q3 2025)
|
|
439
|
+
**Team**: 3 backend engineers, 1 DevOps engineer
|
|
440
|
+
**Risk Level**: Medium (well-established pattern, many success stories)
|
|
441
|
+
```
|
|
442
|
+
|
|
443
|
+
---
|
|
444
|
+
|
|
445
|
+
## Integration with SpecWeave
|
|
446
|
+
|
|
447
|
+
### When PM Agent Should Use Roadmap Planner
|
|
448
|
+
|
|
449
|
+
**Automatic Activation**:
|
|
450
|
+
- User asks: "What should we prioritize?"
|
|
451
|
+
- User mentions: "roadmap", "RICE", "MoSCoW", "Kano"
|
|
452
|
+
- User wants: Quarterly planning, feature ranking
|
|
453
|
+
|
|
454
|
+
**PM Agent Workflow**:
|
|
455
|
+
1. Gather feature ideas (from user, backlog, stakeholders)
|
|
456
|
+
2. **Delegate to Roadmap Planner skill** for prioritization
|
|
457
|
+
3. Present prioritized roadmap with rationale
|
|
458
|
+
4. Create increments for P1 (Must Have) features
|
|
459
|
+
5. Defer P2/P3 to backlog
|
|
460
|
+
|
|
461
|
+
---
|
|
462
|
+
|
|
463
|
+
## Related Skills
|
|
464
|
+
|
|
465
|
+
- **PM Agent**: Uses roadmap-planner for strategic planning
|
|
466
|
+
- **increment-planner**: Executes individual increments from roadmap
|
|
467
|
+
- **spec-generator**: Creates detailed specs for prioritized features
|
|
468
|
+
|
|
469
|
+
---
|
|
470
|
+
|
|
471
|
+
## Version History
|
|
472
|
+
|
|
473
|
+
- **v1.0.0** (2025-11-21): Initial release, extracted from PM agent for better modularity
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { existsSync, unlinkSync, readdirSync } from "fs";
|
|
3
|
+
import { join } from "path";
|
|
4
|
+
async function refreshAdoCache(projectRoot = process.cwd()) {
|
|
5
|
+
const cacheDir = join(projectRoot, ".specweave", "cache", "ado");
|
|
6
|
+
if (!existsSync(cacheDir)) {
|
|
7
|
+
console.log("\u2705 No ADO cache found");
|
|
8
|
+
return;
|
|
9
|
+
}
|
|
10
|
+
console.log("\u{1F9F9} Clearing ADO cache...");
|
|
11
|
+
const files = readdirSync(cacheDir);
|
|
12
|
+
let cleared = 0;
|
|
13
|
+
for (const file of files) {
|
|
14
|
+
const filePath = join(cacheDir, file);
|
|
15
|
+
unlinkSync(filePath);
|
|
16
|
+
cleared++;
|
|
17
|
+
}
|
|
18
|
+
console.log(`\u2705 Cleared ${cleared} cache files`);
|
|
19
|
+
}
|
|
20
|
+
if (require.main === module) {
|
|
21
|
+
refreshAdoCache().catch(console.error);
|
|
22
|
+
}
|
|
23
|
+
export {
|
|
24
|
+
refreshAdoCache
|
|
25
|
+
};
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* refresh-cache.ts - Azure DevOps Plugin Cache Refresh
|
|
5
|
+
*
|
|
6
|
+
* Clears and refreshes ADO sync cache to prevent stale data issues
|
|
7
|
+
*
|
|
8
|
+
* Usage:
|
|
9
|
+
* /specweave-ado:refresh-cache
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
import { existsSync, unlinkSync, readdirSync } from 'fs';
|
|
13
|
+
import { join } from 'path';
|
|
14
|
+
|
|
15
|
+
export async function refreshAdoCache(projectRoot: string = process.cwd()): Promise<void> {
|
|
16
|
+
const cacheDir = join(projectRoot, '.specweave', 'cache', 'ado');
|
|
17
|
+
|
|
18
|
+
if (!existsSync(cacheDir)) {
|
|
19
|
+
console.log('โ
No ADO cache found');
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
console.log('๐งน Clearing ADO cache...');
|
|
24
|
+
|
|
25
|
+
const files = readdirSync(cacheDir);
|
|
26
|
+
let cleared = 0;
|
|
27
|
+
|
|
28
|
+
for (const file of files) {
|
|
29
|
+
const filePath = join(cacheDir, file);
|
|
30
|
+
unlinkSync(filePath);
|
|
31
|
+
cleared++;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
console.log(`โ
Cleared ${cleared} cache files`);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
// CLI entry
|
|
38
|
+
if (require.main === module) {
|
|
39
|
+
refreshAdoCache().catch(console.error);
|
|
40
|
+
}
|
|
@@ -56,7 +56,7 @@ mkdir -p "$LOGS_DIR" 2>/dev/null || true
|
|
|
56
56
|
echo "[$(date)] [ADO] ๐ Azure DevOps sync hook fired" >> "$DEBUG_LOG" 2>/dev/null || true
|
|
57
57
|
|
|
58
58
|
# Detect current increment
|
|
59
|
-
CURRENT_INCREMENT=$(ls -
|
|
59
|
+
CURRENT_INCREMENT=$(ls -td .specweave/increments/*/ 2>/dev/null | xargs -n1 basename | grep -v "_backlog" | grep -v "_archive" | grep -v "_working" | head -1)
|
|
60
60
|
|
|
61
61
|
if [ -z "$CURRENT_INCREMENT" ]; then
|
|
62
62
|
echo "[$(date)] [ADO] โน๏ธ No active increment, skipping ADO sync" >> "$DEBUG_LOG" 2>/dev/null || true
|
|
@@ -102,7 +102,7 @@ fi
|
|
|
102
102
|
# Strategy: Use multi-spec detector to find ALL specs referenced in current increment
|
|
103
103
|
|
|
104
104
|
# 1. Detect current increment (temporary context)
|
|
105
|
-
CURRENT_INCREMENT=$(ls -
|
|
105
|
+
CURRENT_INCREMENT=$(ls -td .specweave/increments/*/ 2>/dev/null | xargs -n1 basename | grep -v "_backlog" | grep -v "_archive" | grep -v "_working" | head -1)
|
|
106
106
|
|
|
107
107
|
if [ -z "$CURRENT_INCREMENT" ]; then
|
|
108
108
|
echo "[$(date)] [GitHub] โน๏ธ No active increment, checking for spec changes..." >> "$DEBUG_LOG" 2>/dev/null || true
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { existsSync, unlinkSync, readdirSync } from "fs";
|
|
3
|
+
import { join } from "path";
|
|
4
|
+
async function refreshJiraCache(projectRoot = process.cwd()) {
|
|
5
|
+
const cacheDir = join(projectRoot, ".specweave", "cache", "jira");
|
|
6
|
+
if (!existsSync(cacheDir)) {
|
|
7
|
+
console.log("\u2705 No JIRA cache found");
|
|
8
|
+
return;
|
|
9
|
+
}
|
|
10
|
+
console.log("\u{1F9F9} Clearing JIRA cache...");
|
|
11
|
+
const files = readdirSync(cacheDir);
|
|
12
|
+
let cleared = 0;
|
|
13
|
+
for (const file of files) {
|
|
14
|
+
const filePath = join(cacheDir, file);
|
|
15
|
+
unlinkSync(filePath);
|
|
16
|
+
cleared++;
|
|
17
|
+
}
|
|
18
|
+
console.log(`\u2705 Cleared ${cleared} cache files`);
|
|
19
|
+
}
|
|
20
|
+
if (require.main === module) {
|
|
21
|
+
refreshJiraCache().catch(console.error);
|
|
22
|
+
}
|
|
23
|
+
export {
|
|
24
|
+
refreshJiraCache
|
|
25
|
+
};
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* refresh-cache.ts - JIRA Plugin Cache Refresh
|
|
5
|
+
*
|
|
6
|
+
* Clears and refreshes JIRA sync cache to prevent stale data issues
|
|
7
|
+
*
|
|
8
|
+
* Usage:
|
|
9
|
+
* /specweave-jira:refresh-cache
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
import { existsSync, unlinkSync, readdirSync } from 'fs';
|
|
13
|
+
import { join } from 'path';
|
|
14
|
+
|
|
15
|
+
export async function refreshJiraCache(projectRoot: string = process.cwd()): Promise<void> {
|
|
16
|
+
const cacheDir = join(projectRoot, '.specweave', 'cache', 'jira');
|
|
17
|
+
|
|
18
|
+
if (!existsSync(cacheDir)) {
|
|
19
|
+
console.log('โ
No JIRA cache found');
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
console.log('๐งน Clearing JIRA cache...');
|
|
24
|
+
|
|
25
|
+
const files = readdirSync(cacheDir);
|
|
26
|
+
let cleared = 0;
|
|
27
|
+
|
|
28
|
+
for (const file of files) {
|
|
29
|
+
const filePath = join(cacheDir, file);
|
|
30
|
+
unlinkSync(filePath);
|
|
31
|
+
cleared++;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
console.log(`โ
Cleared ${cleared} cache files`);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
// CLI entry
|
|
38
|
+
if (require.main === module) {
|
|
39
|
+
refreshJiraCache().catch(console.error);
|
|
40
|
+
}
|
|
@@ -56,7 +56,7 @@ mkdir -p "$LOGS_DIR" 2>/dev/null || true
|
|
|
56
56
|
echo "[$(date)] [JIRA] ๐ JIRA sync hook fired" >> "$DEBUG_LOG" 2>/dev/null || true
|
|
57
57
|
|
|
58
58
|
# Detect current increment
|
|
59
|
-
CURRENT_INCREMENT=$(ls -
|
|
59
|
+
CURRENT_INCREMENT=$(ls -td .specweave/increments/*/ 2>/dev/null | xargs -n1 basename | grep -v "_backlog" | grep -v "_archive" | grep -v "_working" | head -1)
|
|
60
60
|
|
|
61
61
|
if [ -z "$CURRENT_INCREMENT" ]; then
|
|
62
62
|
echo "[$(date)] [JIRA] โน๏ธ No active increment, skipping JIRA sync" >> "$DEBUG_LOG" 2>/dev/null || true
|