@fluentcommerce/ai-skills 0.1.0 → 0.2.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 (31) hide show
  1. package/README.md +10 -16
  2. package/content/cli/skills/fluent-bootstrap/SKILL.md +9 -0
  3. package/content/cli/skills/fluent-cli-reference/SKILL.md +0 -408
  4. package/content/cli/skills/fluent-module-deploy/SKILL.md +21 -127
  5. package/content/dev/agents/fluent-dev/AGENT.md +76 -0
  6. package/content/dev/agents/fluent-dev/agent.json +2 -12
  7. package/content/dev/agents/fluent-dev.md +5 -6
  8. package/content/dev/skills/fluent-build/SKILL.md +16 -38
  9. package/content/dev/skills/fluent-feature-plan/PLAN_TEMPLATE.md +9 -13
  10. package/content/dev/skills/fluent-feature-plan/SKILL.md +8 -14
  11. package/content/dev/skills/fluent-module-scaffold/SKILL.md +9 -78
  12. package/content/dev/skills/fluent-pre-deploy-check/SKILL.md +5 -23
  13. package/content/dev/skills/fluent-retailer-config/SKILL.md +9 -0
  14. package/content/dev/skills/fluent-rule-scaffold/SKILL.md +9 -0
  15. package/content/dev/skills/fluent-scope-decompose/SKILL.md +1 -1
  16. package/content/dev/skills/fluent-settings/SKILL.md +10 -0
  17. package/content/dev/skills/fluent-source-onboard/SKILL.md +9 -0
  18. package/content/dev/skills/fluent-sourcing/SKILL.md +1171 -0
  19. package/content/dev/skills/fluent-use-case-discover/SKILL.md +471 -0
  20. package/content/dev/skills/fluent-use-case-discover/SPEC_TEMPLATE.md +260 -0
  21. package/content/dev/skills/fluent-version-manage/SKILL.md +10 -0
  22. package/content/dev/skills/fluent-workflow-builder/SKILL.md +10 -3
  23. package/content/mcp-extn/agents/fluent-mcp.md +65 -2
  24. package/content/mcp-extn/skills/fluent-mcp-tools/SKILL.md +343 -4
  25. package/docs/CAPABILITY_MAP.md +3 -7
  26. package/docs/USE_CASES.md +4 -3
  27. package/docs/USE_CASES.pdf +0 -0
  28. package/metadata.json +8 -9
  29. package/package.json +2 -6
  30. package/content/dev/skills/fluent-data-module-scaffold/SKILL.md +0 -714
  31. package/content/dev/skills/fluent-workflow-deploy/SKILL.md +0 -267
@@ -0,0 +1,260 @@
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
+ ## 4. Actors & Triggers
43
+
44
+ | Actor | Type | Module | Role in Feature |
45
+ |-------|------|--------|-----------------|
46
+ | [e.g., Store associate] | Human | Service Point | Picks and packs items |
47
+ | [e.g., WMS] | System | External | Receives fulfilment requests via webhook |
48
+ | [e.g., Scheduled job] | Automated | Backend | Runs daily reconciliation |
49
+
50
+ **Trigger:** [What starts this feature — e.g., "New HD order placed via API"]
51
+
52
+ **Scope:** [Retailer-specific / Account-wide]
53
+
54
+ ## 5. Use Cases
55
+
56
+ ### UC-01: [Happy Path Title]
57
+
58
+ **Actors:** [list]
59
+ **Preconditions:** [what must be true before this scenario starts]
60
+ **Flow:**
61
+ 1. [Step 1 — e.g., "Customer places an HD order via the storefront"]
62
+ 2. [Step 2 — e.g., "Order is created in Fluent with status CREATED"]
63
+ 3. [Step 3 — ...]
64
+ ...
65
+
66
+ **Postconditions:** [end state — e.g., "Order reaches COMPLETE, customer receives delivery confirmation"]
67
+
68
+ **Acceptance Criteria:**
69
+ - Given [precondition], When [action], Then [expected result]
70
+ - Given [precondition], When [action], Then [expected result]
71
+
72
+ ### UC-02: [Alternative Path Title]
73
+
74
+ **Actors:** [list]
75
+ **Preconditions:** [what must be true]
76
+ **Branching condition:** [what makes this path different from UC-01]
77
+ **Flow:**
78
+ 1. [...]
79
+ ...
80
+
81
+ **Postconditions:** [end state]
82
+
83
+ **Acceptance Criteria:**
84
+ - Given [...], When [...], Then [...]
85
+
86
+ ### UC-03: [Exception Path Title]
87
+
88
+ **Actors:** [list]
89
+ **Preconditions:** [what must be true]
90
+ **Trigger:** [what goes wrong — e.g., "Stock unavailable at allocated location"]
91
+ **Flow:**
92
+ 1. [Error handling steps]
93
+ ...
94
+
95
+ **Postconditions:** [recovery state or failure state]
96
+
97
+ **Acceptance Criteria:**
98
+ - Given [...], When [...], Then [...]
99
+
100
+ <!-- Add more use cases as needed: UC-04, UC-05, etc. -->
101
+
102
+ ## 6. Entity Model
103
+
104
+ | Entity | Subtype | New/Existing | Key Attributes | Notes |
105
+ |--------|---------|--------------|----------------|-------|
106
+ | [e.g., Order] | HD | Existing | deliveryWindow (new attr) | Needs new attribute for scheduling |
107
+ | [e.g., Fulfilment] | HD_WH | Existing | carrierRef (existing) | No changes |
108
+ | [e.g., Fulfilment] | CC_STORE | New | pickupCode (new attr) | New subtype for curbside |
109
+
110
+ **Entity Relationships:**
111
+ [How entities connect in this feature. Example:]
112
+ - Order (HD) creates 1..N Fulfilments (HD_WH or CC_STORE)
113
+ - Fulfilment completion triggers Order status update via cross-entity event
114
+ - Location is referenced by Fulfilment for pick/pack assignment
115
+
116
+ ## 7. Business Rules
117
+
118
+ | # | Rule Name | Condition | Action | Applies To | Time-Based? |
119
+ |---|-----------|-----------|--------|------------|-------------|
120
+ | BR-01 | [e.g., Stock validation] | If requested qty > available qty | Reject or split | UC-01, UC-02 | No |
121
+ | BR-02 | [e.g., Auto-cancel] | If no pick action within 4 hours | Cancel fulfilment, notify ops | UC-03 | Yes (4h) |
122
+ | BR-03 | [e.g., Carrier routing] | If weight > 30kg | Route to freight carrier | UC-01 | No |
123
+
124
+ <!-- CONDITIONAL: Only include if Phase 5 was asked -->
125
+
126
+ ## 8. Integrations
127
+
128
+ | System | Direction | Method | Data Exchanged | Failure Handling |
129
+ |--------|-----------|--------|----------------|------------------|
130
+ | [e.g., WMS] | Fluent → External | Webhook | Fulfilment details (items, qty, location) | Retry 3x (5min interval), then alert ops |
131
+ | [e.g., Carrier API] | Fluent → External | REST API | Shipment request (weight, address, SLA) | Queue for manual retry |
132
+ | [e.g., POS] | External → Fluent | Webhook | Order creation payload | Validate payload, reject malformed |
133
+
134
+ <!-- CONDITIONAL: Only include if Phase 6 was asked -->
135
+
136
+ ## 9. User Actions
137
+
138
+ | Action Label | Actor | Available At Status | Form Fields | Confirmation? | Bulk? |
139
+ |-------------|-------|---------------------|-------------|---------------|-------|
140
+ | [e.g., Confirm Pick] | Store associate | PICKING | qty_picked (number, required) | No | No |
141
+ | [e.g., Cancel Order] | Admin | CREATED, BOOKED | reason (dropdown, required) | Yes | Yes |
142
+ | [e.g., Force Complete] | Admin | any except COMPLETE | notes (text, optional) | Yes | No |
143
+
144
+ <!-- CONDITIONAL: Only include if Phase 7 was asked -->
145
+
146
+ ## 10. Constraints & Risks
147
+
148
+ | # | Type | Description | Impact | Mitigation |
149
+ |---|------|-------------|--------|------------|
150
+ | R-01 | Risk | [e.g., WMS downtime during peak hours] | Fulfilments delayed | Queue + retry with alerting |
151
+ | R-02 | Risk | [e.g., New subtype may conflict with existing HD rules] | Regression | E2E test before deploy |
152
+ | C-01 | Constraint | [e.g., Must not break existing HD flow] | Regression | Test existing flow after changes |
153
+ | C-02 | Constraint | [e.g., Must handle 500 orders/hour at peak] | Performance | Load test before go-live |
154
+
155
+ **Volume expectations:** [e.g., "~200 orders/day normal, ~500/day peak (Black Friday)"]
156
+
157
+ ## 11. Assumptions
158
+
159
+ - [A-01] [e.g., Existing inventory catalogue has accurate stock levels]
160
+ - [A-02] [e.g., WMS webhook endpoint is already deployed and accepts JSON]
161
+ - [A-03] [e.g., Store associates have Service Point access configured]
162
+ ...
163
+
164
+ **Important:** Assumptions become risks if proven wrong. Each should be validated during the feature plan phase.
165
+
166
+ ## 12. Open Questions
167
+
168
+ - [Q-01] [e.g., What is the SLA for WMS response time?] — **Blocks:** BR-02 (auto-cancel timing)
169
+ - [Q-02] [e.g., Should partial picks be allowed or must the full qty be picked?] — **Blocks:** UC-02 definition
170
+ - [Q-03] [e.g., Which carrier API version are we targeting?] — **Blocks:** Integration design
171
+ ...
172
+
173
+ **Important:** Open questions MUST be resolved before the feature plan can be completed. Each question notes which spec section it blocks.
174
+
175
+ ## 13. Acceptance Criteria Summary
176
+
177
+ | UC | Criteria | Priority |
178
+ |----|----------|----------|
179
+ | UC-01 | Given stock available at warehouse, When HD order placed, Then fulfilment created and assigned within 30s | Must-have |
180
+ | UC-02 | Given partial stock across locations, When HD order placed, Then order split into multiple fulfilments | Must-have |
181
+ | UC-03 | Given no stock available, When HD order placed, Then customer notified and order moved to BACKORDER | Must-have |
182
+ | UC-01 | Given fulfilment shipped, When carrier confirms delivery, Then order status updated to COMPLETE | Must-have |
183
+ | UC-01 | Given peak load (500 orders/hour), When orders placed, Then all processed within 60s | Nice-to-have |
184
+
185
+ ---
186
+
187
+ ## Traceability Matrix
188
+
189
+ | Use Case | Entities | Business Rules | Integrations | User Actions |
190
+ |----------|----------|----------------|--------------|--------------|
191
+ | UC-01 | Order (HD), Fulfilment (HD_WH) | BR-01, BR-03 | WMS, Carrier | Confirm Pick |
192
+ | UC-02 | Order (HD), Fulfilment x2 | BR-01 | WMS | Confirm Pick |
193
+ | UC-03 | Order (HD) | BR-02 | Notification | — |
194
+
195
+ This matrix ensures every use case traces through to entities, rules, integrations, and actions. Gaps in this table indicate incomplete requirements.
196
+
197
+ ---
198
+
199
+ ## Recommendation
200
+
201
+ [Auto-generated by the wizard based on completeness score:]
202
+
203
+ **Score: XX% — [Insufficient / Partial / Sufficient / Complete]**
204
+
205
+ [One of:]
206
+ - "This spec is **ready for technical planning**. Run `/fluent-feature-plan` to produce the implementation plan."
207
+ - "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."
208
+ - "This spec has **too many gaps** to produce a reliable feature plan. Address: [list of missing phases]. Focus on [highest-priority gap]."
209
+
210
+ ## Next Step
211
+
212
+ When this spec is APPROVED, proceed to technical implementation planning:
213
+
214
+ ```
215
+ /fluent-feature-plan --spec accounts/<PROFILE>/analysis/specs/<YYYY-MM-DD>-<slug>.md
216
+ ```
217
+ ```
218
+
219
+ ---
220
+
221
+ ## Section Applicability Guide
222
+
223
+ | Section | Always? | When to Include |
224
+ |---------|---------|-----------------|
225
+ | §1 Problem Statement | YES | Every spec |
226
+ | §2 Feature Summary | YES | Every spec |
227
+ | §3 Scope | YES | Every spec |
228
+ | §4 Actors & Triggers | YES | Every spec |
229
+ | §5 Use Cases | YES | Every spec (minimum: happy path + 1 exception) |
230
+ | §6 Entity Model | YES | Every Fluent feature |
231
+ | §7 Business Rules | CONDITIONAL | When there are decision points, validations, or calculations |
232
+ | §8 Integrations | CONDITIONAL | When external systems are involved |
233
+ | §9 User Actions | CONDITIONAL | When human actors interact via Fluent UI |
234
+ | §10 Constraints & Risks | YES | Every spec (even if brief) |
235
+ | §11 Assumptions | YES | Every spec |
236
+ | §12 Open Questions | YES | Every spec (can be empty if fully resolved) |
237
+ | §13 Acceptance Criteria | YES | Every spec |
238
+ | Traceability Matrix | YES | Every spec |
239
+
240
+ ## Completeness Scoring Rubric
241
+
242
+ | Phase | Weight | Full Score | Half Score | Zero |
243
+ |-------|--------|------------|------------|------|
244
+ | 1. Feature Identity | 15% | All REQUIRED questions answered | Problem + summary but no metrics | Missing problem statement |
245
+ | 2. Actors & Triggers | 10% | Actors + trigger + scope identified | Trigger only, no actors | Neither identified |
246
+ | 3. Use Cases | 20% | Happy path + alternative + exception | Happy path only | No use cases defined |
247
+ | 4. Entities & Data | 15% | All entities with subtypes + attributes | Entities listed, no subtypes | No entities identified |
248
+ | 5. Business Rules | 15% | Rules per decision point in use cases | Some rules, gaps in coverage | N/A → 0% weight redistributed |
249
+ | 6. Integrations | 5% | All systems with method + failure handling | Systems listed, no details | N/A → 0% weight redistributed |
250
+ | 7. UI Actions | 5% | Actions per actor with status + fields | Actions listed, no details | N/A → 0% weight redistributed |
251
+ | 8. Constraints | 5% | Risks + assumptions + volume documented | At least one risk or assumption | Nothing documented |
252
+ | 9. Acceptance Criteria | 10% | Given/When/Then per use case + priority | Some criteria, not per UC | No acceptance criteria |
253
+
254
+ **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.
255
+
256
+ **Score interpretation:**
257
+ - **90-100%:** Complete — comprehensive, minimal assumptions needed
258
+ - **75-89%:** Sufficient — ready for feature plan, minor gaps flagged
259
+ - **50-74%:** Partial — can proceed but assumption-heavy
260
+ - **< 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>/plans/` for a file with `Status: APPROVED` that covers this version change
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:**
@@ -12,6 +12,15 @@ Create, edit, and validate Fluent Commerce workflow JSON definitions.
12
12
 
13
13
  ## Planning Gate
14
14
 
15
+ ### Pre-flight: Plan Verification
16
+
17
+ Before proceeding, check for an existing approved plan:
18
+
19
+ 1. **Search** `accounts/<PROFILE>/plans/` for a file with `Status: APPROVED` that covers this workflow
20
+ 2. **If multi-artifact work** (workflow + rules + settings): STOP. Invoke `/fluent-feature-plan` first — this skill cannot be used for multi-artifact work without a feature plan
21
+ 3. **If approved plan found:** Skip to implementation, referencing the plan's §4 (Workflows), §5 (Statuses), and §6 (Rulesets) sections
22
+ 4. **If single-workflow-only work with no plan:** Continue to the Planning Gate below to write a plan for this skill
23
+
15
24
  **Before creating or modifying any workflow, write a plan using the template from `PLAN_TEMPLATE.md` in the `fluent-feature-plan` skill.** Every table row must carry a Source column (NEW/EXISTING/MODIFIED/REUSED/OOTB).
16
25
 
17
26
  **If this workflow change is part of a larger feature** (rules + settings + webhooks), use `/fluent-feature-plan` first. Then reference the approved plan during implementation.
@@ -273,9 +282,7 @@ Find the gate ruleset, update the `statuses` prop value.
273
282
 
274
283
  ### Upload/merge
275
284
 
276
- Use `/fluent-workflow-deploy` for uploading workflows to environments (MCP tool primary, REST API fallback). Use `/fluent-workflow` for listing, downloading, and merging workflows. Use `/fluent-module-deploy` for deploying full module bundles (JAR + settings + workflows together).
277
-
278
- **Important:** If the workflow references new custom rules, deploy the module first via `/fluent-module-deploy` before uploading the workflow. Unregistered rules cause NO_MATCH events at runtime.
285
+ Use `/fluent-workflow` for merge/upload workflows and `/fluent-module-deploy` (or `flow-run`) for deployment execution.
279
286
 
280
287
  ## Workflow Fragments
281
288
 
@@ -35,27 +35,90 @@ Auth strategy priority (first valid method wins):
35
35
  3. **Prefer `graphql.queryAll`** when fetching all records (auto-pagination)
36
36
  4. **Use `graphql.batchMutate`** for bulk updates (up to 50 per request)
37
37
 
38
- ## Available MCP Tools
38
+ ## Available MCP Tools (36 total)
39
39
 
40
+ ### Diagnostics
40
41
  | Tool | Purpose |
41
42
  |------|---------|
42
43
  | `config.validate` | Check auth/base URL/retailer config |
43
44
  | `health.ping` | Quick connectivity diagnostics |
44
45
  | `connection.test` | Full auth + me query verification |
46
+
47
+ ### Events
48
+ | Tool | Purpose |
49
+ |------|---------|
45
50
  | `event.build` | Build event payload (no send) |
46
51
  | `event.send` | Send event (supports dryRun) |
47
52
  | `event.list` | List/filter events |
48
53
  | `event.get` | Fetch single event by ID |
54
+ | `event.flowInspect` | One-call event forensics for any entity (compact summary by default) |
55
+
56
+ ### Orchestration
57
+ | Tool | Purpose |
58
+ |------|---------|
49
59
  | `workflow.transitions` | Query available user actions/transitions at any state |
50
60
  | `plugin.list` | List registered rules with metadata (supports name filter) |
61
+
62
+ ### GraphQL
63
+ | Tool | Purpose |
64
+ |------|---------|
51
65
  | `graphql.query` | Execute single GraphQL query/mutation |
52
66
  | `graphql.queryAll` | Auto-paginated query (all records) |
53
67
  | `graphql.batchMutate` | Batch mutations (up to 50) |
54
- | `graphql.introspect` | Schema introspection |
68
+ | `graphql.introspect` | Schema introspection (types, mutations, input fields) |
69
+
70
+ ### Entity (type-safe CRUD for 12 entity types)
71
+ | Tool | Purpose |
72
+ |------|---------|
73
+ | `entity.create` | Create entity with built-in validation and gotcha knowledge |
74
+ | `entity.update` | Status-aware update with optional transition validation |
75
+ | `entity.get` | Unified entity lookup by ID or ref with optional edge inclusion |
76
+
77
+ ### Workflow Lifecycle
78
+ | Tool | Purpose |
79
+ |------|---------|
80
+ | `workflow.upload` | Deploy workflow JSON with structure validation and dryRun support |
81
+ | `workflow.diff` | Compare two workflow versions (summary, detailed, or Mermaid) |
82
+ | `workflow.simulate` | Static prediction of rulesets matching status/event (planning only) |
83
+
84
+ ### Settings
85
+ | Tool | Purpose |
86
+ |------|---------|
87
+ | `setting.upsert` | Create or update a setting with upsert semantics |
88
+ | `setting.bulkUpsert` | Batch create/update up to 50 settings |
89
+
90
+ ### Environment
91
+ | Tool | Purpose |
92
+ |------|---------|
93
+ | `environment.discover` | Full environment snapshot (retailer, locations, networks, catalogues, workflows, settings) |
94
+ | `environment.validate` | Pre-flight checks (auth, retailer, locations, inventory, workflows) |
95
+
96
+ ### Test
97
+ | Tool | Purpose |
98
+ |------|---------|
99
+ | `test.assert` | Assert entity state with optional polling (status, attributes, edge counts) |
100
+
101
+ ### Metrics
102
+ | Tool | Purpose |
103
+ |------|---------|
104
+ | `metrics.query` | Raw PromQL via GraphQL proxy |
105
+ | `metrics.healthCheck` | Single-call health assessment with anomaly detection |
106
+ | `metrics.sloReport` | SLO snapshot (volume, failure rate, latency) |
107
+ | `metrics.labelCatalog` | Discover available metric labels and values |
108
+ | `metrics.topEvents` | Aggregate event analytics within a time window |
109
+
110
+ ### Batch Ingestion
111
+ | Tool | Purpose |
112
+ |------|---------|
55
113
  | `batch.create` | Create batch ingestion job |
56
114
  | `batch.send` | Send records to batch job |
57
115
  | `batch.status` | Check batch job status |
116
+ | `batch.batchStatus` | Check specific batch within a job |
58
117
  | `batch.results` | Get batch job results |
118
+
119
+ ### Webhook
120
+ | Tool | Purpose |
121
+ |------|---------|
59
122
  | `webhook.validate` | Validate webhook payload/signature |
60
123
 
61
124
  ## Cross-References for Event Questions