@fluentcommerce/ai-skills 0.1.0 → 0.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.

Potentially problematic release.


This version of @fluentcommerce/ai-skills might be problematic. Click here for more details.

Files changed (168) hide show
  1. package/README.md +866 -622
  2. package/bin/cli.mjs +2112 -1973
  3. package/content/cli/agents/fluent-cli/agent.json +149 -149
  4. package/content/cli/agents/fluent-cli.md +132 -132
  5. package/content/cli/skills/fluent-bootstrap/SKILL.md +214 -181
  6. package/content/cli/skills/fluent-cli-index/SKILL.md +1 -1
  7. package/content/cli/skills/fluent-cli-mcp-cicd/SKILL.md +117 -1
  8. package/content/cli/skills/fluent-cli-reference/SKILL.md +1040 -1031
  9. package/content/cli/skills/fluent-cli-retailer/SKILL.md +27 -2
  10. package/content/cli/skills/fluent-cli-settings/SKILL.md +21 -1
  11. package/content/cli/skills/fluent-connect/SKILL.md +937 -886
  12. package/content/cli/skills/fluent-module-deploy/SKILL.md +63 -5
  13. package/content/cli/skills/fluent-profile/SKILL.md +73 -0
  14. package/content/cli/skills/fluent-workflow/SKILL.md +360 -310
  15. package/content/dev/agents/fluent-backend-dev/AGENT.md +58 -0
  16. package/content/dev/agents/fluent-backend-dev/agent.json +69 -0
  17. package/content/dev/agents/fluent-backend-dev.md +287 -0
  18. package/content/dev/agents/fluent-dev/AGENT.md +98 -0
  19. package/content/dev/agents/fluent-dev/agent.json +14 -2
  20. package/content/dev/agents/fluent-dev.md +194 -525
  21. package/content/dev/agents/fluent-frontend-dev/AGENT.md +63 -0
  22. package/content/dev/agents/fluent-frontend-dev/agent.json +52 -0
  23. package/content/dev/agents/fluent-frontend-dev.md +323 -0
  24. package/content/dev/skills/fluent-archive/SKILL.md +234 -0
  25. package/content/dev/skills/fluent-build/SKILL.md +312 -192
  26. package/content/dev/skills/fluent-connection-analysis/SKILL.md +422 -386
  27. package/content/dev/skills/fluent-custom-code/SKILL.md +15 -9
  28. package/content/dev/skills/fluent-data-module-scaffold/SKILL.md +19 -2
  29. package/content/dev/skills/fluent-e2e-test/SKILL.md +501 -394
  30. package/content/dev/skills/fluent-event-api/SKILL.md +962 -945
  31. package/content/dev/skills/fluent-feature-explain/SKILL.md +680 -603
  32. package/content/dev/skills/fluent-feature-plan/PLAN_TEMPLATE.md +27 -2
  33. package/content/dev/skills/fluent-feature-plan/SKILL.md +478 -227
  34. package/content/dev/skills/fluent-feature-status/SKILL.md +335 -0
  35. package/content/dev/skills/fluent-feedback/SKILL.md +221 -0
  36. package/content/dev/skills/fluent-implementation-map/SKILL.md +644 -0
  37. package/content/dev/skills/fluent-job-batch/SKILL.md +10 -0
  38. package/content/dev/skills/fluent-module-scaffold/SKILL.md +64 -2
  39. package/content/dev/skills/fluent-module-validate/SKILL.md +778 -775
  40. package/content/dev/skills/fluent-mystique-analyze/SKILL.md +817 -0
  41. package/content/dev/skills/fluent-mystique-builder/COMPONENT_TEMPLATE.md +81 -0
  42. package/content/dev/skills/fluent-mystique-builder/README.md +63 -0
  43. package/content/dev/skills/fluent-mystique-builder/SKILL.md +1294 -0
  44. package/content/dev/skills/fluent-mystique-builder/components/INDEX.md +92 -0
  45. package/content/dev/skills/fluent-mystique-builder/components/fc.accordion.md +48 -0
  46. package/content/dev/skills/fluent-mystique-builder/components/fc.action.field.fulfilmentpack.md +20 -0
  47. package/content/dev/skills/fluent-mystique-builder/components/fc.action.field.multiparcel.md +21 -0
  48. package/content/dev/skills/fluent-mystique-builder/components/fc.action.field.returnitems.md +21 -0
  49. package/content/dev/skills/fluent-mystique-builder/components/fc.action.field.wavepick.md +21 -0
  50. package/content/dev/skills/fluent-mystique-builder/components/fc.action.inline.md +24 -0
  51. package/content/dev/skills/fluent-mystique-builder/components/fc.activity.entity.md +25 -0
  52. package/content/dev/skills/fluent-mystique-builder/components/fc.analytics.viz.md +20 -0
  53. package/content/dev/skills/fluent-mystique-builder/components/fc.attribute.column.md +111 -0
  54. package/content/dev/skills/fluent-mystique-builder/components/fc.attribute.json.md +20 -0
  55. package/content/dev/skills/fluent-mystique-builder/components/fc.attribute.jsoneditor.md +54 -0
  56. package/content/dev/skills/fluent-mystique-builder/components/fc.attribute.locationId.md +51 -0
  57. package/content/dev/skills/fluent-mystique-builder/components/fc.attribute.retailerId.md +52 -0
  58. package/content/dev/skills/fluent-mystique-builder/components/fc.button.bar.md +57 -0
  59. package/content/dev/skills/fluent-mystique-builder/components/fc.button.print.download.md +53 -0
  60. package/content/dev/skills/fluent-mystique-builder/components/fc.button.print.inline.compatibility.md +60 -0
  61. package/content/dev/skills/fluent-mystique-builder/components/fc.button.print.inline.md +53 -0
  62. package/content/dev/skills/fluent-mystique-builder/components/fc.button.print.md +24 -0
  63. package/content/dev/skills/fluent-mystique-builder/components/fc.button.print.pick.md +61 -0
  64. package/content/dev/skills/fluent-mystique-builder/components/fc.buttons.add.reject.md +20 -0
  65. package/content/dev/skills/fluent-mystique-builder/components/fc.card.attribute.md +73 -0
  66. package/content/dev/skills/fluent-mystique-builder/components/fc.card.attributes.grid.md +40 -0
  67. package/content/dev/skills/fluent-mystique-builder/components/fc.card.image.md +37 -0
  68. package/content/dev/skills/fluent-mystique-builder/components/fc.card.map.point.md +24 -0
  69. package/content/dev/skills/fluent-mystique-builder/components/fc.card.multi.md +79 -0
  70. package/content/dev/skills/fluent-mystique-builder/components/fc.card.product.md +27 -0
  71. package/content/dev/skills/fluent-mystique-builder/components/fc.chart.area.md +34 -0
  72. package/content/dev/skills/fluent-mystique-builder/components/fc.chart.area.wrapper.feed.md +98 -0
  73. package/content/dev/skills/fluent-mystique-builder/components/fc.chart.bar.md +52 -0
  74. package/content/dev/skills/fluent-mystique-builder/components/fc.chart.bar.wrapper.source.md +104 -0
  75. package/content/dev/skills/fluent-mystique-builder/components/fc.chart.gauge.md +28 -0
  76. package/content/dev/skills/fluent-mystique-builder/components/fc.chart.gauge.wrapper.threshold.md +118 -0
  77. package/content/dev/skills/fluent-mystique-builder/components/fc.chart.line.md +32 -0
  78. package/content/dev/skills/fluent-mystique-builder/components/fc.conditional.md +62 -0
  79. package/content/dev/skills/fluent-mystique-builder/components/fc.dashboard.threshold.md +65 -0
  80. package/content/dev/skills/fluent-mystique-builder/components/fc.daterange.wrapper.forwarder.md +56 -0
  81. package/content/dev/skills/fluent-mystique-builder/components/fc.drawer.button.md +21 -0
  82. package/content/dev/skills/fluent-mystique-builder/components/fc.event.detail.md +20 -0
  83. package/content/dev/skills/fluent-mystique-builder/components/fc.events.search.md +21 -0
  84. package/content/dev/skills/fluent-mystique-builder/components/fc.field.daterange.md +83 -0
  85. package/content/dev/skills/fluent-mystique-builder/components/fc.field.filterComplex.md +106 -0
  86. package/content/dev/skills/fluent-mystique-builder/components/fc.field.intrange.md +82 -0
  87. package/content/dev/skills/fluent-mystique-builder/components/fc.field.multistring.md +50 -0
  88. package/content/dev/skills/fluent-mystique-builder/components/fc.filterPanel.md +53 -0
  89. package/content/dev/skills/fluent-mystique-builder/components/fc.json.editor.md +22 -0
  90. package/content/dev/skills/fluent-mystique-builder/components/fc.json.viewer.md +21 -0
  91. package/content/dev/skills/fluent-mystique-builder/components/fc.list.customAction.md +79 -0
  92. package/content/dev/skills/fluent-mystique-builder/components/fc.list.md +116 -0
  93. package/content/dev/skills/fluent-mystique-builder/components/fc.list.wrapper.bppmetrics.md +69 -0
  94. package/content/dev/skills/fluent-mystique-builder/components/fc.list.wrapper.feed.md +65 -0
  95. package/content/dev/skills/fluent-mystique-builder/components/fc.list.wrapper.source.md +64 -0
  96. package/content/dev/skills/fluent-mystique-builder/components/fc.modal.button.addItem.md +60 -0
  97. package/content/dev/skills/fluent-mystique-builder/components/fc.modal.button.md +21 -0
  98. package/content/dev/skills/fluent-mystique-builder/components/fc.mutation.inline.md +88 -0
  99. package/content/dev/skills/fluent-mystique-builder/components/fc.mystique.collapsible.attributes.md +83 -0
  100. package/content/dev/skills/fluent-mystique-builder/components/fc.mystique.collapsible.text.md +33 -0
  101. package/content/dev/skills/fluent-mystique-builder/components/fc.mystique.link.md +30 -0
  102. package/content/dev/skills/fluent-mystique-builder/components/fc.order.itemDetails.md +20 -0
  103. package/content/dev/skills/fluent-mystique-builder/components/fc.order.shipmentDetails.md +20 -0
  104. package/content/dev/skills/fluent-mystique-builder/components/fc.page.filter.select.md +87 -0
  105. package/content/dev/skills/fluent-mystique-builder/components/fc.page.md +64 -0
  106. package/content/dev/skills/fluent-mystique-builder/components/fc.page.refresh.md +48 -0
  107. package/content/dev/skills/fluent-mystique-builder/components/fc.page.section.column.md +71 -0
  108. package/content/dev/skills/fluent-mystique-builder/components/fc.page.section.header.md +61 -0
  109. package/content/dev/skills/fluent-mystique-builder/components/fc.page.section.md +59 -0
  110. package/content/dev/skills/fluent-mystique-builder/components/fc.page.wizard.md +45 -0
  111. package/content/dev/skills/fluent-mystique-builder/components/fc.page.wizard.summary.md +56 -0
  112. package/content/dev/skills/fluent-mystique-builder/components/fc.progress.circular.md +20 -0
  113. package/content/dev/skills/fluent-mystique-builder/components/fc.provider.graphql.md +71 -0
  114. package/content/dev/skills/fluent-mystique-builder/components/fc.quantity.list.md +87 -0
  115. package/content/dev/skills/fluent-mystique-builder/components/fc.repeater.md +56 -0
  116. package/content/dev/skills/fluent-mystique-builder/components/fc.reports.ipuipc.md +54 -0
  117. package/content/dev/skills/fluent-mystique-builder/components/fc.return.rowExpansion.md +19 -0
  118. package/content/dev/skills/fluent-mystique-builder/components/fc.scanner.barcode.md +21 -0
  119. package/content/dev/skills/fluent-mystique-builder/components/fc.scanner.barcodeFilter.md +72 -0
  120. package/content/dev/skills/fluent-mystique-builder/components/fc.scanner.camera.md +20 -0
  121. package/content/dev/skills/fluent-mystique-builder/components/fc.settingForm.md +64 -0
  122. package/content/dev/skills/fluent-mystique-builder/components/fc.sourcing.profile.drawer.button.md +19 -0
  123. package/content/dev/skills/fluent-mystique-builder/components/fc.sourcing.profile.modal.button.md +64 -0
  124. package/content/dev/skills/fluent-mystique-builder/components/fc.sourcing.strategy.modal.button.md +20 -0
  125. package/content/dev/skills/fluent-mystique-builder/components/fc.stepper.md +20 -0
  126. package/content/dev/skills/fluent-mystique-builder/components/fc.tab.content.md +56 -0
  127. package/content/dev/skills/fluent-mystique-builder/components/fc.tabs.card.md +64 -0
  128. package/content/dev/skills/fluent-mystique-builder/components/fc.tabs.md +69 -0
  129. package/content/dev/skills/fluent-mystique-builder/components/fc.tile.metric.md +73 -0
  130. package/content/dev/skills/fluent-mystique-builder/components/fc.workflow.provider.md +77 -0
  131. package/content/dev/skills/fluent-mystique-builder/validate-docs.ps1 +260 -0
  132. package/content/dev/skills/fluent-mystique-scaffold/SKILL.md +1830 -0
  133. package/content/dev/skills/fluent-mystique-validate/SKILL.md +646 -0
  134. package/content/dev/skills/fluent-pre-deploy-check/SKILL.md +1144 -1108
  135. package/content/dev/skills/fluent-retailer-config/SKILL.md +1162 -1111
  136. package/content/dev/skills/fluent-rollback/SKILL.md +387 -0
  137. package/content/dev/skills/fluent-rule-scaffold/SKILL.md +515 -385
  138. package/content/dev/skills/fluent-scope-decompose/SKILL.md +1123 -1021
  139. package/content/dev/skills/fluent-session-audit-export/SKILL.md +880 -632
  140. package/content/dev/skills/fluent-session-summary/SKILL.md +320 -195
  141. package/content/dev/skills/fluent-settings/SKILL.md +160 -1
  142. package/content/dev/skills/fluent-source-onboard/SKILL.md +31 -3
  143. package/content/dev/skills/fluent-sourcing/SKILL.md +1185 -0
  144. package/content/dev/skills/fluent-system-monitoring/SKILL.md +771 -767
  145. package/content/dev/skills/fluent-test-data/SKILL.md +514 -513
  146. package/content/dev/skills/fluent-trace/SKILL.md +1169 -1143
  147. package/content/dev/skills/fluent-transition-api/SKILL.md +364 -346
  148. package/content/dev/skills/fluent-use-case-discover/SKILL.md +593 -0
  149. package/content/dev/skills/fluent-use-case-discover/SPEC_TEMPLATE.md +281 -0
  150. package/content/dev/skills/fluent-version-manage/SKILL.md +53 -2
  151. package/content/dev/skills/fluent-workflow-analyzer/SKILL.md +995 -959
  152. package/content/dev/skills/fluent-workflow-builder/SKILL.md +668 -319
  153. package/content/dev/skills/fluent-workflow-deploy/SKILL.md +480 -267
  154. package/content/dev/skills/fluent-workspace-tree/SKILL.md +281 -0
  155. package/content/mcp-extn/agents/fluent-mcp.md +133 -69
  156. package/content/mcp-extn/skills/fluent-mcp-tools/SKILL.md +812 -461
  157. package/content/mcp-official/agents/fluent-mcp-core.md +91 -91
  158. package/content/mcp-official/skills/fluent-mcp-core/SKILL.md +94 -94
  159. package/content/rfl/skills/fluent-rfl-assess/SKILL.md +172 -172
  160. package/docs/CAPABILITY_MAP.md +106 -77
  161. package/docs/DEPLOYMENT_PROMOTION_RUNBOOK.md +218 -0
  162. package/docs/DESIGN-implementation-map.md +698 -0
  163. package/docs/DEV_WORKFLOW.md +814 -802
  164. package/docs/FLOW_RUN.md +142 -142
  165. package/docs/GETTING_STARTED.md +427 -0
  166. package/docs/USE_CASES.md +909 -52
  167. package/metadata.json +184 -156
  168. package/package.json +3 -2
@@ -0,0 +1,281 @@
1
+ # Business Spec Template
2
+
3
+ This is the output template for `/fluent-use-case-discover`. The wizard fills in each section from gathered requirements. Sections marked CONDITIONAL are included only when relevant.
4
+
5
+ ---
6
+
7
+ ## Template
8
+
9
+ ```markdown
10
+ # Business Spec: [Feature Title]
11
+
12
+ **Status:** DRAFT | REVIEW | APPROVED
13
+ **Date:** YYYY-MM-DD
14
+ **Profile:** <FLUENT_PROFILE>
15
+ **Retailer:** <RETAILER_REF>
16
+ **Requested by:** [stakeholder or team]
17
+ **Completeness:** XX% ([Insufficient / Partial / Sufficient / Complete])
18
+
19
+ ---
20
+
21
+ ## 1. Problem Statement
22
+
23
+ [Business problem in plain language. What pain exists today? Why does this matter?]
24
+
25
+ ## 2. Feature Summary
26
+
27
+ [One-sentence description of the feature]
28
+
29
+ **Type:** [New capability / Enhancement / Bug fix / External integration / Data migration / Process change]
30
+ **Success Metrics:**
31
+ - [KPI 1 — e.g., "Reduce order fulfilment time from 4h to 1h"]
32
+ - [KPI 2 — e.g., "Eliminate manual carrier selection for 90% of orders"]
33
+
34
+ ## 3. Scope
35
+
36
+ **In scope:**
37
+ - [Bullet list — what this feature will do]
38
+
39
+ **Out of scope:**
40
+ - [Bullet list — what this feature will NOT do]
41
+
42
+ ## 3a. Existing State (conditional — include when extending an existing feature)
43
+
44
+ > Include this section when the feature extends, modifies, or builds on an existing Fluent Commerce feature. Skip for greenfield features.
45
+
46
+ If an architecture document exists at `features/<parent-slug>/architecture.md` (produced by `/fluent-feature-explain`), reference it here.
47
+
48
+ ### Current Architecture Reference
49
+ - **Parent feature:** `<parent-slug>`
50
+ - **Architecture doc:** `features/<parent-slug>/architecture.md`
51
+ - **basedOn field in status.json:** `"basedOn": "<parent-slug>"`
52
+
53
+ ### What Exists Today
54
+ | Artifact | Current State | To Be Modified? |
55
+ |----------|--------------|-----------------|
56
+ | Workflow `ORDER::HD` | v1.56, 14 rulesets | Yes — adding new ruleset |
57
+ | Rule `CreateFulfilment` | OOTB, no customization | Yes — replacing with custom |
58
+ | Settings `FULFILMENT_SPLIT_*` | Not present | New — to be created |
59
+
60
+ ### What This Feature Changes
61
+ Describe the delta from current state. What's being added, modified, or removed? This section bridges the gap between the architecture doc (what IS) and the spec (what SHOULD BE).
62
+
63
+ ## 4. Actors & Triggers
64
+
65
+ | Actor | Type | Module | Role in Feature |
66
+ |-------|------|--------|-----------------|
67
+ | [e.g., Store associate] | Human | Service Point | Picks and packs items |
68
+ | [e.g., WMS] | System | External | Receives fulfilment requests via webhook |
69
+ | [e.g., Scheduled job] | Automated | Backend | Runs daily reconciliation |
70
+
71
+ **Trigger:** [What starts this feature — e.g., "New HD order placed via API"]
72
+
73
+ **Scope:** [Retailer-specific / Account-wide]
74
+
75
+ ## 5. Use Cases
76
+
77
+ ### UC-01: [Happy Path Title]
78
+
79
+ **Actors:** [list]
80
+ **Preconditions:** [what must be true before this scenario starts]
81
+ **Flow:**
82
+ 1. [Step 1 — e.g., "Customer places an HD order via the storefront"]
83
+ 2. [Step 2 — e.g., "Order is created in Fluent with status CREATED"]
84
+ 3. [Step 3 — ...]
85
+ ...
86
+
87
+ **Postconditions:** [end state — e.g., "Order reaches COMPLETE, customer receives delivery confirmation"]
88
+
89
+ **Acceptance Criteria:**
90
+ - Given [precondition], When [action], Then [expected result]
91
+ - Given [precondition], When [action], Then [expected result]
92
+
93
+ ### UC-02: [Alternative Path Title]
94
+
95
+ **Actors:** [list]
96
+ **Preconditions:** [what must be true]
97
+ **Branching condition:** [what makes this path different from UC-01]
98
+ **Flow:**
99
+ 1. [...]
100
+ ...
101
+
102
+ **Postconditions:** [end state]
103
+
104
+ **Acceptance Criteria:**
105
+ - Given [...], When [...], Then [...]
106
+
107
+ ### UC-03: [Exception Path Title]
108
+
109
+ **Actors:** [list]
110
+ **Preconditions:** [what must be true]
111
+ **Trigger:** [what goes wrong — e.g., "Stock unavailable at allocated location"]
112
+ **Flow:**
113
+ 1. [Error handling steps]
114
+ ...
115
+
116
+ **Postconditions:** [recovery state or failure state]
117
+
118
+ **Acceptance Criteria:**
119
+ - Given [...], When [...], Then [...]
120
+
121
+ <!-- Add more use cases as needed: UC-04, UC-05, etc. -->
122
+
123
+ ## 6. Entity Model
124
+
125
+ | Entity | Subtype | New/Existing | Key Attributes | Notes |
126
+ |--------|---------|--------------|----------------|-------|
127
+ | [e.g., Order] | HD | Existing | deliveryWindow (new attr) | Needs new attribute for scheduling |
128
+ | [e.g., Fulfilment] | HD_WH | Existing | carrierRef (existing) | No changes |
129
+ | [e.g., Fulfilment] | CC_STORE | New | pickupCode (new attr) | New subtype for curbside |
130
+
131
+ **Entity Relationships:**
132
+ [How entities connect in this feature. Example:]
133
+ - Order (HD) creates 1..N Fulfilments (HD_WH or CC_STORE)
134
+ - Fulfilment completion triggers Order status update via cross-entity event
135
+ - Location is referenced by Fulfilment for pick/pack assignment
136
+
137
+ ## 7. Business Rules
138
+
139
+ | # | Rule Name | Condition | Action | Applies To | Time-Based? |
140
+ |---|-----------|-----------|--------|------------|-------------|
141
+ | BR-01 | [e.g., Stock validation] | If requested qty > available qty | Reject or split | UC-01, UC-02 | No |
142
+ | BR-02 | [e.g., Auto-cancel] | If no pick action within 4 hours | Cancel fulfilment, notify ops | UC-03 | Yes (4h) |
143
+ | BR-03 | [e.g., Carrier routing] | If weight > 30kg | Route to freight carrier | UC-01 | No |
144
+
145
+ <!-- CONDITIONAL: Only include if Phase 5 was asked -->
146
+
147
+ ## 8. Integrations
148
+
149
+ | System | Direction | Method | Data Exchanged | Failure Handling |
150
+ |--------|-----------|--------|----------------|------------------|
151
+ | [e.g., WMS] | Fluent → External | Webhook | Fulfilment details (items, qty, location) | Retry 3x (5min interval), then alert ops |
152
+ | [e.g., Carrier API] | Fluent → External | REST API | Shipment request (weight, address, SLA) | Queue for manual retry |
153
+ | [e.g., POS] | External → Fluent | Webhook | Order creation payload | Validate payload, reject malformed |
154
+
155
+ <!-- CONDITIONAL: Only include if Phase 6 was asked -->
156
+
157
+ ## 9. User Actions
158
+
159
+ | Action Label | Actor | Available At Status | Form Fields | Confirmation? | Bulk? |
160
+ |-------------|-------|---------------------|-------------|---------------|-------|
161
+ | [e.g., Confirm Pick] | Store associate | PICKING | qty_picked (number, required) | No | No |
162
+ | [e.g., Cancel Order] | Admin | CREATED, BOOKED | reason (dropdown, required) | Yes | Yes |
163
+ | [e.g., Force Complete] | Admin | any except COMPLETE | notes (text, optional) | Yes | No |
164
+
165
+ <!-- CONDITIONAL: Only include if Phase 7 was asked -->
166
+
167
+ ## 10. Constraints & Risks
168
+
169
+ | # | Type | Description | Impact | Mitigation |
170
+ |---|------|-------------|--------|------------|
171
+ | R-01 | Risk | [e.g., WMS downtime during peak hours] | Fulfilments delayed | Queue + retry with alerting |
172
+ | R-02 | Risk | [e.g., New subtype may conflict with existing HD rules] | Regression | E2E test before deploy |
173
+ | C-01 | Constraint | [e.g., Must not break existing HD flow] | Regression | Test existing flow after changes |
174
+ | C-02 | Constraint | [e.g., Must handle 500 orders/hour at peak] | Performance | Load test before go-live |
175
+
176
+ **Volume expectations:** [e.g., "~200 orders/day normal, ~500/day peak (Black Friday)"]
177
+
178
+ ## 11. Assumptions
179
+
180
+ - [A-01] [e.g., Existing inventory catalogue has accurate stock levels]
181
+ - [A-02] [e.g., WMS webhook endpoint is already deployed and accepts JSON]
182
+ - [A-03] [e.g., Store associates have Service Point access configured]
183
+ ...
184
+
185
+ **Important:** Assumptions become risks if proven wrong. Each should be validated during the feature plan phase.
186
+
187
+ ## 12. Open Questions
188
+
189
+ - [Q-01] [e.g., What is the SLA for WMS response time?] — **Blocks:** BR-02 (auto-cancel timing)
190
+ - [Q-02] [e.g., Should partial picks be allowed or must the full qty be picked?] — **Blocks:** UC-02 definition
191
+ - [Q-03] [e.g., Which carrier API version are we targeting?] — **Blocks:** Integration design
192
+ ...
193
+
194
+ **Important:** Open questions MUST be resolved before the feature plan can be completed. Each question notes which spec section it blocks.
195
+
196
+ ## 13. Acceptance Criteria Summary
197
+
198
+ | UC | Criteria | Priority |
199
+ |----|----------|----------|
200
+ | UC-01 | Given stock available at warehouse, When HD order placed, Then fulfilment created and assigned within 30s | Must-have |
201
+ | UC-02 | Given partial stock across locations, When HD order placed, Then order split into multiple fulfilments | Must-have |
202
+ | UC-03 | Given no stock available, When HD order placed, Then customer notified and order moved to BACKORDER | Must-have |
203
+ | UC-01 | Given fulfilment shipped, When carrier confirms delivery, Then order status updated to COMPLETE | Must-have |
204
+ | UC-01 | Given peak load (500 orders/hour), When orders placed, Then all processed within 60s | Nice-to-have |
205
+
206
+ ---
207
+
208
+ ## Traceability Matrix
209
+
210
+ | Use Case | Entities | Business Rules | Integrations | User Actions |
211
+ |----------|----------|----------------|--------------|--------------|
212
+ | UC-01 | Order (HD), Fulfilment (HD_WH) | BR-01, BR-03 | WMS, Carrier | Confirm Pick |
213
+ | UC-02 | Order (HD), Fulfilment x2 | BR-01 | WMS | Confirm Pick |
214
+ | UC-03 | Order (HD) | BR-02 | Notification | — |
215
+
216
+ This matrix ensures every use case traces through to entities, rules, integrations, and actions. Gaps in this table indicate incomplete requirements.
217
+
218
+ ---
219
+
220
+ ## Recommendation
221
+
222
+ [Auto-generated by the wizard based on completeness score:]
223
+
224
+ **Score: XX% — [Insufficient / Partial / Sufficient / Complete]**
225
+
226
+ [One of:]
227
+ - "This spec is **ready for technical planning**. Run `/fluent-feature-plan` to produce the implementation plan."
228
+ - "This spec is **sufficient but has gaps** in [Phase X, Phase Y]. The feature plan can proceed but will make assumptions for those sections. Consider resolving open questions Q-01 and Q-02 first."
229
+ - "This spec has **too many gaps** to produce a reliable feature plan. Address: [list of missing phases]. Focus on [highest-priority gap]."
230
+
231
+ ## Next Step
232
+
233
+ When this spec is APPROVED, proceed to technical implementation planning:
234
+
235
+ ```
236
+ /fluent-feature-plan --feature <slug>
237
+ ```
238
+ ```
239
+
240
+ ---
241
+
242
+ ## Section Applicability Guide
243
+
244
+ | Section | Always? | When to Include |
245
+ |---------|---------|-----------------|
246
+ | §1 Problem Statement | YES | Every spec |
247
+ | §2 Feature Summary | YES | Every spec |
248
+ | §3 Scope | YES | Every spec |
249
+ | §4 Actors & Triggers | YES | Every spec |
250
+ | §5 Use Cases | YES | Every spec (minimum: happy path + 1 exception) |
251
+ | §6 Entity Model | YES | Every Fluent feature |
252
+ | §7 Business Rules | CONDITIONAL | When there are decision points, validations, or calculations |
253
+ | §8 Integrations | CONDITIONAL | When external systems are involved |
254
+ | §9 User Actions | CONDITIONAL | When human actors interact via Fluent UI |
255
+ | §10 Constraints & Risks | YES | Every spec (even if brief) |
256
+ | §11 Assumptions | YES | Every spec |
257
+ | §12 Open Questions | YES | Every spec (can be empty if fully resolved) |
258
+ | §13 Acceptance Criteria | YES | Every spec |
259
+ | Traceability Matrix | YES | Every spec |
260
+
261
+ ## Completeness Scoring Rubric
262
+
263
+ | Phase | Weight | Full Score | Half Score | Zero |
264
+ |-------|--------|------------|------------|------|
265
+ | 1. Feature Identity | 15% | All REQUIRED questions answered | Problem + summary but no metrics | Missing problem statement |
266
+ | 2. Actors & Triggers | 10% | Actors + trigger + scope identified | Trigger only, no actors | Neither identified |
267
+ | 3. Use Cases | 20% | Happy path + alternative + exception | Happy path only | No use cases defined |
268
+ | 4. Entities & Data | 15% | All entities with subtypes + attributes | Entities listed, no subtypes | No entities identified |
269
+ | 5. Business Rules | 15% | Rules per decision point in use cases | Some rules, gaps in coverage | N/A → 0% weight redistributed |
270
+ | 6. Integrations | 5% | All systems with method + failure handling | Systems listed, no details | N/A → 0% weight redistributed |
271
+ | 7. UI Actions | 5% | Actions per actor with status + fields | Actions listed, no details | N/A → 0% weight redistributed |
272
+ | 8. Constraints | 5% | Risks + assumptions + volume documented | At least one risk or assumption | Nothing documented |
273
+ | 9. Acceptance Criteria | 10% | Given/When/Then per use case + priority | Some criteria, not per UC | No acceptance criteria |
274
+
275
+ **When N/A phases exist:** Their weight is redistributed proportionally across applicable phases. A backend-only feature with no integrations redistributes 10% (Phase 6 + 7) across the remaining phases.
276
+
277
+ **Score interpretation:**
278
+ - **90-100%:** Complete — comprehensive, minimal assumptions needed
279
+ - **75-89%:** Sufficient — ready for feature plan, minor gaps flagged
280
+ - **50-74%:** Partial — can proceed but assumption-heavy
281
+ - **< 50%:** Insufficient — too many gaps to produce reliable plan
@@ -14,6 +14,16 @@ Manage the full version lifecycle for Fluent Commerce extension modules: read cu
14
14
 
15
15
  ## Planning Gate
16
16
 
17
+ ### Pre-flight: Plan Verification
18
+
19
+ Before proceeding, check for an existing approved plan:
20
+
21
+ 1. **Search** `accounts/<PROFILE>/features/*/status.json` for an entry with `plan: "APPROVED"` that covers this version change, OR check `accounts/<PROFILE>/tasks/` for a task plan with `Status: APPROVED`
22
+ 2. **If multi-artifact work** (version bump as part of feature delivery): STOP. Invoke `/fluent-feature-plan` first — this skill cannot be used for multi-artifact work without a feature plan
23
+ 3. **If approved plan found:** Skip to implementation, referencing the plan's §17 (Deployment) section
24
+ 4. **If version-only work with no plan:** Continue to the Planning Gate below to write a plan for this skill
25
+ 5. **`status` (read-only) and `sync --dry-run`** are always exempt from planning
26
+
17
27
  **Before bumping versions, write a plan using the template from `PLAN_TEMPLATE.md` in the `fluent-feature-plan` skill.** `status` (read-only) and `sync --dry-run` are exempt.
18
28
 
19
29
  **Version-manage specific emphasis — ensure these are covered:**
@@ -24,7 +34,7 @@ Manage the full version lifecycle for Fluent Commerce extension modules: read cu
24
34
  4. **Detailed Design (Section 5)** — CHANGELOG entries to move from [Unreleased] to new version heading
25
35
  5. **Impacted retailers (Section 4.8)** — which environments will receive this version
26
36
 
27
- **Write the plan to:** `accounts/<PROFILE>/plans/<YYYY-MM-DD>-version-manage-<slug>.md`. Set `Status: PENDING`.
37
+ **Write the plan to:** `accounts/<PROFILE>/tasks/<YYYY-MM-DD>-version-manage-<slug>.md`. Set `Status: PENDING`.
28
38
 
29
39
  Present the full plan content to the user and wait for approval before modifying any version files. On approval, update the file to `Status: APPROVED`. If the user says "just do it", proceed directly (still write the file for audit trail).
30
40
 
@@ -64,6 +74,23 @@ The existing `/fluent-build` skill has a "Version Bump" section (step 1 of 4). T
64
74
  | Git commit | None | Optional `--commit` flag |
65
75
  | SNAPSHOT handling | None | Strips `-SNAPSHOT` suffix during bump |
66
76
 
77
+ ## Handoff Protocol
78
+
79
+ ### Signals emitted by this skill
80
+
81
+ | Signal | Condition | Example |
82
+ |--------|-----------|---------|
83
+ | `-> READY: <path>` | Version bumped | `-> READY: Version bumped 0.0.29 -> 0.0.30 in pom.xml + module.json` |
84
+ | `-> NEXT: /fluent-<skill>` | Ready for build | `-> NEXT: /fluent-build` |
85
+ | `-> SKIP: <reason>` | Status/dry-run (exempt from planning) | `-> SKIP: Version status check only — no changes made` |
86
+
87
+ ### Error codes
88
+
89
+ | Code | Condition | Recovery |
90
+ |------|-----------|----------|
91
+ | `PLAN_REQUIRED` | Version bump attempted without approved plan | Run `/fluent-feature-plan` first |
92
+ | `VALIDATION_FAILED` | Invalid version format or conflict | Fix version string and retry |
93
+
67
94
  ## When to Use
68
95
 
69
96
  - "What version is this module?" -> `status`
@@ -479,6 +506,13 @@ To push the tag to remote:
479
506
 
480
507
  The `bump` command transforms CHANGELOG.md by moving the `[Unreleased]` section contents under a new dated version heading.
481
508
 
509
+ **Preview mode:** Before applying CHANGELOG transforms, use `--dry-run` to preview what will change:
510
+ - Show which entries will move from `[Unreleased]` to the new version heading
511
+ - Show the new version heading format
512
+ - Do not modify any files
513
+
514
+ This prevents accidental CHANGELOG corruption when version numbers are wrong.
515
+
482
516
  ### Expected CHANGELOG Format (Keep a Changelog)
483
517
 
484
518
  ```markdown
@@ -502,6 +536,23 @@ The `bump` command transforms CHANGELOG.md by moving the `[Unreleased]` section
502
536
  ...
503
537
  ```
504
538
 
539
+ ### Dry-Run Preview
540
+
541
+ Before transforming the CHANGELOG, **always show a preview** of what will change:
542
+
543
+ ```
544
+ /fluent-version-manage bump --level patch --dry-run
545
+ ```
546
+
547
+ In dry-run mode:
548
+ 1. Read CHANGELOG.md and extract the `[Unreleased]` section
549
+ 2. Show the user what the new version heading will look like
550
+ 3. Show what content will move from `[Unreleased]` to the new heading
551
+ 4. Do NOT write any changes
552
+ 5. Wait for user confirmation before applying
553
+
554
+ This prevents accidental CHANGELOG corruption, especially when the `[Unreleased]` section is empty or the format doesn't match expectations.
555
+
505
556
  ### Transformation Algorithm
506
557
 
507
558
  ```
@@ -667,7 +718,7 @@ When `--module-path` is not provided, search for the module root automatically:
667
718
  Before running, check if `/fluent-custom-code` artifacts exist:
668
719
 
669
720
  ```
670
- accounts/<PROFILE>/analysis/custom-code/source-map.json
721
+ accounts/<PROFILE>/analysis/code/source-map.json
671
722
  ```
672
723
 
673
724
  If found, read `modules[].version` and `modules[].versionSource` to pre-populate version information without re-scanning POM files. Fall back to direct file reads if artifacts are missing or stale.