@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.
- package/README.md +866 -622
- package/bin/cli.mjs +2112 -1973
- package/content/cli/agents/fluent-cli/agent.json +149 -149
- package/content/cli/agents/fluent-cli.md +132 -132
- package/content/cli/skills/fluent-bootstrap/SKILL.md +214 -181
- package/content/cli/skills/fluent-cli-index/SKILL.md +1 -1
- package/content/cli/skills/fluent-cli-mcp-cicd/SKILL.md +117 -1
- package/content/cli/skills/fluent-cli-reference/SKILL.md +1040 -1031
- package/content/cli/skills/fluent-cli-retailer/SKILL.md +27 -2
- package/content/cli/skills/fluent-cli-settings/SKILL.md +21 -1
- package/content/cli/skills/fluent-connect/SKILL.md +937 -886
- package/content/cli/skills/fluent-module-deploy/SKILL.md +63 -5
- package/content/cli/skills/fluent-profile/SKILL.md +73 -0
- package/content/cli/skills/fluent-workflow/SKILL.md +360 -310
- package/content/dev/agents/fluent-backend-dev/AGENT.md +58 -0
- package/content/dev/agents/fluent-backend-dev/agent.json +69 -0
- package/content/dev/agents/fluent-backend-dev.md +287 -0
- package/content/dev/agents/fluent-dev/AGENT.md +98 -0
- package/content/dev/agents/fluent-dev/agent.json +14 -2
- package/content/dev/agents/fluent-dev.md +194 -525
- package/content/dev/agents/fluent-frontend-dev/AGENT.md +63 -0
- package/content/dev/agents/fluent-frontend-dev/agent.json +52 -0
- package/content/dev/agents/fluent-frontend-dev.md +323 -0
- package/content/dev/skills/fluent-archive/SKILL.md +234 -0
- package/content/dev/skills/fluent-build/SKILL.md +312 -192
- package/content/dev/skills/fluent-connection-analysis/SKILL.md +422 -386
- package/content/dev/skills/fluent-custom-code/SKILL.md +15 -9
- package/content/dev/skills/fluent-data-module-scaffold/SKILL.md +19 -2
- package/content/dev/skills/fluent-e2e-test/SKILL.md +501 -394
- package/content/dev/skills/fluent-event-api/SKILL.md +962 -945
- package/content/dev/skills/fluent-feature-explain/SKILL.md +680 -603
- package/content/dev/skills/fluent-feature-plan/PLAN_TEMPLATE.md +27 -2
- package/content/dev/skills/fluent-feature-plan/SKILL.md +478 -227
- package/content/dev/skills/fluent-feature-status/SKILL.md +335 -0
- package/content/dev/skills/fluent-feedback/SKILL.md +221 -0
- package/content/dev/skills/fluent-implementation-map/SKILL.md +644 -0
- package/content/dev/skills/fluent-job-batch/SKILL.md +10 -0
- package/content/dev/skills/fluent-module-scaffold/SKILL.md +64 -2
- package/content/dev/skills/fluent-module-validate/SKILL.md +778 -775
- package/content/dev/skills/fluent-mystique-analyze/SKILL.md +817 -0
- package/content/dev/skills/fluent-mystique-builder/COMPONENT_TEMPLATE.md +81 -0
- package/content/dev/skills/fluent-mystique-builder/README.md +63 -0
- package/content/dev/skills/fluent-mystique-builder/SKILL.md +1294 -0
- package/content/dev/skills/fluent-mystique-builder/components/INDEX.md +92 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.accordion.md +48 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.action.field.fulfilmentpack.md +20 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.action.field.multiparcel.md +21 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.action.field.returnitems.md +21 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.action.field.wavepick.md +21 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.action.inline.md +24 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.activity.entity.md +25 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.analytics.viz.md +20 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.attribute.column.md +111 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.attribute.json.md +20 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.attribute.jsoneditor.md +54 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.attribute.locationId.md +51 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.attribute.retailerId.md +52 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.button.bar.md +57 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.button.print.download.md +53 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.button.print.inline.compatibility.md +60 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.button.print.inline.md +53 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.button.print.md +24 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.button.print.pick.md +61 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.buttons.add.reject.md +20 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.card.attribute.md +73 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.card.attributes.grid.md +40 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.card.image.md +37 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.card.map.point.md +24 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.card.multi.md +79 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.card.product.md +27 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.chart.area.md +34 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.chart.area.wrapper.feed.md +98 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.chart.bar.md +52 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.chart.bar.wrapper.source.md +104 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.chart.gauge.md +28 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.chart.gauge.wrapper.threshold.md +118 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.chart.line.md +32 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.conditional.md +62 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.dashboard.threshold.md +65 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.daterange.wrapper.forwarder.md +56 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.drawer.button.md +21 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.event.detail.md +20 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.events.search.md +21 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.field.daterange.md +83 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.field.filterComplex.md +106 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.field.intrange.md +82 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.field.multistring.md +50 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.filterPanel.md +53 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.json.editor.md +22 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.json.viewer.md +21 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.list.customAction.md +79 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.list.md +116 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.list.wrapper.bppmetrics.md +69 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.list.wrapper.feed.md +65 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.list.wrapper.source.md +64 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.modal.button.addItem.md +60 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.modal.button.md +21 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.mutation.inline.md +88 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.mystique.collapsible.attributes.md +83 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.mystique.collapsible.text.md +33 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.mystique.link.md +30 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.order.itemDetails.md +20 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.order.shipmentDetails.md +20 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.page.filter.select.md +87 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.page.md +64 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.page.refresh.md +48 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.page.section.column.md +71 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.page.section.header.md +61 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.page.section.md +59 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.page.wizard.md +45 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.page.wizard.summary.md +56 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.progress.circular.md +20 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.provider.graphql.md +71 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.quantity.list.md +87 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.repeater.md +56 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.reports.ipuipc.md +54 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.return.rowExpansion.md +19 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.scanner.barcode.md +21 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.scanner.barcodeFilter.md +72 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.scanner.camera.md +20 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.settingForm.md +64 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.sourcing.profile.drawer.button.md +19 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.sourcing.profile.modal.button.md +64 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.sourcing.strategy.modal.button.md +20 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.stepper.md +20 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.tab.content.md +56 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.tabs.card.md +64 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.tabs.md +69 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.tile.metric.md +73 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.workflow.provider.md +77 -0
- package/content/dev/skills/fluent-mystique-builder/validate-docs.ps1 +260 -0
- package/content/dev/skills/fluent-mystique-scaffold/SKILL.md +1830 -0
- package/content/dev/skills/fluent-mystique-validate/SKILL.md +646 -0
- package/content/dev/skills/fluent-pre-deploy-check/SKILL.md +1144 -1108
- package/content/dev/skills/fluent-retailer-config/SKILL.md +1162 -1111
- package/content/dev/skills/fluent-rollback/SKILL.md +387 -0
- package/content/dev/skills/fluent-rule-scaffold/SKILL.md +515 -385
- package/content/dev/skills/fluent-scope-decompose/SKILL.md +1123 -1021
- package/content/dev/skills/fluent-session-audit-export/SKILL.md +880 -632
- package/content/dev/skills/fluent-session-summary/SKILL.md +320 -195
- package/content/dev/skills/fluent-settings/SKILL.md +160 -1
- package/content/dev/skills/fluent-source-onboard/SKILL.md +31 -3
- package/content/dev/skills/fluent-sourcing/SKILL.md +1185 -0
- package/content/dev/skills/fluent-system-monitoring/SKILL.md +771 -767
- package/content/dev/skills/fluent-test-data/SKILL.md +514 -513
- package/content/dev/skills/fluent-trace/SKILL.md +1169 -1143
- package/content/dev/skills/fluent-transition-api/SKILL.md +364 -346
- package/content/dev/skills/fluent-use-case-discover/SKILL.md +593 -0
- package/content/dev/skills/fluent-use-case-discover/SPEC_TEMPLATE.md +281 -0
- package/content/dev/skills/fluent-version-manage/SKILL.md +53 -2
- package/content/dev/skills/fluent-workflow-analyzer/SKILL.md +995 -959
- package/content/dev/skills/fluent-workflow-builder/SKILL.md +668 -319
- package/content/dev/skills/fluent-workflow-deploy/SKILL.md +480 -267
- package/content/dev/skills/fluent-workspace-tree/SKILL.md +281 -0
- package/content/mcp-extn/agents/fluent-mcp.md +133 -69
- package/content/mcp-extn/skills/fluent-mcp-tools/SKILL.md +812 -461
- package/content/mcp-official/agents/fluent-mcp-core.md +91 -91
- package/content/mcp-official/skills/fluent-mcp-core/SKILL.md +94 -94
- package/content/rfl/skills/fluent-rfl-assess/SKILL.md +172 -172
- package/docs/CAPABILITY_MAP.md +106 -77
- package/docs/DEPLOYMENT_PROMOTION_RUNBOOK.md +218 -0
- package/docs/DESIGN-implementation-map.md +698 -0
- package/docs/DEV_WORKFLOW.md +814 -802
- package/docs/FLOW_RUN.md +142 -142
- package/docs/GETTING_STARTED.md +427 -0
- package/docs/USE_CASES.md +909 -52
- package/metadata.json +184 -156
- 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>/
|
|
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/
|
|
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.
|