@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
@@ -1,181 +1,214 @@
1
- ---
2
- name: fluent-bootstrap
3
- description: Complete Fluent Commerce account bootstrap wizard. Use when setting up a new account from scratch, creating profiles, retailers, and installing reference modules with sample data. Triggers on "bootstrap account", "set up fluent", "new fluent account", "initialize account".
4
- user-invocable: true
5
- allowed-tools: Bash, Read, Write, Edit, Glob, Grep
6
- argument-hint: [profile-name] [retailer-ref]
7
- ---
8
-
9
- # Fluent Account Bootstrap
10
-
11
- Complete account setup from profile creation to sample data installation.
12
-
13
- ## Planning Gate
14
-
15
- **Before bootstrapping any account, write a plan using the template from `PLAN_TEMPLATE.md` in the `fluent-feature-plan` skill.** Account bootstrap is a high-impact operation.
16
-
17
- **Bootstrap-specific emphasis ensure these are covered:**
18
-
19
- 1. **Business Context (Section 1)** purpose of this account; sandbox/dev/staging/prod
20
- 2. **Scope (Section 2)**profile name, base URL, auth method
21
- 3. **Impacted retailers (Section 4.8)** retailer ref, trading name, type; confirm NOT production
22
- 4. **Detailed Design (Section 5)** reference modules to install (with versions), sample data to load
23
- 5. **GraphQL operations (Section 4.7)** — mutations for retailer creation, module installation
24
- 6. **Deployment Sequence (Section 9)** profile retailer modules sample data order
25
- 7. **Risks (Section 7)** — high-impact: confirm environment; note what's irreversible
26
-
27
- **Write the plan to:** `accounts/<PROFILE>/plans/<YYYY-MM-DD>-bootstrap-<slug>.md`. Set `Status: PENDING`.
28
-
29
- Present the full plan content to the user and wait for approval before proceeding. 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
-
31
- ## When to Use
32
-
33
- - Setting up a new Fluent Commerce account from scratch
34
- - User asks to "bootstrap", "set up new account", "initialize fluent account"
35
- - Creating a complete B2C or B2B implementation environment
36
-
37
- ## Prerequisites Checklist
38
-
39
- Before starting, gather:
40
- - [ ] Account ID
41
- - [ ] Base URL (e.g., `https://account.sandbox.api.fluentretail.com`)
42
- - [ ] Admin username & password
43
- - [ ] Client secret
44
- - [ ] Retailer reference & admin email
45
-
46
- ## Cross-Platform Command Notes
47
-
48
- - Fluent CLI commands are portable across macOS, Linux, and Windows.
49
- - Use `rg` for placeholder scans because it works consistently in Bash, zsh, and PowerShell.
50
-
51
- ## Bootstrap Workflow
52
-
53
- ### Phase 1: Profile & Retailer Setup
54
-
55
- ```bash
56
- # 1. Create profile
57
- fluent profile create <profile-name> \
58
- --id <account-id> \
59
- --base-url <base-url> \
60
- --username <username> \
61
- --password <password> \
62
- --client-secret <client-secret>
63
-
64
- # 2. Verify profile
65
- fluent profile list
66
- fluent profile active
67
-
68
- # 3. Create retailer
69
- fluent retailer create <retailer-ref> \
70
- --email <retailer-email> \
71
- --profile <profile-name>
72
-
73
- # 4. Set active context
74
- fluent profile use <profile-name> --retailer <retailer-ref>
75
- ```
76
-
77
- **Retailer creation gotchas:**
78
- - **Always use `fluent retailer create` CLI** — do NOT use the `createRetailer` GraphQL mutation. The mutation returns null and creates REST-only entities invisible to GraphQL. The CLI uses batch jobs to create fully-initialized retailers.
79
- - After creating a retailer, add a retailer-scoped admin user via `fluent profile update` so you have credentials for REST API calls and retailer-scoped events.
80
- - Account-level users generate CREATE events with `retailerId=0`, which causes workflow routing mismatches. Use retailer-scoped users for operations that trigger workflows.
81
-
82
- ### Phase 2: Module Configuration
83
-
84
- ```bash
85
- # Generate config templates for each module
86
- fluent module config core --retailer <retailer-ref> --profile <profile-name>
87
- fluent module config fulfilment --retailer <retailer-ref> --profile <profile-name>
88
- fluent module config order --retailer <retailer-ref> --profile <profile-name>
89
- fluent module config inventory --retailer <retailer-ref> --profile <profile-name>
90
- ```
91
-
92
- **Generated files:** `module.config.<retailer>.<module>.json`
93
-
94
- **Common config tokens (placeholder -> example value):**
95
-
96
- | Token | Example Value | Used By |
97
- |-------|---------------|---------|
98
- | `[[retailer.id]]` | `1` | order, fulfilment, inventory |
99
- | `[[productCatalogue.ref]]` | `PC:MASTER:1` | order |
100
- | `[[network.ref.hd]]` | `B2C_HD_1` | order (home delivery routing) |
101
- | `[[network.ref.cc]]` | `B2C_CC_1` | order (click & collect routing) |
102
- | `[[virtualCatalogue.ref]]` | `BASE:1` | order (availability checks) |
103
- | `[[inventoryCatalogue.ref]]` | `DEFAULT:1` | inventory |
104
- | `[[order.validation.gracePeriodSeconds]]` | `3600` | order (cancel timeout) |
105
-
106
- **Check for unreplaced tokens:**
107
- ```bash
108
- rg '\[\[.*\]\]' module.config.*.json
109
- ```
110
-
111
- ```powershell
112
- # PowerShell
113
- Select-String -Path "module.config.*.json" -Pattern '\[\[.*\]\]'
114
- ```
115
-
116
- **WAIT for user to confirm configs are populated before continuing.**
117
-
118
- ### Phase 3: Module Installation
119
-
120
- ```bash
121
- # Install in dependency order
122
- fluent module install core --retailer <retailer-ref> --profile <profile-name>
123
-
124
- fluent module install fulfilment --retailer <retailer-ref> --profile <profile-name>
125
-
126
- fluent module install order \
127
- --config module.config.<retailer>.order.json \
128
- --retailer <retailer-ref> --profile <profile-name>
129
-
130
- fluent module install inventory \
131
- --config module.config.<retailer>.inventory.json \
132
- --retailer <retailer-ref> --profile <profile-name>
133
- ```
134
-
135
- **Optional: Sample Data**
136
- ```bash
137
- # Generate sample data config
138
- fluent module config https://downloads.fluentcommerce.com/v1.0.0/modules/fcx/b2c-sample-data/latest \
139
- --retailer <retailer-ref> --profile <profile-name>
140
-
141
- # Install sample data (after populating config)
142
- fluent module install https://downloads.fluentcommerce.com/v1.0.0/modules/fcx/b2c-sample-data/latest \
143
- --config module.config.<retailer>.b2c-sample-data.json \
144
- --retailer <retailer-ref> --profile <profile-name>
145
- ```
146
-
147
- ### Phase 4: Verification
148
-
149
- ```bash
150
- # Verify installed modules
151
- fluent module list -p <profile-name>
152
-
153
- # Verify workflows deployed
154
- fluent workflow list -p <profile-name> -r <retailer-ref>
155
-
156
- # Export for API testing
157
- fluent profile export <profile-name> --format postman --retailer <retailer-ref>
158
- ```
159
-
160
- ## Success Criteria
161
-
162
- - [ ] Profile created and active
163
- - [ ] Retailer created
164
- - [ ] All reference modules installed
165
- - [ ] Sample data installed (if requested)
166
- - [ ] Workflows visible in list
167
- - [ ] Postman environment exported
168
-
169
- ## Common Errors
170
-
171
- | Error | Solution |
172
- |-------|----------|
173
- | Profile already exists | Use different name or `fluent profile update` |
174
- | Authentication failed | Verify credentials |
175
- | Module dependencies not met | Install `core` first, then others in order |
176
- | Config missing keys | Re-run `fluent module config` |
177
-
178
- ## Output Artifacts
179
-
180
- - `module.config.<retailer>.*.json` - Configuration files
181
- - `postman.<profile>.<retailer>.environment.json` - Postman export
1
+ ---
2
+ name: fluent-bootstrap
3
+ description: Complete Fluent Commerce account bootstrap wizard. Use when setting up a new account from scratch, creating profiles, retailers, and installing reference modules with sample data. Triggers on "bootstrap account", "set up fluent", "new fluent account", "initialize account".
4
+ user-invocable: true
5
+ allowed-tools: Bash, Read, Write, Edit, Glob, Grep
6
+ argument-hint: [profile-name] [retailer-ref]
7
+ ---
8
+
9
+ # Fluent Account Bootstrap
10
+
11
+ Complete account setup from profile creation to sample data installation.
12
+
13
+ ## Planning Gate
14
+
15
+ ### Pre-flight: Plan Verification
16
+
17
+ Before proceeding, check for an existing approved plan:
18
+
19
+ 1. **Search** `accounts/<PROFILE>/features/*/status.json` for an entry with `plan: "APPROVED"` that covers this bootstrap, OR check `accounts/<PROFILE>/tasks/` for a task plan with `Status: APPROVED`
20
+ 2. **If multi-artifact work** (bootstrap + custom rules + workflows): 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 relevant sections
22
+ 4. **If no plan found:** Continue to the Planning Gate below to write a plan for this skill
23
+
24
+ **Before bootstrapping any account, write a plan using the template from `PLAN_TEMPLATE.md` in the `fluent-feature-plan` skill.** Account bootstrap is a high-impact operation.
25
+
26
+ **Bootstrap-specific emphasis — ensure these are covered:**
27
+
28
+ 1. **Business Context (Section 1)** — purpose of this account; sandbox/dev/staging/prod
29
+ 2. **Scope (Section 2)** profile name, base URL, auth method
30
+ 3. **Impacted retailers (Section 4.8)** — retailer ref, trading name, type; confirm NOT production
31
+ 4. **Detailed Design (Section 5)** — reference modules to install (with versions), sample data to load
32
+ 5. **GraphQL operations (Section 4.7)** — mutations for retailer creation, module installation
33
+ 6. **Deployment Sequence (Section 9)** profile retailer → modules → sample data order
34
+ 7. **Risks (Section 7)** high-impact: confirm environment; note what's irreversible
35
+
36
+ **Write the plan to:** `accounts/<PROFILE>/tasks/<YYYY-MM-DD>-bootstrap-<slug>.md`. Set `Status: PENDING`.
37
+
38
+ Present the full plan content to the user and wait for approval before proceeding. On approval, update the file to `Status: APPROVED`. If the user says "just do it", proceed directly (still write the file for audit trail).
39
+
40
+ > **New to Fluent CLI?** Start with `/fluent-cli-index` for a complete command reference and routing guide.
41
+
42
+ ## Handoff Protocol
43
+
44
+ ### Signals emitted by this skill
45
+
46
+ | Signal | Condition | Example |
47
+ |--------|-----------|---------|
48
+ | `-> READY: <path>` | Account bootstrapped | `-> READY: Account HMDEV bootstrapped with retailer HM_TEST` |
49
+ | `-> NEXT: /fluent-<skill>` | Ready for module/workflow deploy | `-> NEXT: /fluent-module-deploy` |
50
+ | `-> BLOCKED: <reason>` | Cannot proceed | `-> BLOCKED: ENV_UNREACHABLE — Cannot connect to Fluent environment` |
51
+
52
+ ### Error codes
53
+
54
+ | Code | Condition | Recovery |
55
+ |------|-----------|----------|
56
+ | `PLAN_REQUIRED` | Bootstrap attempted without approved plan | Run `/fluent-feature-plan` first |
57
+ | `ENV_UNREACHABLE` | Cannot connect to Fluent environment | Check credentials and profile via `/fluent-profile` |
58
+
59
+ ## When to Use
60
+
61
+ - Setting up a new Fluent Commerce account from scratch
62
+ - User asks to "bootstrap", "set up new account", "initialize fluent account"
63
+ - Creating a complete B2C or B2B implementation environment
64
+
65
+ ## Prerequisites Checklist
66
+
67
+ Before starting, gather:
68
+ - [ ] Account ID
69
+ - [ ] Base URL (e.g., `https://account.sandbox.api.fluentretail.com`)
70
+ - [ ] Admin username & password
71
+ - [ ] Client secret
72
+ - [ ] Retailer reference & admin email
73
+
74
+ ## Cross-Platform Command Notes
75
+
76
+ - Fluent CLI commands are portable across macOS, Linux, and Windows.
77
+ - Use `rg` for placeholder scans because it works consistently in Bash, zsh, and PowerShell.
78
+
79
+ ## Bootstrap Workflow
80
+
81
+ ### Phase 1: Profile & Retailer Setup
82
+
83
+ ```bash
84
+ # 1. Create profile
85
+ fluent profile create <profile-name> \
86
+ --id <account-id> \
87
+ --base-url <base-url> \
88
+ --username <username> \
89
+ --password <password> \
90
+ --client-secret <client-secret>
91
+
92
+ # 2. Verify profile
93
+ fluent profile list
94
+ fluent profile active
95
+
96
+ # 3. Create retailer
97
+ # FINAL CONFIRMATION — Retailer creation is IRREVERSIBLE.
98
+ # Before executing, confirm with the user:
99
+ # "You are about to create retailer '<retailer-ref>' on <base-url>.
100
+ # This cannot be undone. Proceed? (yes/no)"
101
+ # Only proceed after explicit "yes" confirmation.
102
+ fluent retailer create <retailer-ref> \
103
+ --email <retailer-email> \
104
+ --profile <profile-name>
105
+
106
+ # 4. Set active context
107
+ fluent profile use <profile-name> --retailer <retailer-ref>
108
+ ```
109
+
110
+ **Retailer creation gotchas:**
111
+ - **Always use `fluent retailer create` CLI** — do NOT use the `createRetailer` GraphQL mutation. The mutation returns null and creates REST-only entities invisible to GraphQL. The CLI uses batch jobs to create fully-initialized retailers.
112
+ - After creating a retailer, add a retailer-scoped admin user via `fluent profile update` so you have credentials for REST API calls and retailer-scoped events.
113
+ - Account-level users generate CREATE events with `retailerId=0`, which causes workflow routing mismatches. Use retailer-scoped users for operations that trigger workflows.
114
+
115
+ ### Phase 2: Module Configuration
116
+
117
+ ```bash
118
+ # Generate config templates for each module
119
+ fluent module config core --retailer <retailer-ref> --profile <profile-name>
120
+ fluent module config fulfilment --retailer <retailer-ref> --profile <profile-name>
121
+ fluent module config order --retailer <retailer-ref> --profile <profile-name>
122
+ fluent module config inventory --retailer <retailer-ref> --profile <profile-name>
123
+ ```
124
+
125
+ **Generated files:** `module.config.<retailer>.<module>.json`
126
+
127
+ **Common config tokens (placeholder -> example value):**
128
+
129
+ | Token | Example Value | Used By |
130
+ |-------|---------------|---------|
131
+ | `[[retailer.id]]` | `1` | order, fulfilment, inventory |
132
+ | `[[productCatalogue.ref]]` | `PC:MASTER:1` | order |
133
+ | `[[network.ref.hd]]` | `B2C_HD_1` | order (home delivery routing) |
134
+ | `[[network.ref.cc]]` | `B2C_CC_1` | order (click & collect routing) |
135
+ | `[[virtualCatalogue.ref]]` | `BASE:1` | order (availability checks) |
136
+ | `[[inventoryCatalogue.ref]]` | `DEFAULT:1` | inventory |
137
+ | `[[order.validation.gracePeriodSeconds]]` | `3600` | order (cancel timeout) |
138
+
139
+ **Check for unreplaced tokens:**
140
+ ```bash
141
+ rg '\[\[.*\]\]' module.config.*.json
142
+ ```
143
+
144
+ ```powershell
145
+ # PowerShell
146
+ Select-String -Path "module.config.*.json" -Pattern '\[\[.*\]\]'
147
+ ```
148
+
149
+ **WAIT for user to confirm configs are populated before continuing.**
150
+
151
+ ### Phase 3: Module Installation
152
+
153
+ ```bash
154
+ # Install in dependency order
155
+ fluent module install core --retailer <retailer-ref> --profile <profile-name>
156
+
157
+ fluent module install fulfilment --retailer <retailer-ref> --profile <profile-name>
158
+
159
+ fluent module install order \
160
+ --config module.config.<retailer>.order.json \
161
+ --retailer <retailer-ref> --profile <profile-name>
162
+
163
+ fluent module install inventory \
164
+ --config module.config.<retailer>.inventory.json \
165
+ --retailer <retailer-ref> --profile <profile-name>
166
+ ```
167
+
168
+ **Optional: Sample Data**
169
+ ```bash
170
+ # Generate sample data config
171
+ fluent module config https://downloads.fluentcommerce.com/v1.0.0/modules/fcx/b2c-sample-data/latest \
172
+ --retailer <retailer-ref> --profile <profile-name>
173
+
174
+ # Install sample data (after populating config)
175
+ fluent module install https://downloads.fluentcommerce.com/v1.0.0/modules/fcx/b2c-sample-data/latest \
176
+ --config module.config.<retailer>.b2c-sample-data.json \
177
+ --retailer <retailer-ref> --profile <profile-name>
178
+ ```
179
+
180
+ ### Phase 4: Verification
181
+
182
+ ```bash
183
+ # Verify installed modules
184
+ fluent module list -p <profile-name>
185
+
186
+ # Verify workflows deployed
187
+ fluent workflow list -p <profile-name> -r <retailer-ref>
188
+
189
+ # Export for API testing
190
+ fluent profile export <profile-name> --format postman --retailer <retailer-ref>
191
+ ```
192
+
193
+ ## Success Criteria
194
+
195
+ - [ ] Profile created and active
196
+ - [ ] Retailer created
197
+ - [ ] All reference modules installed
198
+ - [ ] Sample data installed (if requested)
199
+ - [ ] Workflows visible in list
200
+ - [ ] Postman environment exported
201
+
202
+ ## Common Errors
203
+
204
+ | Error | Solution |
205
+ |-------|----------|
206
+ | Profile already exists | Use different name or `fluent profile update` |
207
+ | Authentication failed | Verify credentials |
208
+ | Module dependencies not met | Install `core` first, then others in order |
209
+ | Config missing keys | Re-run `fluent module config` |
210
+
211
+ ## Output Artifacts
212
+
213
+ - `module.config.<retailer>.*.json` - Configuration files
214
+ - `postman.<profile>.<retailer>.environment.json` - Postman export
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: fluent-cli-index
3
- description: Master router for Fluent Commerce CLI tasks. Classifies requests by CLI command family and delegates to the right Fluent CLI skill (profile, retailer, module, workflow, settings, bootstrap, and MCP setup). Use when users ask broad Fluent CLI questions or mixed CLI tasks.
3
+ description: Master router for Fluent Commerce CLI tasks. Classifies requests by CLI command family and delegates to the right Fluent CLI skill (profile, retailer, module, workflow, settings, bootstrap, and MCP setup). Use when users ask broad Fluent CLI questions or mixed CLI tasks. Triggers on "fluent cli", "cli help", "how do I use fluent", "which cli command", "cli overview".
4
4
  user-invocable: true
5
5
  allowed-tools: Bash, Read, Write, Edit, Glob, Grep
6
6
  argument-hint: [request-summary] [--profile name] [--retailer ref]
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: fluent-cli-mcp-cicd
3
- description: Fluent CLI MCP and CI/CD operations guide. Use for configuring `fluent mcp server --stdio`, validating MCP connectivity, and applying safe module deployment patterns in automation pipelines.
3
+ description: Fluent CLI MCP and CI/CD operations guide. Use for configuring `fluent mcp server --stdio`, validating MCP connectivity, and applying safe module deployment patterns in automation pipelines. Triggers on "mcp cicd", "ci cd pipeline", "automation pipeline", "mcp server setup", "fluent mcp stdio".
4
4
  user-invocable: true
5
5
  allowed-tools: Bash, Read, Write, Edit, Glob, Grep
6
6
  argument-hint: [mcp|cicd] [--profile name] [--retailer ref]
@@ -10,6 +10,8 @@ argument-hint: [mcp|cicd] [--profile name] [--retailer ref]
10
10
 
11
11
  Configure the official Fluent MCP server via CLI and apply guardrails for CI/CD module delivery.
12
12
 
13
+ > **New to Fluent CLI?** Start with `/fluent-cli-index` for a complete command reference and routing guide.
14
+
13
15
  ## When to Use
14
16
 
15
17
  - User asks to enable `fluent mcp` in an IDE/client
@@ -68,6 +70,120 @@ npx @fluentcommerce/ai-skills flow-run \
68
70
  --deploy --yes
69
71
  ```
70
72
 
73
+ ## CI/CD Pipeline Templates
74
+
75
+ ### GitHub Actions
76
+
77
+ ```yaml
78
+ name: Fluent Module Deploy
79
+ on:
80
+ push:
81
+ branches: [main]
82
+ paths: ['plugins/**', 'resources/**']
83
+
84
+ jobs:
85
+ deploy:
86
+ runs-on: ubuntu-latest
87
+ steps:
88
+ - uses: actions/checkout@v4
89
+
90
+ - name: Setup Java
91
+ uses: actions/setup-java@v4
92
+ with: { distribution: temurin, java-version: 17 }
93
+
94
+ - name: Setup Node
95
+ uses: actions/setup-node@v4
96
+ with: { node-version: 20 }
97
+
98
+ - name: Install Fluent CLI
99
+ run: npm i -g @fluentcommerce/cli
100
+
101
+ - name: Create profile
102
+ run: |
103
+ fluent profile create deploy-target \
104
+ --id ${{ secrets.FLUENT_ACCOUNT_ID }} \
105
+ --base-url ${{ secrets.FLUENT_BASE_URL }} \
106
+ --username ${{ secrets.FLUENT_USERNAME }} \
107
+ --password ${{ secrets.FLUENT_PASSWORD }} \
108
+ --client-secret ${{ secrets.FLUENT_CLIENT_SECRET }}
109
+
110
+ - name: Build module
111
+ run: cd plugins && mvn clean install -q
112
+
113
+ - name: Pre-deploy diagnostics
114
+ run: |
115
+ npx @fluentcommerce/ai-skills flow-run \
116
+ --profile deploy-target \
117
+ --retailer ${{ vars.RETAILER_REF }} \
118
+ --module dist/module.zip
119
+
120
+ - name: Deploy module
121
+ run: |
122
+ fluent module install dist/module.zip \
123
+ -p deploy-target \
124
+ -r ${{ vars.RETAILER_REF }}
125
+ ```
126
+
127
+ ### GitLab CI
128
+
129
+ ```yaml
130
+ fluent-deploy:
131
+ image: node:20
132
+ stage: deploy
133
+ only:
134
+ changes: [plugins/**, resources/**]
135
+ before_script:
136
+ - npm i -g @fluentcommerce/cli
137
+ - apt-get update && apt-get install -y maven
138
+ script:
139
+ - fluent profile create deploy-target --id $FLUENT_ACCOUNT_ID --base-url $FLUENT_BASE_URL --username $FLUENT_USERNAME --password $FLUENT_PASSWORD --client-secret $FLUENT_CLIENT_SECRET
140
+ - cd plugins && mvn clean install -q && cd ..
141
+ - npx @fluentcommerce/ai-skills flow-run --profile deploy-target --retailer $RETAILER_REF --module dist/module.zip
142
+ - fluent module install dist/module.zip -p deploy-target -r $RETAILER_REF
143
+ ```
144
+
145
+ **Key principles:**
146
+ - Never store credentials in pipeline files — use CI/CD secrets/variables
147
+ - Always run `flow-run` (diagnostics) before `module install` (deploy)
148
+ - Separate build and deploy stages for rollback granularity
149
+ - Use `--yes` flag only after diagnostics pass
150
+
151
+ ## CI/CD Pipeline Template
152
+
153
+ Minimal GitHub Actions workflow for module validation and deployment:
154
+
155
+ ```yaml
156
+ name: Fluent Deploy
157
+ on:
158
+ push:
159
+ branches: [main]
160
+ paths: ['modules/**']
161
+
162
+ jobs:
163
+ deploy:
164
+ runs-on: ubuntu-latest
165
+ steps:
166
+ - uses: actions/checkout@v4
167
+ - uses: actions/setup-node@v4
168
+ with: { node-version: '20' }
169
+ - run: npm install -g @fluentcommerce/cli
170
+ - name: Validate
171
+ run: fluent module validate --path ${{ github.workspace }}/modules/$MODULE_NAME
172
+ - name: Pre-deploy check
173
+ run: |
174
+ npx @fluentcommerce/ai-skills flow-run --profile $FLUENT_PROFILE --retailer $RETAILER_REF --check pre-deploy
175
+ - name: Deploy (requires explicit approval)
176
+ if: github.ref == 'refs/heads/main'
177
+ run: |
178
+ fluent module install --path ${{ github.workspace }}/modules/$MODULE_NAME -p $FLUENT_PROFILE -r $RETAILER_REF
179
+ env:
180
+ FLUENT_PROFILE: ${{ secrets.FLUENT_PROFILE }}
181
+ RETAILER_REF: ${{ secrets.RETAILER_REF }}
182
+ MODULE_NAME: ${{ vars.MODULE_NAME }}
183
+ ```
184
+
185
+ Adapt for GitLab CI by replacing `jobs:` with `stages:` and `steps:` with `script:`. The key principle is: validate -> pre-deploy-check -> deploy, with explicit approval gates between stages.
186
+
71
187
  ## Troubleshooting
72
188
 
73
189
  | Issue | Likely Cause | Fix |