@atlashub/smartstack-cli 2.1.0 → 2.3.0

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.
Files changed (38) hide show
  1. package/.documentation/business-analyse.html +1503 -1058
  2. package/dist/index.js +92 -55
  3. package/dist/index.js.map +1 -1
  4. package/package.json +10 -7
  5. package/templates/agents/ba-reader.md +250 -0
  6. package/templates/agents/ba-writer.md +210 -0
  7. package/templates/agents/docs-context-reader.md +51 -33
  8. package/templates/skills/_shared.md +2 -0
  9. package/templates/skills/business-analyse/SKILL.md +120 -108
  10. package/templates/skills/business-analyse/_shared.md +136 -146
  11. package/templates/skills/business-analyse/patterns/suggestion-catalog.md +478 -0
  12. package/templates/skills/business-analyse/questionnaire/01-context.md +3 -15
  13. package/templates/skills/business-analyse/questionnaire/03-scope.md +7 -7
  14. package/templates/skills/business-analyse/questionnaire/08-performance.md +7 -21
  15. package/templates/skills/business-analyse/questionnaire/09-constraints.md +0 -13
  16. package/templates/skills/business-analyse/questionnaire/10-documentation.md +0 -13
  17. package/templates/skills/business-analyse/questionnaire/12-migration.md +1 -1
  18. package/templates/skills/business-analyse/questionnaire.md +72 -76
  19. package/templates/skills/business-analyse/react/components.md +317 -154
  20. package/templates/skills/business-analyse/react/i18n-template.md +167 -106
  21. package/templates/skills/business-analyse/react/schema.md +474 -107
  22. package/templates/skills/business-analyse/schemas/feature-schema.json +860 -0
  23. package/templates/skills/business-analyse/steps/step-00-init.md +395 -285
  24. package/templates/skills/business-analyse/steps/step-01-analyse.md +523 -0
  25. package/templates/skills/business-analyse/steps/step-02-specify.md +899 -0
  26. package/templates/skills/business-analyse/steps/step-03-validate.md +1009 -0
  27. package/templates/skills/business-analyse/steps/step-04-handoff.md +1802 -0
  28. package/templates/skills/business-analyse/templates/tpl-handoff.md +49 -64
  29. package/templates/skills/business-analyse/steps/step-01-discover.md +0 -737
  30. package/templates/skills/business-analyse/steps/step-02-analyse.md +0 -299
  31. package/templates/skills/business-analyse/steps/step-03-specify.md +0 -472
  32. package/templates/skills/business-analyse/steps/step-04-validate.md +0 -335
  33. package/templates/skills/business-analyse/steps/step-05-handoff.md +0 -741
  34. package/templates/skills/business-analyse/steps/step-06-doc-html.md +0 -320
  35. package/templates/skills/business-analyse/templates/00-context.md +0 -105
  36. package/templates/skills/business-analyse/templates/tpl-brd.md +0 -97
  37. package/templates/skills/business-analyse/templates/tpl-discovery.md +0 -78
  38. package/templates/skills/business-analyse/tracking/change-template.md +0 -30
@@ -0,0 +1,478 @@
1
+ # Proactive Suggestion Catalog
2
+
3
+ > **Version:** 3.0.0
4
+ > **Usage:** Loaded by step-01-analyse after scope definition to suggest complementary modules/sections.
5
+ > **Protocol:** Match feature type against patterns, present via AskUserQuestion (multiSelect: true).
6
+ > **Purpose:** Guide users toward complete feature design by suggesting companion modules and standard sections.
7
+
8
+ ---
9
+
10
+ ## 1. Module Patterns
11
+
12
+ Suggests companion modules based on primary module type:
13
+
14
+ | Module Type | Keywords | Suggested Modules | Rationale |
15
+ |-------------|----------|-------------------|-----------|
16
+ | **Orders/Commandes** | order, commande, purchase, sales order | Invoices, Shipping, Returns, OrderLines, Customers | Orders are complete business objects; need billing, logistics, and related tables |
17
+ | **Clients/Customers** | client, customer, contact, account, party | Contacts, Addresses, Contracts, Documents, CRM | Customers have multiple contact types, billing addresses, legal relationships |
18
+ | **Products/Articles** | product, article, item, catalog, sku | Categories, Inventory, Pricing, Suppliers, Images | Products need organization, stock tracking, and multiple pricing strategies |
19
+ | **Employees/HR** | employee, staff, personnel, team, workforce | Leaves, TimeTracking, Evaluations, Documents, Departments | Employees have time off needs, performance management, and asset allocation |
20
+ | **Tickets/Support** | ticket, support, incident, issue, case | SLA, Escalation, KnowledgeBase, Categories, Notifications | Support systems need SLA tracking, knowledge base, and routing logic |
21
+ | **Projects** | project, task, milestone, workplan, roadmap | Tasks, Milestones, Resources, Budgets, Timeline | Projects decompose into work items, need resource allocation, and progress tracking |
22
+ | **Invoices/Billing** | invoice, billing, payment, receipt, statement | Payments, CreditNotes, Dunning, Taxes, Subscriptions | Invoicing is incomplete without payment tracking, refunds, and tax handling |
23
+ | **Inventory/Stock** | inventory, stock, warehouse, goods, warehouse | StockMovements, Locations, Transfers, Alerts, AuditLog | Stock control needs movement tracking, multi-location support, and alerts |
24
+ | **Documents** | document, file, attachment, media, archive | Categories, Versions, Sharing, Templates, Workflow | Document management requires metadata, versioning, and access control |
25
+ | **Contracts** | contract, agreement, legal, terms, service level | Parties, Obligations, Milestones, Renewal, Templates | Contracts involve multiple parties, obligations tracking, and lifecycle management |
26
+ | **Permissions/Security** | permission, role, access, authority, rbac | UserRoles, Groups, Policies, Audit, Delegation | Permission systems need fine-grained control, group policies, and audit trails |
27
+ | **Notifications** | notification, alert, email, message, broadcast | Templates, Channels, Scheduling, Preferences | Notification systems need template management, multi-channel support, scheduling |
28
+ | **Reporting** | report, dashboard, analytics, BI, metrics | Dashboards, Exports, Scheduling, AlertRules | Reporting needs visualization, scheduled distribution, and data export |
29
+
30
+ ---
31
+
32
+ ## 2. Section Patterns (cross-module)
33
+
34
+ Suggests standard sections based on detected conditions:
35
+
36
+ | Condition | Suggested Section | Reason | Implementation |
37
+ |-----------|-------------------|--------|-----------------|
38
+ | **Volume > 100 entries mentioned** | BulkImport | Large datasets need import capability | Add section with template format (CSV), validation rules, progress tracking |
39
+ | **Export mentioned or data analysis** | Export (PDF/Excel) | Common need for business data | Add section with export formats, filtering, custom reports |
40
+ | **Multiple user roles (≥3)** | Dashboard | Role-specific views improve UX | Add section with role-based dashboards, KPI cards, drill-downs |
41
+ | **Time-sensitive data** | Notifications | Alert users of important changes | Add section with alert rules, channels (email, in-app), scheduling |
42
+ | **Approval workflow mentioned** | Validation/Approval | Structured approval process | Add section with approval states, reviewer assignment, audit trail |
43
+ | **Historical data important** | AuditLog | Track changes for compliance | Add section with change tracking, versioning, retention policy |
44
+ | **Multi-language content** | Translation Management | Content i18n beyond UI labels | Add section with content i18n, translation workflow, versioning |
45
+ | **Scheduled processing** | Background Jobs | Deferred/periodic processing | Add section with job scheduling, retry logic, error handling |
46
+ | **Data archival needed** | Archive/Cleanup | Long-term data management | Add section with archival policy, retention rules, restore capability |
47
+ | **Report generation** | Reporting Engine | Automated business reporting | Add section with template library, scheduling, distribution |
48
+ | **External integrations** | Integration Layer | System-to-system communication | Add section with API specifications, webhook handling, sync strategy |
49
+ | **Regulatory compliance** | Compliance & Audit | Legal/industry requirements | Add section with audit logging, data retention, retention periods |
50
+
51
+ ---
52
+
53
+ ## 3. Integration Patterns
54
+
55
+ Suggests system integrations based on requirements:
56
+
57
+ | Condition | Suggested Integration | Reason | Technical Approach |
58
+ |-----------|----------------------|--------|-------------------|
59
+ | **Email mentioned** | Workflow: SendEmail | Transactional email automation | Add section with email templates, trigger rules, delivery confirmation |
60
+ | **External system referenced** | API Integration | Structured external data flow | Add section with API specs, auth strategy, sync frequency, error handling |
61
+ | **Real-time updates needed** | SignalR Integration | Live data push to frontend | Add section with connection management, broadcast strategy, client handling |
62
+ | **Scheduled processing** | Hangfire Background Jobs | Deferred/periodic processing | Add section with job scheduling, retry policy, monitoring |
63
+ | **AI/ML classification** | AICompletion Service | Intelligent data processing | Add section with model specs, training data, API integration |
64
+ | **Document generation** | Templating Engine | Dynamic document creation | Add section with template library, variable mapping, output formats |
65
+ | **Payment processing** | Payment Gateway | Financial transaction handling | Add section with provider integration, security, reconciliation |
66
+ | **Geographical features** | Maps/Location Service | Spatial data handling | Add section with provider selection, geocoding, distance calculation |
67
+ | **Data synchronization** | Event Bus/Messaging | Async data consistency | Add section with message types, subscription strategy, retry logic |
68
+ | **File storage** | Cloud Storage Integration | Large file handling | Add section with provider selection, access control, cleanup policy |
69
+
70
+ ---
71
+
72
+ ## 4. Usage Protocol
73
+
74
+ ### 4.1 Trigger Point
75
+
76
+ After step-01-analyse completes scope definition (scope.mustHave + scope.shouldHave populated):
77
+
78
+ ```
79
+ Step-01: Analyse → Define Scope → Load Suggestion Catalog → Present Suggestions
80
+ ```
81
+
82
+ ### 4.2 Suggestion Algorithm
83
+
84
+ ```
85
+ Input: feature.json.scope.* (module name, keywords, must-haves, should-haves)
86
+
87
+ 1. Read scope.mustHave + scope.shouldHave (user-defined features)
88
+ 2. Extract primary keywords (module type) from scope.description
89
+ 3. Match against Module Patterns table → Suggested Modules
90
+ 4. Analyze scope.mustHave + scope.shouldHave for conditions → Suggested Sections
91
+ 5. Detect mentions of integrations → Suggested Integrations
92
+ 6. Filter out already-present modules/sections
93
+ 7. Rank by relevance (keyword match > condition confidence)
94
+ 8. Present top 3-4 suggestions to user
95
+ 9. Store results in feature.json.suggestions[]
96
+ ```
97
+
98
+ ### 4.3 Implementation Code
99
+
100
+ ```typescript
101
+ // Pseudo-code for suggestion logic
102
+
103
+ function suggestComplementaryModules(feature: Feature): Suggestion[] {
104
+ const suggestions: Suggestion[] = [];
105
+
106
+ // 1. Extract primary keywords
107
+ const keywords = extractKeywords(feature.scope.description);
108
+ const primaryType = matchModuleType(keywords);
109
+
110
+ // 2. Load suggestion catalog
111
+ const catalog = loadCatalog();
112
+
113
+ // 3. Suggest companion modules
114
+ if (catalog.modulePatterns[primaryType]) {
115
+ const suggestedModules = catalog.modulePatterns[primaryType].suggestedModules;
116
+
117
+ suggestedModules.forEach(module => {
118
+ if (!featureIncludesModule(feature, module)) {
119
+ suggestions.push({
120
+ type: "module",
121
+ name: module,
122
+ rationale: catalog.modulePatterns[primaryType].rationale,
123
+ priority: "high",
124
+ acceptance: `If accepted, adds ${module} as companion feature`
125
+ });
126
+ }
127
+ });
128
+ }
129
+
130
+ // 4. Suggest sections based on conditions
131
+ catalog.sectionPatterns.forEach(pattern => {
132
+ if (evaluateCondition(feature, pattern.condition)) {
133
+ if (!featureIncludesSection(feature, pattern.suggestedSection)) {
134
+ suggestions.push({
135
+ type: "section",
136
+ name: pattern.suggestedSection,
137
+ rationale: pattern.reason,
138
+ priority: "medium",
139
+ acceptance: `If accepted, adds ${pattern.suggestedSection} section to spec`
140
+ });
141
+ }
142
+ }
143
+ });
144
+
145
+ // 5. Suggest integrations based on mentions
146
+ catalog.integrationPatterns.forEach(pattern => {
147
+ if (feature.scope.description.includes(pattern.keyword)) {
148
+ if (!featureIncludesIntegration(feature, pattern.suggestedIntegration)) {
149
+ suggestions.push({
150
+ type: "integration",
151
+ name: pattern.suggestedIntegration,
152
+ rationale: pattern.reason,
153
+ priority: "medium",
154
+ acceptance: `If accepted, adds ${pattern.suggestedIntegration} to architecture`
155
+ });
156
+ }
157
+ }
158
+ });
159
+
160
+ // 6. Rank and filter top suggestions
161
+ const ranked = suggestions
162
+ .sort((a, b) => priorityScore(a) - priorityScore(b))
163
+ .slice(0, 4);
164
+
165
+ return ranked;
166
+ }
167
+
168
+ // Evaluate condition: Volume > 100
169
+ function evaluateCondition(feature: Feature, condition: string): boolean {
170
+ if (condition === "Volume > 100 entries") {
171
+ const mentions = feature.scope.description.match(/(bulk|import|high.*volume|large.*dataset)/gi);
172
+ return mentions && mentions.length > 0;
173
+ }
174
+ // ... other conditions
175
+ }
176
+ ```
177
+
178
+ ### 4.4 User Presentation
179
+
180
+ Present suggestions to user via AskUserQuestion (multiSelect: true):
181
+
182
+ ```
183
+ ✓ Analysis complete. I've identified some complementary modules & sections.
184
+
185
+ Would you like to add any of these to your feature?
186
+
187
+ Companion Modules:
188
+ □ Customers (ships with Orders) → Need to manage customer relationships
189
+ □ Shipping (logistics) → Need to track delivery
190
+ □ Invoices (billing) → Need financial records
191
+ □ Returns (warranty) → Need reverse logistics
192
+
193
+ Standard Sections:
194
+ □ BulkImport → You mentioned "1000+ orders per month"
195
+ □ Notifications → For order status alerts
196
+ □ Dashboard → For manager oversight
197
+ □ Audit Log → For order history tracking
198
+
199
+ Select all that apply: [ ] [ ] [ ] [ ]
200
+
201
+ [Add Selected] [Skip] [Customize]
202
+ ```
203
+
204
+ ### 4.5 User Selection Processing
205
+
206
+ When user selects suggestions:
207
+
208
+ 1. **Add Selected Modules:** Update scope.mustHave with new modules
209
+ 2. **Add Selected Sections:** Update specification.sections (in step-02)
210
+ 3. **Add Selected Integrations:** Update specification.integrations
211
+ 4. **Store Decisions:** Log in feature.json.suggestions[]
212
+ 5. **Continue:** Proceed to step-02-specify with expanded scope
213
+
214
+ ```json
215
+ {
216
+ "suggestions": [
217
+ {
218
+ "id": "SUGG-001",
219
+ "type": "module",
220
+ "name": "Customers",
221
+ "source": "Module Pattern: Orders → Customers",
222
+ "accepted": true,
223
+ "acceptedAt": "2025-02-01T09:30:00Z",
224
+ "acceptedBy": "user_email@company.com"
225
+ },
226
+ {
227
+ "id": "SUGG-002",
228
+ "type": "section",
229
+ "name": "BulkImport",
230
+ "source": "Section Pattern: Volume > 100",
231
+ "accepted": true,
232
+ "acceptedAt": "2025-02-01T09:30:00Z"
233
+ },
234
+ {
235
+ "id": "SUGG-003",
236
+ "type": "integration",
237
+ "name": "Email Notifications",
238
+ "source": "Integration Pattern: Email mentioned",
239
+ "accepted": false,
240
+ "rejectionReason": "Out of scope for MVP"
241
+ }
242
+ ]
243
+ }
244
+ ```
245
+
246
+ ---
247
+
248
+ ## 5. Customization & Feedback Loop
249
+
250
+ ### 5.1 Customize Suggestions
251
+
252
+ Allow user to modify or customize suggestions:
253
+
254
+ ```
255
+ Option: [Customize]
256
+
257
+ Edit suggestion "Customers":
258
+ Name: Customers
259
+ Type: Module
260
+ Rationale: [user can edit]
261
+ Include in scope: [Yes/No]
262
+
263
+ [Apply] [Cancel]
264
+ ```
265
+
266
+ ### 5.2 Feedback Loop
267
+
268
+ Track suggestion effectiveness:
269
+
270
+ ```json
271
+ {
272
+ "suggestionFeedback": {
273
+ "catalogVersion": "1.0.0",
274
+ "suggestionSessionId": "sess-12345",
275
+ "presentedCount": 4,
276
+ "acceptedCount": 2,
277
+ "acceptanceRate": 0.5,
278
+ "userFeedback": "Perfect - saved us from missing Customer module!"
279
+ }
280
+ }
281
+ ```
282
+
283
+ ---
284
+
285
+ ## 6. Catalog Maintenance
286
+
287
+ ### 6.1 Update Triggers
288
+
289
+ Update suggestion catalog when:
290
+
291
+ 1. **New patterns discovered** - Team identifies common module combinations
292
+ 2. **Industry changes** - New regulations, technologies, best practices
293
+ 3. **User feedback** - Customers request new suggestions
294
+ 4. **Version upgrades** - New SmartStack capabilities
295
+
296
+ ### 6.2 Catalog Format
297
+
298
+ Suggestion catalog stored as structured data:
299
+
300
+ ```yaml
301
+ # templates/patterns/suggestion-catalog.yaml
302
+
303
+ version: "1.0.0"
304
+ updated: "2025-02-01"
305
+
306
+ modulePatterns:
307
+ Orders/Commandes:
308
+ keywords: ["order", "commande", "purchase", "sales order"]
309
+ suggestedModules: ["Invoices", "Shipping", "Returns", "OrderLines", "Customers"]
310
+ rationale: "Orders are complete business objects..."
311
+
312
+ Customers:
313
+ keywords: ["client", "customer", "contact", "account"]
314
+ suggestedModules: ["Contacts", "Addresses", "Contracts", "Documents"]
315
+ rationale: "Customers have multiple contact types..."
316
+
317
+ sectionPatterns:
318
+ - condition: "Volume > 100 entries mentioned"
319
+ suggestedSection: "BulkImport"
320
+ reason: "Large datasets need import capability"
321
+ implementation: "Template format (CSV), validation rules, progress tracking"
322
+
323
+ - condition: "Export mentioned or data analysis"
324
+ suggestedSection: "Export"
325
+ reason: "Common need for business data"
326
+ implementation: "Export formats (PDF, Excel), filtering, custom reports"
327
+
328
+ integrationPatterns:
329
+ - condition: "Email mentioned"
330
+ suggestedIntegration: "Workflow: SendEmail"
331
+ reason: "Transactional email automation"
332
+ approach: "Email templates, trigger rules, delivery confirmation"
333
+
334
+ - condition: "External system referenced"
335
+ suggestedIntegration: "API Integration"
336
+ reason: "Structured external data flow"
337
+ approach: "API specs, auth strategy, sync frequency, error handling"
338
+ ```
339
+
340
+ ---
341
+
342
+ ## 7. Limitations & Edge Cases
343
+
344
+ ### 7.1 When Suggestions Don't Apply
345
+
346
+ Skip suggestions if:
347
+
348
+ - **Micro mode:** Skip all suggestions (keep MVP minimal)
349
+ - **Refactoring mode:** Skip module suggestions (only affect feature sections)
350
+ - **User explicitly declines:** Respect user's scope boundary
351
+ - **Budget/timeline constraints:** User indicated fixed scope
352
+
353
+ ```
354
+ Suggested modules: Customers, Shipping, Invoices, Returns
355
+
356
+ But you indicated:
357
+ - Timeline: 2 weeks (MVP only)
358
+ - Budget: 1 developer
359
+
360
+ Suggestion: Start with Orders + Customers (minimal), defer others.
361
+
362
+ [OK] [Adjust scope] [Ignore suggestions]
363
+ ```
364
+
365
+ ### 7.2 Conflicting Suggestions
366
+
367
+ Handle cases where suggestions conflict:
368
+
369
+ ```
370
+ Suggestion: BulkImport (volume > 100)
371
+ Suggestion: Manual creation only (for quality control)
372
+
373
+ Conflict: Bulk operations vs. controlled creation.
374
+
375
+ Recommendation: Add BulkImport with validation workflow.
376
+
377
+ [Accept both] [Choose one] [Skip both]
378
+ ```
379
+
380
+ ### 7.3 Chained Dependencies
381
+
382
+ Track cascading dependencies:
383
+
384
+ ```
385
+ User accepted: Customers
386
+ Auto-suggest: Addresses (depends on Customers)
387
+ Auto-suggest: Contracts (depends on Customers + Addresses)
388
+
389
+ Cascade depth limit: 2 levels (prevent scope explosion)
390
+
391
+ Auto-added:
392
+ ✓ Customers (user selected)
393
+ ✓ Addresses (dependency of Customers)
394
+ ⚠ Contracts (optional, user confirm?)
395
+
396
+ [Accept all] [Customize] [Clear cascade]
397
+ ```
398
+
399
+ ---
400
+
401
+ ## 8. Examples
402
+
403
+ ### 8.1 Example: Order Management
404
+
405
+ **Input:**
406
+ - Module: "Orders"
407
+ - Description: "Manage customer purchase orders, 5000+ orders/month"
408
+ - Scope: [Scope definition with "bulk", "export", "approval"]
409
+
410
+ **Suggestions Generated:**
411
+ 1. ✓ **Module: Customers** - Orders need customer relationship
412
+ 2. ✓ **Module: Shipping** - Orders need fulfillment tracking
413
+ 3. ✓ **Section: BulkImport** - 5000+ orders/month detected
414
+ 4. ✓ **Section: Export** - Explicit mention in scope
415
+ 5. ✓ **Section: Dashboard** - 3+ roles (User, Manager, Admin)
416
+ 6. ✓ **Section: Audit Log** - Order modifications tracked
417
+ 7. ✓ **Integration: Email Notifications** - Order status alerts
418
+ 8. ✗ **Module: Invoices** - Deferred (nice-to-have)
419
+
420
+ **Presented to User (top 4):**
421
+ 1. Customers - High relevance (module pattern match)
422
+ 2. BulkImport - High relevance (volume > 100)
423
+ 3. Dashboard - Medium relevance (multi-role)
424
+ 4. Email Notifications - Medium relevance (status updates mentioned)
425
+
426
+ ---
427
+
428
+ ### 8.2 Example: Customer Management
429
+
430
+ **Input:**
431
+ - Module: "Customers"
432
+ - Description: "Manage customer master data with contacts and addresses"
433
+
434
+ **Suggestions Generated:**
435
+ 1. ✓ **Module: Contacts** - Customer subcomponent
436
+ 2. ✓ **Module: Addresses** - Multiple addresses per customer
437
+ 3. ✓ **Module: Contracts** - Customer agreements
438
+ 4. ✓ **Section: Merge** - Duplicate customer handling
439
+ 5. ✓ **Section: Import** - Master data cleanup
440
+ 6. ✓ **Integration: API Integration** - External CRM sync
441
+
442
+ **Presented (top 3):**
443
+ 1. Contacts - High relevance (decomposition)
444
+ 2. Addresses - High relevance (decomposition)
445
+ 3. Merge - Medium relevance (data quality)
446
+
447
+ ---
448
+
449
+ ### 8.3 Example: HR/Employees
450
+
451
+ **Input:**
452
+ - Module: "Employees"
453
+ - Description: "Manage employee records and leave requests"
454
+
455
+ **Suggestions Generated:**
456
+ 1. ✓ **Module: Leaves** - Leave management system
457
+ 2. ✓ **Module: TimeTracking** - Time & attendance
458
+ 3. ✓ **Module: Evaluations** - Performance management
459
+ 4. ✓ **Section: Calendar** - Leave calendar view
460
+ 5. ✓ **Section: Reports** - HR analytics and reports
461
+ 6. ✓ **Integration: Background Jobs** - Payroll processing
462
+
463
+ **Presented (top 4):**
464
+ 1. Leaves - High relevance (mentioned in description)
465
+ 2. TimeTracking - High relevance (related feature)
466
+ 3. Calendar - Medium relevance (leave visualization)
467
+ 4. Reports - Medium relevance (HR analytics)
468
+
469
+ ---
470
+
471
+ ## 9. Versioning & Updates
472
+
473
+ **Catalog Version:** 1.0.0
474
+ **Last Updated:** 2025-02-01
475
+ **Next Review:** 2025-05-01
476
+ **Maintained By:** SmartStack Team
477
+
478
+ Changes will be tracked in `templates/patterns/suggestion-catalog-changelog.md`.
@@ -12,16 +12,7 @@
12
12
  | Q1.1 | What business problem should this module/feature solve? | Free text |
13
13
  | Q1.2 | What is the current situation (AS-IS)? | Description |
14
14
  | Q1.3 | What is the target situation (TO-BE)? | Description |
15
- | Q1.4 | What are the measurable success KPIs? | List + values |
16
-
17
- ## 1.2 Business Value
18
-
19
- | # | Question | Answer Type |
20
- |---|----------|-------------|
21
- | Q1.5 | What ROI do you expect? (time, money, efficiency) | Quantitative |
22
- | Q1.6 | What savings or gains will this module bring? | Estimation |
23
- | Q1.7 | What triggered this need? (urgency, regulation, roadmap) | Trigger type |
24
- | Q1.8 | What is the expected delivery timeline? | Timeline |
15
+ | Q1.4 | What triggered this need? (urgency, regulation, roadmap) | Trigger type |
25
16
 
26
17
  ---
27
18
 
@@ -34,9 +25,7 @@
34
25
  | Q1.1 (problem) | User describes a solution, not a problem | "Oublions la solution un instant — quel problème rencontrez-vous concrètement aujourd'hui ?" |
35
26
  | Q1.2 (AS-IS) | No concrete workflow described | "Décrivez-moi une journée type : vous arrivez, vous ouvrez l'outil — que faites-vous en premier ?" |
36
27
  | Q1.3 (TO-BE) | Vague ("ça ira mieux") | "Concrètement, quel geste ou tâche sera différent ? Combien de clics/minutes en moins ?" |
37
- | Q1.4 (KPIs) | No measurable metric | "Comment saurez-vous dans 3 mois que cette fonctionnalité a réussi ? Quel chiffre regarderez-vous ?" |
38
- | Q1.5 (ROI) | "I don't know" | "Combien de temps passez-vous sur ce processus aujourd'hui par semaine ? À combien de personnes ?" |
39
- | Q1.7 (trigger) | Vague ("c'est utile") | "Quel événement ou quelle situation a déclenché ce besoin maintenant ? Obligation, inefficacité, opportunité ?" |
28
+ | Q1.4 (trigger) | Vague ("c'est utile") | "Quel événement ou quelle situation a déclenché ce besoin maintenant ? Obligation, inefficacité, opportunité ?" |
40
29
 
41
30
  ### Anti-patterns to Detect
42
31
 
@@ -44,5 +33,4 @@
44
33
  |--------|-------------|--------|
45
34
  | "Il faudrait un bouton/écran/champ..." | **Solution disguised as need** | Apply Solution → Problem Reframing |
46
35
  | "C'est évident", "tout le monde sait" | **Implicit assumption** | "Pouvez-vous le formuler explicitement pour que je puisse le documenter ?" |
47
- | KPIs are feelings ("ça sera mieux") | **Non-measurable success** | "Quel chiffre regarderez-vous pour savoir si c'est réussi ?" |
48
- | Q1.7 = "Opportunité" sans urgence | **Déclencheur à clarifier** | "Quel gain concret attendez-vous ? Comment mesurerez-vous l'amélioration ?" |
36
+ | Q1.4 = "Opportunité" sans urgence | **Déclencheur à clarifier** | "Quel gain concret attendez-vous ? Comment mesurerez-vous l'amélioration ?" |
@@ -12,7 +12,7 @@
12
12
  | Q3.1 | List ESSENTIAL features (Must-Have) | List |
13
13
  | Q3.2 | List DESIRED features (Should-Have) | List |
14
14
  | Q3.3 | List OPTIONAL features (Could-Have) | List |
15
- | Q3.4 | Any known constraints limiting v1 scope? | List of constraints |
15
+ | Q3.4 | Any known constraints limiting scope? | List of constraints |
16
16
 
17
17
  ## 3.2 Business Process
18
18
 
@@ -29,10 +29,10 @@
29
29
 
30
30
  | Priority | Criterion |
31
31
  |----------|-----------|
32
- | Must | Without this feature, the module has no value |
33
- | Should | Brings significant value but can wait for v2 |
34
- | Could | Nice-to-have, can be implemented if time available |
35
- | Won't | Deferredwill be considered for future versions |
32
+ | Must | Without this feature, the module has no value — implement first |
33
+ | Should | Brings significant value implement right after Must items |
34
+ | Could | Nice-to-have implement if no technical blocker |
35
+ | Won't | Out of scope for this feature belongs to a different module or feature |
36
36
 
37
37
  ## Elicitation Guide
38
38
 
@@ -40,9 +40,9 @@
40
40
 
41
41
  | Question | If answer is vague/insufficient | Probe |
42
42
  |----------|-------------------------------|-------|
43
- | Q3.1 (Must-Have) | > 10 items listed | "Si vous ne pouviez en garder que 3 pour la v1, lesquels ? Les autres sont peut-être Should-Have." |
43
+ | Q3.1 (Must-Have) | > 10 items listed | "Si vous ne pouviez en garder que 3 à implémenter en premier, lesquels ? Les autres sont peut-être Should-Have." |
44
44
  | Q3.1 (Must-Have) | Mélange CRUD + complexe | "Le CRUD de base (liste, création, modification, suppression) est-il un Must, ou certaines actions sont Could ?" |
45
- | Q3.2 (Should-Have) | Vide | "Y a-t-il des fonctionnalités utiles mais qui peuvent attendre une v2 ? Export, filtres avancés, notifications ?" |
45
+ | Q3.2 (Should-Have) | Vide | "Y a-t-il des fonctionnalités utiles mais moins critiques ? Export, filtres avancés, notifications ?" |
46
46
  | Q3.4 (limites) | Vide | "Y a-t-il des contraintes connues qui pourraient limiter le périmètre ? (budget, délai, dépendance)" |
47
47
  | Q3.5 (main flow) | < 3 étapes | "Détaillez : l'utilisateur arrive sur l'écran → que voit-il ? → que clique-t-il ? → que se passe-t-il ?" |
48
48
  | Q3.7 (alt flows) | "Il n'y en a pas" | "Que se passe-t-il si l'utilisateur annule ? S'il n'a pas la permission ? Si les données sont invalides ?" |
@@ -5,23 +5,14 @@
5
5
 
6
6
  ---
7
7
 
8
- ## 8.1 Performance
8
+ ## 8.1 Performance & Quality
9
9
 
10
10
  | # | Question | Answer Type |
11
11
  |---|----------|-------------|
12
12
  | Q8.1 | Acceptable response time? | Milliseconds |
13
- | Q8.2 | Number of concurrent users? | Estimation |
14
- | Q8.3 | Expected load peaks? | When + volume |
15
- | Q8.4 | Required availability? (SLA) | Percentage |
16
-
17
- ## 8.2 Quality
18
-
19
- | # | Question | Answer Type |
20
- |---|----------|-------------|
21
- | Q8.5 | Acceptable error rate? | Percentage |
22
- | Q8.6 | Specific tests required? | Types |
23
- | Q8.7 | Available test environments? | List |
24
- | Q8.8 | Overall acceptance criteria? | List |
13
+ | Q8.2 | Expected load peaks? | When + volume |
14
+ | Q8.3 | Specific tests required? | Types |
15
+ | Q8.4 | Overall acceptance criteria? | List |
25
16
 
26
17
  ---
27
18
 
@@ -31,8 +22,6 @@
31
22
  |--------|---------------------|
32
23
  | API response time | < 200ms (P95) |
33
24
  | Page load | < 2s |
34
- | Concurrent users | Per license |
35
- | Uptime | 99.5% |
36
25
 
37
26
  ## Elicitation Guide
38
27
 
@@ -41,16 +30,13 @@
41
30
  | Question | If answer is vague/insufficient | Probe |
42
31
  |----------|-------------------------------|-------|
43
32
  | Q8.1 (response time) | "Rapide" | "< 1 seconde ? < 200ms ? Différence acceptable entre liste et détail ?" |
44
- | Q8.2 (concurrent users) | "Pas beaucoup" | "Combien d'utilisateurs se connectent en même temps le matin ? Aux heures de pointe ?" |
45
- | Q8.3 (peaks) | "Non" | "Pas de clôture mensuelle ? Pas de période de saisie massive ? Pas d'import batch ?" |
46
- | Q8.4 (SLA) | "100% dispo" | "100% n'existe pas. 99.9% = ~8h d'indisponibilité/an. 99.5% est le standard de la plateforme." |
47
- | Q8.6 (tests) | "Tests normaux" | "Tests unitaires ? Intégration ? E2E ? Tests de charge ? Tests de sécurité (OWASP) ?" |
48
- | Q8.8 (acceptance) | Vide | "Quels critères pour que le PO valide la livraison ? Performance, fonctionnel, UX ?" |
33
+ | Q8.2 (peaks) | "Non" | "Pas de clôture mensuelle ? Pas de période de saisie massive ? Pas d'import batch ?" |
34
+ | Q8.3 (tests) | "Tests normaux" | "Tests unitaires ? Intégration ? E2E ? Tests de charge ? Tests de sécurité (OWASP) ?" |
35
+ | Q8.4 (acceptance) | Vide | "Quels critères pour que le PO valide la livraison ? Performance, fonctionnel, UX ?" |
49
36
 
50
37
  ### Anti-patterns to Detect
51
38
 
52
39
  | Signal | Anti-pattern | Action |
53
40
  |--------|-------------|--------|
54
- | SLA irréaliste (100%, < 10ms) | **Exigences impossibles** | Rappeler les seuils de la plateforme et le coût de chaque 9 supplémentaire |
55
41
  | Aucune mention de volume de données | **Scalabilité non planifiée** | "Avec 1M de lignes dans 2 ans, la recherche sera-t-elle toujours performante ?" |
56
42
  | Pas de tests mentionnés | **Qualité non vérifiable** | Au minimum : tests unitaires services + tests intégration API |
@@ -14,15 +14,6 @@
14
14
  | Q9.3 | Technology dependencies? | List |
15
15
  | Q9.4 | Compatibility constraints? | List |
16
16
 
17
- ## 9.2 Organizational
18
-
19
- | # | Question | Answer Type |
20
- |---|----------|-------------|
21
- | Q9.5 | Available budget? | Amount |
22
- | Q9.6 | Fixed or flexible deadline? | Date + flexibility |
23
- | Q9.7 | Available resources? | Team |
24
- | Q9.8 | Approval process? | Steps |
25
-
26
17
  ---
27
18
 
28
19
  ## Platform Constraints
@@ -45,14 +36,10 @@
45
36
  |----------|-------------------------------|-------|
46
37
  | Q9.1 (tech stack) | Propose une technologie hors plateforme | "La plateforme impose .NET 8 + React 19. Cette contrainte est-elle compatible avec votre besoin ?" |
47
38
  | Q9.2 (infrastructure) | "Cloud" sans précision | "Azure, AWS, on-premise ? Contraintes de localisation des données (pays) ?" |
48
- | Q9.5 (budget) | "Pas de budget défini" | "Y a-t-il un nombre de jours maximum ? Une enveloppe à ne pas dépasser ?" |
49
- | Q9.6 (deadline) | "Le plus vite possible" | "Y a-t-il une date métier impérative ? (réglementaire, événement, fin de contrat)" |
50
- | Q9.8 (approval) | "Le chef valide" | "Validation technique (code review) + validation fonctionnelle (PO) + validation sécurité (OWASP) ?" |
51
39
 
52
40
  ### Anti-patterns to Detect
53
41
 
54
42
  | Signal | Anti-pattern | Action |
55
43
  |--------|-------------|--------|
56
44
  | Technologie imposée hors stack | **Incompatibilité plateforme** | Clarifier : est-ce une intégration (OK) ou un remplacement de composant (risqué) ? |
57
- | Pas de deadline | **Priorité floue** | "Sans deadline, comment prioriser par rapport aux autres demandes ?" |
58
45
  | "Pas de contrainte" | **Contraintes implicites oubliées** | Multi-tenant, RGPD, audit, i18n sont des contraintes de la plateforme obligatoires |
@@ -14,15 +14,6 @@
14
14
  | Q10.3 | User training planned? | Plan |
15
15
  | Q10.4 | Knowledge base to create? | Scope |
16
16
 
17
- ## 10.2 Support
18
-
19
- | # | Question | Answer Type |
20
- |---|----------|-------------|
21
- | Q10.5 | Expected support level? | SLA |
22
- | Q10.6 | Who provides level 1 support? | Team |
23
- | Q10.7 | Escalation to level 2? | Process |
24
- | Q10.8 | Monitoring and alerts required? | List |
25
-
26
17
  ---
27
18
 
28
19
  ## Documentation
@@ -44,13 +35,9 @@
44
35
  | Q10.1 (user doc) | "Oui" sans détail | "Guide pas-à-pas ? FAQ ? Vidéo tutoriel ? Tooltips in-app ? Quel public cible ?" |
45
36
  | Q10.2 (tech doc) | "Non" | "Pas de documentation API ? Pas de schéma de données pour les développeurs futurs ?" |
46
37
  | Q10.3 (training) | "Pas prévu" | "Comment les utilisateurs apprendront-ils ? Formation, doc, auto-apprentissage ?" |
47
- | Q10.5 (support SLA) | "Support normal" | "Temps de réponse N1 attendu ? Heures ouvrées ou 24/7 ? Canal (email, ticket, chat) ?" |
48
- | Q10.8 (monitoring) | "Non" | "Pas d'alerte si le service est down ? Pas de suivi des erreurs (Application Insights) ?" |
49
38
 
50
39
  ### Anti-patterns to Detect
51
40
 
52
41
  | Signal | Anti-pattern | Action |
53
42
  |--------|-------------|--------|
54
43
  | "La doc se fera après" | **Documentation en dette** | Le FRD EST la doc. `/business-analyse:6-doc-html` la génère automatiquement. |
55
- | Aucun monitoring prévu | **Angle mort opérationnel** | Au minimum : health check endpoint + Application Insights |
56
- | Support = "le développeur" | **Pas de séparation N1/N2** | N1 = support fonctionnel (utilisateur), N2 = support technique (dev) |