@fluentcommerce/ai-skills 0.13.0 → 0.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/README.md +14 -12
  2. package/bin/cli.mjs +29 -2
  3. package/content/cli/skills/fluent-connect/SKILL.md +57 -2
  4. package/content/cli/skills/fluent-profile/SKILL.md +35 -5
  5. package/content/dev/agents/fluent-backend-dev.md +2 -2
  6. package/content/dev/agents/fluent-dev.md +1 -1
  7. package/content/dev/skills/fluent-custom-code/SKILL.md +1 -1
  8. package/content/dev/skills/fluent-data-module-scaffold/SKILL.md +5 -5
  9. package/content/dev/skills/fluent-event-api/SKILL.md +1 -1
  10. package/content/dev/skills/{fluent-source-onboard → fluent-module-convert}/SKILL.md +223 -24
  11. package/content/dev/skills/fluent-module-validate/SKILL.md +6 -6
  12. package/content/dev/skills/fluent-mystique-builder/SKILL.md +1 -1
  13. package/content/dev/skills/fluent-mystique-scaffold/SDK_REFERENCE.md +2 -2
  14. package/content/dev/skills/fluent-mystique-scaffold/SKILL.md +1 -1
  15. package/content/dev/skills/fluent-mystique-scaffold/TEMPLATES.md +1 -1
  16. package/content/dev/skills/fluent-retailer-config/SKILL.md +2 -2
  17. package/content/dev/skills/fluent-scope-plan/SKILL.md +1 -1
  18. package/content/dev/skills/fluent-transition-api/SKILL.md +1 -1
  19. package/content/dev/skills/fluent-ui-test/SKILL.md +8 -7
  20. package/content/dev/skills/fluent-workspace-tree/SKILL.md +2 -2
  21. package/content/knowledge/index.md +3 -3
  22. package/content/knowledge/platform/module-structure.md +5 -5
  23. package/content/knowledge/platform/mystique-routing.md +6 -3
  24. package/content/knowledge/platform/permissions-and-contexts.md +2 -2
  25. package/content/knowledge/platform/rule-test-patterns.md +1 -1
  26. package/docs/01-first-session.md +175 -0
  27. package/docs/02-prompt-guide.md +246 -0
  28. package/docs/03-use-cases.md +1179 -0
  29. package/docs/04-onboarding-plan.md +355 -0
  30. package/docs/05-getting-started.md +262 -0
  31. package/docs/06-dev-workflow.md +1040 -0
  32. package/docs/INDEX.md +40 -0
  33. package/docs/agents-and-skills-guide.md +199 -0
  34. package/docs/capability-map.md +165 -0
  35. package/docs/chrome-devtools-mcp-reference.md +400 -0
  36. package/docs/fluent-ai-skills-reference.md +1351 -0
  37. package/docs/manifest-safety.md +79 -0
  38. package/docs/mcp-servers.md +209 -0
  39. package/docs/workflow-reference.md +167 -0
  40. package/lib/fluent-brand.css +55 -0
  41. package/metadata.json +7 -6
  42. package/package.json +12 -3
@@ -0,0 +1,1351 @@
1
+ # Fluent Commerce AI Skills & MCP Extension — Operational Reference
2
+
3
+ [![ai-skills](https://img.shields.io/npm/v/@fluentcommerce/ai-skills?label=ai-skills)](https://www.npmjs.com/package/@fluentcommerce/ai-skills) [![mcp-extn](https://img.shields.io/npm/v/@fluentcommerce/fluent-mcp-extn?label=mcp-extn)](https://www.npmjs.com/package/@fluentcommerce/fluent-mcp-extn)
4
+ > [!CAUTION]
5
+ > **🧪 EXPERIMENTAL — LABS PROJECT**
6
+ >
7
+ > This is **NOT production-ready**. It is an internal labs experiment under active development.
8
+ > No stability guarantees, no support, no warranty. Do NOT use in production without review.
9
+
10
+ > **This is the comprehensive single-document reference.** It covers architecture, MCP tools, feature lifecycle, and deployment in one file. If you prefer a guided path, start with [Your First Session](01-first-session.md) (20 min) then [Prompt Guide](02-prompt-guide.md) (10 min). See [INDEX.md](INDEX.md) for the full reading order.
11
+
12
+ > **Audience:** Fluent Commerce consultants, solution architects, and implementation partners.
13
+
14
+ ---
15
+
16
+ ## What this changes for you
17
+
18
+ | Before | After |
19
+ |--------|-------|
20
+ | Write workflow JSON by hand, look up field names | "Build an ORDER::RETURN workflow" — done in minutes |
21
+ | `grep` through 50 Java files to understand a feature | "Explain how Home Delivery works" — state diagrams + rules table |
22
+ | Copy-paste rule class boilerplate, wire annotations manually | "Create a rule called ValidateReturnWindow" — full class + test + module wiring |
23
+ | Manually query GraphQL + check event logs to debug an order | "Why is order HD-001 stuck in BOOKED?" — root cause + fix |
24
+ | Manually navigate manifest JSON to add a UI page | "Add an appeasement form to the order detail page" — validated JSON diff |
25
+ | Run deployment steps from a Confluence runbook by hand | "Deploy ORDER::HD to staging" — pre-flight gates → deploy → verify |
26
+
27
+ ---
28
+
29
+ ## Table of Contents
30
+
31
+ 1. [Overview](#1-overview)
32
+ 2. [Getting Started](#2-getting-started)
33
+ 3. [Architecture](#3-architecture)
34
+ 4. [MCP Server Setup](#4-mcp-server-setup)
35
+ 5. [What Can You Do? (Quick Reference)](#5-what-can-you-do)
36
+ 6. [Feature Lifecycle](#6-feature-lifecycle)
37
+ 7. [Development Workflow](#7-development-workflow)
38
+ 8. [MCP Extension Tools](#8-mcp-extension-tools)
39
+ 9. [Deployment & Promotion Runbook](#9-deployment-and-promotion-runbook)
40
+ 10. [Troubleshooting](#10-troubleshooting)
41
+ 11. [CLI Reference](#11-cli-reference)
42
+ 12. [Appendix: Capability Ownership Map](#12-appendix-capability-ownership-map)
43
+ 13. [Workspace Setup](#13-workspace-setup)
44
+
45
+ ---
46
+
47
+ ## 1. Overview
48
+
49
+ ### What is this?
50
+
51
+ AI coding assistants are general-purpose — they don't know Fluent Commerce. **Fluent AI Skills** injects Fluent-specific domain knowledge into Claude Code and, in the skills-first path, Codex so the assistant can analyze workflows, scaffold rules, generate rule tests, run E2E tests, debug failed events, and manage settings — all through natural language.
52
+
53
+ ```mermaid
54
+ graph LR
55
+ U["👤 You"] -->|"natural language"| IDE["Claude Code"]
56
+ IDE -->|"skills (domain knowledge)"| AI["AI Agent"]
57
+ AI -->|"MCP tools (live API)"| FC["Fluent Commerce"]
58
+ AI -->|"browser automation"| UI["Fluent UX Apps"]
59
+ ```
60
+
61
+ ### Where do I get it?
62
+
63
+ Both packages are on the **public npm registry** — no special tokens or registry config needed:
64
+
65
+ ```bash
66
+ # This is all you need:
67
+ npx @fluentcommerce/ai-skills install --profile YOUR_PROFILE
68
+ # Optional: add --profile-retailer YOUR_RETAILER_REF if you know the retailer ref
69
+ # (find it with: fluent profile retailers YOUR_PROFILE)
70
+ ```
71
+
72
+ | Package | npm |
73
+ |---------|-----|
74
+ | `@fluentcommerce/ai-skills` | [npmjs.com/package/@fluentcommerce/ai-skills](https://www.npmjs.com/package/@fluentcommerce/ai-skills) |
75
+ | `@fluentcommerce/fluent-mcp-extn` | [npmjs.com/package/@fluentcommerce/fluent-mcp-extn](https://www.npmjs.com/package/@fluentcommerce/fluent-mcp-extn) |
76
+
77
+ ### Key terms
78
+
79
+ | Term | Meaning |
80
+ |------|---------|
81
+ | **Profile** | A named Fluent CLI configuration pointing to an account (API URL + credentials). Created with `fluent profile create MY_PROFILE --id <id> --username <user> --password <pass> --client-secret <secret> --base-url <url>`. Used throughout as `<PROFILE>`. |
82
+ | **Retailer** | A tenant within the Fluent account. Most operations are retailer-scoped. The Fluent CLI accepts either a retailer **ref** (e.g., `MY_RETAILER`) or a **display name** (e.g., `"My Retailer"`) — it resolves both. Find yours with `fluent profile retailers YOUR_PROFILE`. |
83
+ | **Skill** | A structured instruction file that teaches the AI a specific Fluent task. Installed into Claude Code by default, or into Codex with `--target codex`. Claude commonly uses `/fluent-<name>` slash commands; Codex uses the same skills through natural-language prompts. |
84
+ | **MCP** | Model Context Protocol — an open standard letting AI assistants call external tools. Gives the AI live access to Fluent APIs (query GraphQL, send events, read workflows, etc.). |
85
+
86
+ ### What's included
87
+
88
+ | Component | Description |
89
+ |-----------|-------------|
90
+ | **@fluentcommerce/ai-skills** | 60+ skills across CLI, dev, MCP, and RFL groups, 6 agents, plus packaged platform knowledge docs |
91
+ | **@fluentcommerce/fluent-mcp-extn** | MCP extension server — 55+ tools for live Fluent API interaction |
92
+ | **fluent-mcp** (official) | Official Fluent CLI MCP server — workflows and GraphQL |
93
+ | **chrome-devtools** | Browser automation for UI testing (optional) |
94
+
95
+ **Installable skill groups:** CLI (~10) · Dev (~50) · RFL (1) · MCP (2)
96
+
97
+ **Supported IDE:** Claude Code (primary) and Codex (experimental skills-first flow)
98
+
99
+ ---
100
+
101
+ ## 2. Getting Started
102
+
103
+ > **Full walkthrough:** See the [Getting Started Guide](05-getting-started.md) for a hands-on tutorial with your first debug and first feature build.
104
+
105
+ ```mermaid
106
+ graph LR
107
+ A["1. Install Fluent CLI<br/>docs.fluentcommerce.com/building-blocks/fluent-cli-package"] --> B["2. Create profile<br/>fluent profile create MY_PROFILE"]
108
+ B --> C["3. Install skills<br/>npx @fluentcommerce/ai-skills install<br/>--profile MY_PROFILE"]
109
+ C --> D["4. Connect workspace<br/>/fluent-connect"]
110
+ D --> E["5. Start working<br/>Explain how HD works"]
111
+ ```
112
+
113
+ **Install** (one command in an empty directory):
114
+ ```bash
115
+ mkdir fluent-ai-workspace && cd fluent-ai-workspace
116
+ npx @fluentcommerce/ai-skills install --profile YOUR_PROFILE
117
+ ```
118
+
119
+ If you already know the retailer ref, add `--profile-retailer YOUR_RETAILER_REF`. If you only know the trading/display name, omit that flag and let `fluent-connect` discover the retailer interactively.
120
+
121
+ **Connect** (in Claude Code): `/fluent-connect` — downloads workflows, scans source, decompiles JARs, builds rule inventory.
122
+
123
+ **Connect** (in Codex): `Use the fluent-connect skill to connect this workspace with profile YOUR_PROFILE.`
124
+
125
+ > **Expect first-run permission prompts.** The initial connect/bootstrap flow runs shell commands, reads `~/.fluentcommerce/`, and writes `.mcp.json` plus `accounts/` workspace files.
126
+
127
+ **Start working:** `"Explain how Home Delivery works"`, `"Why is order HD-12345 stuck?"`, or `"Help me define use cases for return orders"`.
128
+
129
+ ### Account directory reference
130
+
131
+ Directories are created by `/fluent-connect` on first connect (with README placeholders), then populated by individual skills.
132
+
133
+ Install also prepares workspace-root references outside `accounts/<PROFILE>/`: packaged `knowledge/`, packaged `docs/`, plus starter `CLAUDE.md` and `AGENTS.md` instruction files.
134
+
135
+ | Directory | Created by | When | Persistent? | Contents |
136
+ |-----------|-----------|------|:-----------:|----------|
137
+ | `SOURCE/backend/` | `/fluent-connect`, `/fluent-module-scaffold` | On connect (clones repos) or scaffold | Yes | Java Maven projects: `pom.xml`, `src/main/java/`, `module.json` |
138
+ | `SOURCE/frontend/` | `/fluent-mystique-scaffold` | When scaffolding a custom SDK component | Yes | TypeScript/React projects: `package.json`, `src/`, `@types/mystique/` |
139
+ | `workflows/<RETAILER>/` | `/fluent-connect`, `fluent workflow download` | On connect or manual download | Yes | One JSON per workflow + `workflow-context.json` (tracks download timestamp) |
140
+ | `features/<slug>/` | `/fluent-use-case-discover` | When starting a new feature | Yes | `spec.md`, `plan.md`, `architecture.md`, `status.json` |
141
+ | `tasks/` | `/fluent-module-scaffold`, `/fluent-bootstrap` | When planning operational tasks (not features) | Yes | Markdown plans: `<YYYY-MM-DD>-<skill>-<slug>.md` |
142
+ | `reports/` | `/fluent-build`, `/fluent-pre-deploy-check`, `/fluent-e2e-test`, `/fluent-ui-test`, `/fluent-ui-record`, `/fluent-frontend-build`, `/fluent-frontend-review` | After each skill run | **Ephemeral** — regenerated each run | Subdirs per skill: `build/`, `pre-deploy/`, `e2e-test/`, `ui-test/`, `ui-record/`, `frontend-build/`, `frontend-review/` |
143
+ | `analysis/` | `/fluent-custom-code`, `/fluent-implementation-map`, `/fluent-connection-analysis`, `/fluent-workflow-analyzer` | When analyzing the account | **Persistent** — reused across sessions | Subdirs: `code/`, `modules/`, `topology/`, `settings/`, `scope/`, `mystique/` |
144
+ | `feedback/` | Pilot skills (workflow-builder, workflow-deploy, settings, rule-scaffold) | After each skill execution | Yes (append-only) | `<skill>.jsonl` + `index.json` — learnings from past runs |
145
+ | `sessions/` | `/fluent-session export` | When user exports a session audit | Yes | JSON audit trail files |
146
+ | `settings/backups/` | `/fluent-settings` | Before any non-manifest setting change | Yes | JSON snapshots of previous setting values |
147
+ | `manifests/backups/` | `/fluent-mystique-builder`, `/fluent-settings` | Before any manifest setting change | Yes | `<setting-name>_<YYYY-MM-DD>.json` — mandatory safety backup |
148
+ | `accounts/<PROFILE>/knowledge/` | `/fluent-knowledge-init`, progressive capture | Account-specific conventions, business rules, test data | Yes | `client/` (business rules, data model, integrations, test data), naming-conventions.md, coding-standards.md |
149
+ | `workspace-state.json` | `/fluent-connect` | On first connect | Yes | Profile name, retailer ref, API URL, last connect timestamp |
150
+ | `feature-dashboard.html` | `/fluent-feature-status`, auto-start | When feature work begins | Regenerated on every file change | Self-contained HTML with vendor libs inline. Open in browser for live view. |
151
+
152
+ ---
153
+
154
+ ## 3. Architecture
155
+
156
+ ### Three-Agent System
157
+
158
+ ```mermaid
159
+ graph TB
160
+ USER["You (natural language)"] --> DEV
161
+
162
+ subgraph "AI Agents"
163
+ DEV["fluent-dev<br/><b>Orchestrator</b><br/>Routes, plans, cross-domain"]
164
+ BE["fluent-backend-dev<br/>Workflows, rules, rule tests,<br/>settings, events, deployment"]
165
+ FE["fluent-frontend-dev<br/>Manifests, SDK components,<br/>UI testing, validation"]
166
+ DEV --> BE
167
+ DEV --> FE
168
+ end
169
+
170
+ subgraph "MCP Servers (live API access)"
171
+ M1["fluent-mcp<br/><i>Workflows, GraphQL</i>"]
172
+ M2["fluent-mcp-extn<br/><i>55+ tools: events, batch,<br/>metrics, entities, settings, cache</i>"]
173
+ M3["chrome-devtools<br/><i>Browser UI testing</i>"]
174
+ end
175
+
176
+ BE --> M1 & M2
177
+ FE --> M1 & M2 & M3
178
+ ```
179
+
180
+ **Routing is automatic:** Mention workflows/rules/Java → backend agent. Mention manifests/pages/UI → frontend agent. Both → orchestrator creates unified plan.
181
+
182
+ ### MCP Servers
183
+
184
+ Three servers auto-configured by the installer (core). Additional servers can be added for specific needs (optional).
185
+
186
+ | Server | Purpose | Core? |
187
+ |--------|---------|:-----:|
188
+ | **fluent-mcp** | Official CLI MCP — workflows, GraphQL | Yes |
189
+ | **fluent-mcp-extn** | Extension — 55+ tools: events, batch, metrics, entities, settings, cache, connections, planning | Yes |
190
+ | **chrome-devtools** | Browser automation — screenshots, clicks, DOM inspection. Use `--headless` for CI. | Yes |
191
+ | chrome-manual | Attach to existing Chrome sessions with cookies/auth | No |
192
+ | bitbucket | Bitbucket code repository access | No |
193
+ | vercel / S3 | Frontend hosting/deployment | No |
194
+
195
+ ### Compatibility
196
+
197
+ | Component | Minimum version |
198
+ |-----------|----------------|
199
+ | Fluent Commerce platform | v4.80+ |
200
+ | Fluent CLI | v2.0+ |
201
+ | Node.js | 18+ (20+ recommended) |
202
+
203
+ ### Six Agents
204
+
205
+ Need a concise routing view first? See [Agents & Skills Guide](agents-and-skills-guide.md) for the consolidated "what it does, when to invoke it, and where it fits in the SDLC" map.
206
+
207
+ | Agent | Group | Role | Key skills |
208
+ |-------|-------|------|------------|
209
+ | `fluent-dev` | dev | Orchestrator — routes to backend or frontend; owns cross-cutting skills | `/fluent-feature-plan`, `/fluent-feature-status`, `/fluent-implementation-map`, `/fluent-e2e-test`, `/fluent-session` |
210
+ | `fluent-backend-dev` | dev | Backend — Java rules, rule tests, Maven modules, workflow JSON, settings, events, deployment | `/fluent-workflow-builder`, `/fluent-rule-scaffold`, `/fluent-rule-test`, `/fluent-module-scaffold`, `/fluent-build`, `/fluent-trace`, `/fluent-settings` |
211
+ | `fluent-frontend-dev` | dev | Frontend — Mystique manifests, SDK components, build pipeline, UI testing | `/fluent-mystique-builder`, `/fluent-mystique-scaffold`, `/fluent-mystique-diff`, `/fluent-frontend-build`, `/fluent-ui-test`, `/fluent-ui-record` |
212
+ | `fluent-cli` | cli | CLI operations — profile management, module deploy, workflows, retailer config | All 8 CLI skills |
213
+ | `fluent-mcp` | mcp-extn | MCP extension + official CLI MCP — events, GraphQL, batch, metrics, entities, workflow list/download, GraphQL build/validate | `/fluent-mcp-tools`, `/fluent-mcp-core` |
214
+ | `fluent-rfl` | rfl | Ready For Launch — workflow, rule, settings, architecture audit | `/fluent-rfl-assess` |
215
+
216
+ **Routing is intent-based:**
217
+
218
+ ```mermaid
219
+ graph LR
220
+ U["You"] --> O["fluent-dev<br/>(orchestrator)"]
221
+ O -->|"workflow, rule, rule test, module,<br/>event, settings, deploy"| BE["fluent-backend-dev"]
222
+ O -->|"manifest, page, component,<br/>UI, Mystique, SDK"| FE["fluent-frontend-dev"]
223
+ O -->|"CLI, profile, retailer"| CLI["fluent-cli"]
224
+ BE --> MCP1["fluent-mcp<br/>(mcp-extn)"]
225
+ FE --> MCP1 & MCP2["chrome-devtools"]
226
+ ```
227
+
228
+ Mention workflows/rules/Java → backend agent. Mention manifests/pages/UI → frontend agent. Cross-domain features → orchestrator creates unified plan.
229
+
230
+ ### Skill Groups
231
+
232
+ | Group | Skills | What it provides |
233
+ |-------|:------:|------------------|
234
+ | `cli` | 8 | Fluent CLI command-family coverage: connect, profile, retailer, modules, workflows, MCP/CI-CD, bootstrap |
235
+ | `dev` | 52 | **Backend:** workflow builder/analyzer, connection analysis, custom code, transition API, rule scaffold, rule test generation/repair, module scaffold/validate/build, source onboarding, trace, entity-flow diagnose, event API, system monitoring, batch, settings, deploy, workflow deploy, rollback. **Frontend:** mystique assess (validate + analyze), manifest builder, SDK scaffold/component/reference, manifest diff, frontend build (8 gates)/review (9 phases)/readme, UI test, UI record. **Cross-cutting:** feature planning, use-case discover, feature status/explain, implementation map, scope plan, E2E test, test data, session, sourcing, knowledge init, workspace tree, skill observability, account snapshot, goal |
236
+ | `rfl` | 1 | Production readiness assessment — scored report across workflows, rules, settings, integrations |
237
+ | `mcp-extn` | 2 | MCP extension tools reference (55+ tools in 15 categories) + official CLI MCP server reference |
238
+
239
+ ### Workspace Directory Structure
240
+
241
+ Account-specific artifacts are scoped under `accounts/<PROFILE>/`. The installer also creates workspace-root reference files and docs. Directories are created on demand — nothing is pre-created beyond those installer-managed references.
242
+
243
+ ```
244
+ fluent-ai-workspace/
245
+ ├── .mcp.json ← MCP server config (auto-generated, gitignored)
246
+ ├── CLAUDE.md ← Starter workspace instructions for Claude Code
247
+ ├── AGENTS.md ← Starter workspace instructions for Codex/agentic tooling
248
+ ├── knowledge/ ← Packaged platform knowledge copied locally
249
+ ├── docs/ ← Packaged reference docs copied locally
250
+ └── accounts/<PROFILE>/ ← All account-specific implementation artifacts
251
+
252
+ ├── SOURCE/ ← Implementation source code (shared across retailers)
253
+ │ ├── backend/ ← Java Maven plugin repos
254
+ │ │ ├── fc-plugin-custom/ ← git-cloned custom plugin repo
255
+ │ │ │ ├── pom.xml
256
+ │ │ │ ├── resources/module.json
257
+ │ │ │ └── src/main/java/com/...
258
+ │ │ ├── fc-module-order/ ← reference module package (module.json + JAR)
259
+ │ │ │ ├── module.json
260
+ │ │ │ └── assets/rules/fc-plugin-order-2.1.0.jar
261
+ │ │ └── .decompiled/ ← auto-generated from JAR decompilation
262
+ │ │ └── fc-plugin-order-2.1.0/
263
+ │ │ ├── DECOMPILED.md
264
+ │ │ └── com/fluentcommerce/...
265
+ │ ├── frontend/ ← Mystique SDK component projects
266
+ │ │ └── mystique-appeasement/
267
+ │ │ ├── package.json
268
+ │ │ ├── src/index.tsx ← ComponentRegistry.register(...)
269
+ │ │ ├── @types/mystique/ ← SDK type definitions
270
+ │ │ └── webpack.config.js
271
+
272
+ ├── workflows/<RETAILER_REF>/ ← Downloaded workflow JSONs (retailer-scoped)
273
+ │ ├── ORDER-HD.json
274
+ │ ├── FULFILMENT-HD_WH.json
275
+ │ └── workflow-context.json ← tracks profile/retailer/download timestamp
276
+
277
+ ├── features/<slug>/ ← Feature artifacts (one dir per feature)
278
+ │ ├── spec.md ← Business spec (from /fluent-use-case-discover)
279
+ │ ├── plan.md ← Implementation plan (from /fluent-feature-plan)
280
+ │ ├── architecture.md ← Feature arch doc (from /fluent-feature-explain)
281
+ │ └── status.json ← Machine-readable lifecycle state
282
+
283
+ ├── tasks/ ← Operational plans (non-feature)
284
+ ├── reports/ ← Ephemeral: build/, pre-deploy/, e2e-test/, ui-test/
285
+ ├── analysis/ ← Persistent: code/, modules/, topology/, settings/
286
+ ├── feedback/ ← Skill feedback JSONL + index.json
287
+ ├── sessions/ ← Audit trail exports
288
+ ├── settings/backups/ ← Non-manifest setting backups
289
+ ├── manifests/backups/ ← Manifest setting backups (before any change)
290
+ ├── knowledge/ ← Account-specific conventions, business rules, test data
291
+ └── feature-dashboard.html ← Live HTML dashboard (auto-refreshes via SSE)
292
+ ```
293
+
294
+ ### Adding Source Code
295
+
296
+ **Backend (Java plugins)** — Clone custom plugin repos into `SOURCE/backend/`:
297
+
298
+ ```bash
299
+ cd accounts/MY_PROFILE/SOURCE/backend
300
+ git clone https://bitbucket.org/yourorg/fc-plugin-custom.git
301
+ ```
302
+
303
+ Each repo needs at minimum: `resources/module.json` (rule registrations), `pom.xml` (Maven build), and `src/main/java/` (rule classes). Skills auto-detect repos by searching for these files recursively.
304
+
305
+ **Frontend (Mystique SDK components)** — Create or clone projects into `SOURCE/frontend/`:
306
+
307
+ ```bash
308
+ cd accounts/MY_PROFILE/SOURCE/frontend
309
+ # Option A: Scaffold a new project via the AI
310
+ # "Scaffold a custom order tracker component" → /fluent-mystique-scaffold
311
+ #
312
+ # Option B: Clone an existing project
313
+ git clone https://bitbucket.org/yourorg/mystique-custom-components.git
314
+ ```
315
+
316
+ Each project needs: `package.json`, `src/index.tsx` (with `ComponentRegistry.register()`), `@types/mystique/` (SDK types). Download the SDK from `https://fluent.apps.fluentcommerce.com/_sdk/latest/omx-component-sdk.zip` if you don't have the type definitions.
317
+
318
+ **JARs (no source available)** — Place compiled module JARs directly in `SOURCE/backend/`:
319
+
320
+ ```bash
321
+ cp fc-plugin-custom-1.2.3.jar accounts/MY_PROFILE/SOURCE/backend/
322
+ ```
323
+
324
+ Skills auto-decompile JARs into `SOURCE/backend/.decompiled/<jar-basename>/` with a `DECOMPILED.md` marker. Decompiled source is **read-only** — skills can analyze it but will never suggest editing decompiled files. To modify, provide original source or scaffold a new module.
325
+
326
+ **Reference modules (OOTB)** — Place `module.json` + `assets/rules/*.jar` packages in `SOURCE/backend/`. Skills read rule metadata directly from `module.json` — no decompilation needed unless deep analysis of rule logic is requested.
327
+
328
+ ---
329
+
330
+ ## 4. MCP Server Setup
331
+
332
+ > **Most users don't need this section.** The installer auto-generates `.mcp.json` for you. Only read this if you need to customize auth or troubleshoot.
333
+
334
+ ### Authentication (recommended: CLI Profile)
335
+
336
+ The installer configures MCP to reuse your existing Fluent CLI profile — no credentials in config files:
337
+
338
+ ```json
339
+ {
340
+ "mcpServers": {
341
+ "fluent-mcp-extn": {
342
+ "type": "stdio",
343
+ "command": "npx",
344
+ "args": ["@fluentcommerce/fluent-mcp-extn"],
345
+ "env": {
346
+ "FLUENT_PROFILE": "YOUR_PROFILE",
347
+ "FLUENT_PROFILE_RETAILER": "YOUR_RETAILER_REF"
348
+ }
349
+ }
350
+ }
351
+ }
352
+ ```
353
+
354
+ **Alternative auth methods** (for CI/CD or environments without CLI profiles):
355
+
356
+ | Method | When to use | Key env vars |
357
+ |--------|-------------|-------------|
358
+ | **OAuth** | Headless environments | `FLUENT_CLIENT_ID` + `FLUENT_CLIENT_SECRET` + `FLUENT_USERNAME` + `FLUENT_PASSWORD` (shell env vars, never in .mcp.json) |
359
+ | **Token command** | CI/CD with vault | `TOKEN_COMMAND` (e.g., `vault read -field=token secret/fluent/api`) |
360
+ | **Static token** | Quick testing only | `FLUENT_ACCESS_TOKEN` (no auto-refresh) |
361
+
362
+ Auth priority: Profile → OAuth → Token Command → Static Token (first valid wins).
363
+
364
+ > **Security rule:** `FLUENT_PASSWORD` and `FLUENT_CLIENT_SECRET` are **shell environment variables only** — never put secrets in `.mcp.json`. The installer's `mcp-setup` auto-strips sensitive values.
365
+
366
+ ### Verify Connection
367
+
368
+ After setup, ask the AI to run these three checks:
369
+
370
+ 1. `config_validate` → `ok: true` (config valid)
371
+ 2. `health_ping` → `ok: true` (API reachable)
372
+ 3. `connection_test` → `ok: true` (auth works, shows user/account)
373
+
374
+ ### Config File Location
375
+
376
+ | Client | Config file |
377
+ |--------|-------------|
378
+ | Claude Code | `.mcp.json` (workspace root) |
379
+
380
+ ### Resilience Tuning
381
+
382
+ | Variable | Default | Description |
383
+ |----------|---------|-------------|
384
+ | `FLUENT_REQUEST_TIMEOUT_MS` | `30000` | Per-request timeout |
385
+ | `FLUENT_RETRY_ATTEMPTS` | `3` | Retry attempts for read operations |
386
+ | `FLUENT_RESPONSE_BUDGET_CHARS` | `50000` | Max response size (~12.5k tokens). For large payloads (manifests, workflows), use `outputFile` parameter or CLI commands instead. |
387
+
388
+ ### Chrome DevTools MCP (Browser UI Testing)
389
+
390
+ [Chrome DevTools MCP](https://www.npmjs.com/package/chrome-devtools-mcp) is auto-configured by the installer. It provides browser automation for `/fluent-ui-test` (verification) and `/fluent-ui-record` (annotated recording).
391
+
392
+ | Capability | MCP Tool | Used by |
393
+ |-----------|----------|---------|
394
+ | Navigate to OMS/Store apps | `navigate_page` | `/fluent-ui-test`, `/fluent-ui-record` |
395
+ | Read page structure (DOM snapshot) | `take_snapshot` | `/fluent-ui-test`, `/fluent-ui-record` |
396
+ | Capture visual evidence | `take_screenshot` | `/fluent-ui-test`, `/fluent-ui-record` |
397
+ | Inject DOM annotation overlays | `evaluate_script` | `/fluent-ui-test`, `/fluent-ui-record` |
398
+ | Fill login forms | `type_text`, `click` | `/fluent-ui-test`, `/fluent-ui-record` |
399
+ | Detect JS/GraphQL errors | `list_console_messages` | `/fluent-ui-test` |
400
+ | Monitor API calls | `list_network_requests` | `/fluent-ui-record` |
401
+ | Continuous video recording | `--save-video` flag | `/fluent-ui-record` |
402
+
403
+ **Configuration (auto-generated by `mcp-setup`):**
404
+
405
+ ```json
406
+ {
407
+ "mcpServers": {
408
+ "chrome-devtools": {
409
+ "command": "npx",
410
+ "args": ["-y", "chrome-devtools-mcp@latest"],
411
+ "env": {
412
+ "FLUENT_UI_BASE_URL": "https://<account>.<env>.apps.engineering.fluentcommerce.com"
413
+ }
414
+ }
415
+ }
416
+ }
417
+ ```
418
+
419
+ | Flag | Purpose |
420
+ |------|---------|
421
+ | `--browser-url <url>` | Set `FLUENT_UI_BASE_URL` to a specific environment |
422
+ | `--no-browser` | Skip Chrome DevTools MCP setup (backend-only workflows) |
423
+ | `--save-video [resolution]` | Enable continuous video recording (default: 1920x1080). Optional FFmpeg for trim/convert. |
424
+
425
+ **Frontend skill chain:** `/fluent-mystique-builder` → `/fluent-mystique-assess` → `/fluent-frontend-build dev` (localhost hot-reload) → `/fluent-ui-test` (local verify) → `/fluent-frontend-build full` (release gates) → deploy → `/fluent-ui-test` (final).
426
+
427
+ ### Environment Variables
428
+
429
+ Credentials are **shell environment variables only** — never in `.mcp.json`. The installer's `mcp-setup` auto-strips sensitive values.
430
+
431
+ | Variable | Purpose | Required when |
432
+ |----------|---------|---------------|
433
+ | `FLUENT_USERNAME` | Fluent account username | UI testing, non-profile MCP auth |
434
+ | `FLUENT_PASSWORD` | Fluent account password | UI testing, non-profile MCP auth |
435
+ | `FLUENT_CLIENT_ID` | OAuth client ID | OAuth auth (CI/CD environments) |
436
+ | `FLUENT_CLIENT_SECRET` | OAuth client secret | OAuth auth (CI/CD environments) |
437
+ | `BITBUCKET_USERNAME` | Bitbucket username | Bitbucket MCP server |
438
+ | `BITBUCKET_APP_PASSWORD` | Bitbucket app password | Bitbucket MCP server |
439
+
440
+ **Profile-based auth (recommended):** With `--profile`, MCP servers read tokens from `~/.fluentcommerce/<PROFILE>/` automatically. No credential env vars needed for API access. `FLUENT_USERNAME`/`FLUENT_PASSWORD` are only needed for browser UI testing.
441
+
442
+ **What goes in `.mcp.json`:** Only non-secret config — `FLUENT_PROFILE`, `FLUENT_PROFILE_RETAILER`, `FLUENT_RETAILER_ID`, `FLUENT_UI_BASE_URL`. The installer manages these automatically.
443
+
444
+ ---
445
+
446
+ ## 5. What Can You Do?
447
+
448
+ > **Want detailed walkthroughs?** The [Use Cases Guide](03-use-cases.md) has 21 scenario-based walkthroughs with step-by-step examples and expected outputs. The [Getting Started Guide](05-getting-started.md) walks through your first debug, first feature build, and session resumption.
449
+
450
+ ### Quick Reference Prompts
451
+
452
+ | I want to... | Say this | Skill |
453
+ |---|---|---|
454
+ | **Setup & Connection** | | |
455
+ | Connect to a Fluent account | "Set up my workspace" | `/fluent-connect` |
456
+ | Create or switch CLI profiles | "Create a profile for production" | `/fluent-profile` |
457
+ | Set up a new account | "Bootstrap a new Fluent account" | `/fluent-bootstrap` |
458
+ | Set up project knowledge | "Initialize knowledge for this project" | `/fluent-knowledge-init` |
459
+ | **Understanding & Analysis** | | |
460
+ | Understand how a feature works | "Explain how Home Delivery works" | `/fluent-feature-explain` |
461
+ | Map what's been built on an account | "Give me a feature inventory" | `/fluent-implementation-map` |
462
+ | Analyze workflow structure | "Analyze ORDER::HD for orphaned rulesets" | `/fluent-workflow-analyzer` |
463
+ | Map cross-entity dependencies | "Show how ORDER::HD connects to FULFILMENT" | `/fluent-connection-analysis` |
464
+ | Analyze custom plugin source | "Analyze the custom code" | `/fluent-custom-code` |
465
+ | Analyze or validate a manifest | "What components are used in admin?" | `/fluent-mystique-assess` |
466
+ | Compare manifests against CDN baselines | "What's customized vs default?" | `/fluent-mystique-diff` |
467
+ | Understand sourcing | "How does sourcing work?" | `/fluent-sourcing` |
468
+ | Understand the event model | "How does event routing work?" | `/fluent-event-api` |
469
+ | **Feature Development** | | |
470
+ | Gather requirements | "Help me define use cases for curbside pickup" | `/fluent-use-case-discover` |
471
+ | Plan a multi-artifact feature | "Plan the curbside pickup feature" | `/fluent-feature-plan` |
472
+ | Scaffold a new Java rule | "Create a rule called ValidateReturnWindow" | `/fluent-rule-scaffold` |
473
+ | Write or repair a rule test | "Generate tests for ValidateReturnWindow" | `/fluent-rule-test` |
474
+ | Create a new extension module | "Scaffold a module called my-returns" | `/fluent-module-scaffold` |
475
+ | Create a data-only module | "Create a data module for reference data" | `/fluent-data-module-scaffold` |
476
+ | Onboard existing source | "Refactor this code into a Fluent module" | `/fluent-module-convert` |
477
+ | Build a new workflow | "Build an ORDER::RETURN workflow" | `/fluent-workflow-builder` |
478
+ | Build and package a module | "Build the my-extensions module" | `/fluent-build` |
479
+ | Bump module version | "Bump the module version to 1.4.0" | `/fluent-build` |
480
+ | **UI / Manifest Development** | | |
481
+ | Build a Mystique UI page | "Build an order detail page" | `/fluent-mystique-builder` |
482
+ | Validate a manifest | "Validate the admin manifest" | `/fluent-mystique-assess` |
483
+ | Scaffold a custom SDK component | "Create a custom order tracker component" | `/fluent-mystique-scaffold` |
484
+ | Add component/field/helper to SDK project | "Add a currency format helper" | `/fluent-mystique-component` |
485
+ | Look up SDK hooks and patterns | "How does useUserActions work?" | `/fluent-mystique-sdk-reference` |
486
+ | Build SDK project (TypeScript, lint, tests, webpack) | "Build the mystique-appeasement project" | `/fluent-frontend-build` |
487
+ | Review SDK code quality | "Review the frontend code for issues" | `/fluent-frontend-review` |
488
+ | Generate SDK project README | "Generate a readme for the component project" | `/fluent-frontend-readme` |
489
+ | Build a full-stack feature | "Build order tracking with a dashboard" | `/fluent-feature-plan` → backend → frontend |
490
+ | **Deployment** | | |
491
+ | Run quality gates | "Run pre-deploy checks for my-extensions" | `/fluent-pre-deploy-check` |
492
+ | Deploy a module | "Deploy my extension module to MY_RETAILER" | `/fluent-module-deploy` |
493
+ | Deploy a workflow | "Deploy ORDER::HD to MY_RETAILER" | `/fluent-workflow-deploy` |
494
+ | Roll back a deployment | "Roll back ORDER::HD to previous version" | `/fluent-rollback` |
495
+ | **Testing & Debugging** | | |
496
+ | Debug why an order is stuck | "Why is order HD-001 stuck in BOOKED?" | `/fluent-trace` |
497
+ | Run an end-to-end test | "Run an E2E test of the HD order flow" | `/fluent-e2e-test` |
498
+ | Create test data | "Create a test HD order" | `/fluent-test-data` |
499
+ | Verify a deployed page in browser | "Check that OMS orders page loads" | `/fluent-ui-test` |
500
+ | Record UI walkthrough | "Record before/after screenshots" | `/fluent-ui-record` |
501
+ | Monitor event health | "Show event failure rates for last hour" | `/fluent-system-monitoring` |
502
+ | See what actions are available | "What actions can I take on ORDER in BOOKED?" | `/fluent-transition-api` |
503
+ | Batch ingest data | "Create batch ingestion job for inventory" | `/fluent-job-batch` |
504
+ | **Lifecycle Management** | | |
505
+ | Check feature status dashboard | "What features are in progress?" | `/fluent-feature-status` |
506
+ | View live feature dashboard (HTML) | "Start the feature dashboard" | `/fluent-feature-status` |
507
+ | Show workspace directory tree | "Show me the workspace tree" | `/fluent-workspace-tree` |
508
+ | Validate Mermaid diagram syntax | "Validate this mermaid diagram" | See `knowledge/mermaid-syntax-rules.md` |
509
+ | Resume a previous feature | "Continue working on return orders" | AI reads `status.json` |
510
+ | Check if ready for go-live | "Run an RFL assessment" | `/fluent-rfl-assess` |
511
+ | Decompose scope or phase a feature | "Break this scope doc into tasks" | `/fluent-scope-plan` |
512
+ | Audit what skills ran | "What skills ran this session?" | `/fluent-session` |
513
+ | Export audit trail | "Export a JSON audit trail" | `/fluent-session export` |
514
+ | Trace skill invocations, routing, feedback | "What skills fired and why?" | `/fluent-skill-observability` |
515
+ | Configure sourcing profile | "Create HD sourcing profile with distance + stock" | `/fluent-sourcing` |
516
+ | Audit settings | "What settings are missing for ORDER::HD?" | `/fluent-settings` |
517
+ | Create a location or network | "Set up a warehouse location for testing" | `/fluent-retailer-config` |
518
+ | Pursue a goal autonomously | "Make the return flow work end to end" | `/fluent-goal` |
519
+
520
+ ---
521
+
522
+ ## 6. Feature Lifecycle
523
+
524
+ ### Status Progression
525
+
526
+ ```mermaid
527
+ stateDiagram-v2
528
+ direction LR
529
+ [*] --> DISCOVERY : /fluent-use-case-discover
530
+ DISCOVERY --> PLANNING : spec approved
531
+ PLANNING --> APPROVED : plan approved
532
+ APPROVED --> IN_PROGRESS : implementation starts
533
+ IN_PROGRESS --> BUILT : build passes
534
+ BUILT --> DEPLOYED : deploy succeeds
535
+ DEPLOYED --> VERIFIED : E2E tests pass
536
+ PLANNING --> DISCOVERY : plan rejected
537
+ APPROVED --> PLANNING : plan revised
538
+ IN_PROGRESS --> PLANNING : breaking change (regress)
539
+ DEPLOYED --> IN_PROGRESS : rebuild needed
540
+ DEPLOYED --> BUILT : workflow-only change
541
+ VERIFIED --> IN_PROGRESS : re-opened
542
+ VERIFIED --> [*]
543
+ note right of VERIFIED : Feature complete
544
+ ```
545
+
546
+ Each feature lives in `accounts/<PROFILE>/features/<slug>/` with four canonical files: `spec.md`, `plan.md`, `architecture.md`, and `status.json`.
547
+
548
+ ### What Gets Created at Each Step
549
+
550
+ | Step | You say | AI does | Created |
551
+ |------|---------|---------|---------|
552
+ | 1. Gather requirements | "Help me define use cases for..." | Interactive wizard | `spec.md` + `status.json` |
553
+ | 2. Plan the feature | "Plan the X feature" | 18-section plan with diagrams | `plan.md` |
554
+ | 3. Approve | "Approved" | Marks plan approved | `status.json` → `plan: "APPROVED"` |
555
+ | 4. Scaffold module | "Scaffold the module" | Creates Maven project | `pom.xml`, `module.json` |
556
+ | 5. Create rules | "Create rules from the plan" | Java classes + tests | `*.java` + `*Test.java` |
557
+ | 6. Build workflow | "Build the workflow" | Workflow JSON + validation | `<WORKFLOW>.json` |
558
+ | 7. Build module | "Build the module" | Maven build + packaging | `dist/<module>.zip` |
559
+ | 8. Pre-deploy checks | "Run pre-deploy checks" | 35+ quality gates | `reports/pre-deploy/*.json` |
560
+ | 9. Deploy | "Deploy to MY_RETAILER" | Module + workflow deployment | Live environment changes |
561
+ | 10. E2E test | "Run E2E test" | Create entities, fire events, assert | Test report |
562
+
563
+ ### Resuming across sessions
564
+
565
+ Each feature tracks its own `status.json`. When you open a new session and say "continue working on return orders", the AI reads this file, knows exactly where you left off (including which skill to run next), and resumes automatically. No manual context re-entry needed.
566
+
567
+ ### Approval Gate
568
+
569
+ The AI never makes changes without asking first:
570
+
571
+ ```mermaid
572
+ graph LR
573
+ A["Spec generated"] -->|"auto-critique"| B["Refined spec"]
574
+ B -->|"you review"| C{"Approve?"}
575
+ C -->|"yes"| D["Plan generated"]
576
+ D -->|"auto-critique"| E["Refined plan"]
577
+ E -->|"you review"| F{"Approve?"}
578
+ F -->|"yes"| G["Implementation begins"]
579
+ C -->|"changes needed"| A
580
+ F -->|"changes needed"| D
581
+ ```
582
+
583
+ - **Triggers the gate:** Any change to code, workflows, settings, or live environment
584
+ - **Skips the gate:** Read-only operations (explain, trace, analyze, audit, diagnose)
585
+ - **Override:** Say "just do it" or "skip planning" to bypass
586
+
587
+ ### Feature Dashboard
588
+
589
+ A live HTML dashboard auto-starts at `http://localhost:3456` when feature work begins. It shows all features with status, spec/plan content rendered as HTML with Mermaid diagrams, file metadata, and session history. Features being actively updated show a pulsing indicator in the sidebar.
590
+
591
+ Generated by `fluent-ai-skills/tools/generate-feature-dashboard.mjs` — zero dependencies, vendor libs bundled inline. Updates automatically via SSE when any feature file changes.
592
+
593
+ **Prerequisites:**
594
+ 1. **Vendor libs** — run `node fluent-ai-skills/tools/generate-feature-dashboard.mjs --setup` once. Downloads `marked.min.js` and `mermaid.min.js` to `fluent-ai-skills/tools/vendor/`.
595
+ 2. **Features directory** — at least one feature must exist under `accounts/<PROFILE>/features/` (created by `/fluent-use-case-discover`).
596
+ 3. **Node.js 18+** (20+ recommended).
597
+
598
+ **When does data appear?**
599
+
600
+ | Skill | What it populates |
601
+ |-------|-------------------|
602
+ | `/fluent-use-case-discover` | Creates `status.json` (DISCOVERY) + `spec.md` — feature first appears in sidebar |
603
+ | `/fluent-feature-plan` | Creates `plan.md`, advances to PLANNING/APPROVED — Plan tab populated |
604
+ | `/fluent-workflow-builder`, `/fluent-rule-scaffold`, etc. | Advances to IN_PROGRESS — Status tab shows progress |
605
+ | `/fluent-build` | Sets `build: PASSED/FAILED` — build gate indicator updates |
606
+ | `/fluent-module-deploy`, `/fluent-workflow-deploy` | Sets `deploy: DEPLOYED` — deploy gate indicator updates |
607
+ | `/fluent-e2e-test` | Sets `test: PASSED/FAILED` — test gate indicator, advances to VERIFIED |
608
+ | `/fluent-skill-observability` | Appends to `feedback/<skill>.jsonl` — Feedback tab metrics |
609
+ | `/fluent-session` | Writes session audit — session timeline in Status tab |
610
+
611
+ **Commands:**
612
+
613
+ ```bash
614
+ # One-time setup (download vendor libs)
615
+ node fluent-ai-skills/tools/generate-feature-dashboard.mjs --setup
616
+
617
+ # Start live server (auto-refreshes on file changes)
618
+ node fluent-ai-skills/tools/generate-feature-dashboard.mjs --profile ACME --serve --port 3456
619
+
620
+ # Generate static HTML only (no server)
621
+ node fluent-ai-skills/tools/generate-feature-dashboard.mjs --profile ACME
622
+
623
+ # All profiles at once (static only)
624
+ node fluent-ai-skills/tools/generate-feature-dashboard.mjs --all
625
+ ```
626
+
627
+ **Dashboard tabs per feature:** Status (lifecycle progress bar + gates + sessions), Spec (rendered markdown + Mermaid), Plan (rendered markdown + Mermaid), Architecture (diagrams), Feedback (skill success/failure metrics), Reports (embedded markdown + base64 screenshots), Files (file metadata).
628
+
629
+ **Output:** `accounts/<PROFILE>/feature-dashboard.html` — self-contained HTML, works offline without server.
630
+
631
+ ### status.json Schema
632
+
633
+ ```json
634
+ {
635
+ "$schema": "feature-status-v2",
636
+ "feature": "return-order",
637
+ "summary": "One-sentence description shown in the dashboard — written at spec time.",
638
+ "retailers": ["MY_RETAILER"],
639
+ "status": "DEPLOYED",
640
+ "spec": "APPROVED",
641
+ "plan": "APPROVED",
642
+ "build": "PASSED",
643
+ "deploy": "DEPLOYED",
644
+ "test": null,
645
+ "planRevision": 1,
646
+ "next": "/fluent-e2e-test",
647
+ "basedOn": null,
648
+ "created": "2026-01-15",
649
+ "updated": "2026-01-20",
650
+ "sessions": []
651
+ }
652
+ ```
653
+
654
+ | Field | Meaning |
655
+ |-------|---------|
656
+ | `summary` | One-sentence feature description shown in dashboard — written at spec time |
657
+ | `status` | Overall: DISCOVERY → PLANNING → APPROVED → IN_PROGRESS → BUILT → DEPLOYED → VERIFIED |
658
+ | `spec` / `plan` | Artifact gate: null → DRAFT → APPROVED |
659
+ | `build` | Build gate: null → PENDING → PASSED / FAILED |
660
+ | `deploy` | Deploy gate: null → PENDING → DEPLOYED / FAILED |
661
+ | `test` | Test gate: null → PENDING → PASSED / FAILED |
662
+ | `next` | Which skill the AI runs next (auto-determined) |
663
+ | `planRevision` | Increments if plan is revised without regression |
664
+ | `retailers` | Array of retailer refs this feature applies to |
665
+ | `basedOn` | Slug linkage for multi-retailer feature variants |
666
+ | `created` / `updated` | ISO date strings |
667
+ | `sessions` | Audit trail of session references |
668
+
669
+ ---
670
+
671
+ ## 7. Development Workflow
672
+
673
+ ### The Build Loop
674
+
675
+ ```mermaid
676
+ graph TD
677
+ A["1. Connect & Analyze"] --> B["2. Explain or Plan"]
678
+ B -->|"read-only"| DONE["Feature Architecture Doc"]
679
+ B -->|"changes needed"| C["3. User Approval"]
680
+ C --> D["4. Implement"]
681
+ D --> E["5. Validate & Build"]
682
+ E --> F["6. Deploy"]
683
+ F --> G["7. Test (E2E + Browser)"]
684
+ G -->|"pass"| VERIFIED["✓ Verified"]
685
+ G -->|"fail"| H["8. Diagnose & Fix"]
686
+ H --> D
687
+ ```
688
+
689
+ ### Phase reference
690
+
691
+ | Phase | What the AI does | Key tools / skills |
692
+ |-------|-----------------|-------------------|
693
+ | **1. Connect & Analyze** | Verify connectivity, download workflows, query live transitions, scan modules, check event history | `config_validate`, `workflow_transitions`, `event_list` |
694
+ | **2. Explain (read-only)** | Produces Feature Architecture Doc with state diagrams, rules tables, settings deps. **No changes.** | `/fluent-feature-explain` |
695
+ | **3. Plan & Approve** | Structured plan: business context, proposed changes, Mermaid diagrams, risks, rollback. **Waits for your approval.** | `/fluent-use-case-discover`, `/fluent-feature-plan` |
696
+ | **4. Implement** | Edit workflows, scaffold/edit Java rules, update settings, build manifests | `/fluent-workflow-builder`, `/fluent-rule-scaffold`, `/fluent-settings`, `/fluent-mystique-builder` |
697
+ | **5. Validate & Build** | 9 structural checks, bump version, Maven build, package ZIP | `/fluent-module-validate`, `/fluent-build` |
698
+ | **6. Deploy** | Module + workflow deployment with pre-deploy gates | `/fluent-pre-deploy-check`, `/fluent-module-deploy`, `/fluent-workflow-deploy` |
699
+ | **7. Test** | E2E: create entities → fire events → assert states. Browser: navigate → snapshot → verify DOM → screenshot | `/fluent-e2e-test`, `/fluent-ui-test` |
700
+ | **8. Diagnose & Fix** | Event FAILED → rule exception. PENDING → queue backlog. No event → wrong ref. Fix and loop back. | `/fluent-trace`, `event_flowInspect` |
701
+
702
+ ### What happens between you and the AI
703
+
704
+ | You | AI |
705
+ |-----|-----|
706
+ | Describe what you want in plain language | Asks clarifying questions if needed |
707
+ | Confirm the spec | Critiques its own output internally, presents the refined version |
708
+ | Approve the plan | Begins implementation, announces each step |
709
+ | See intermediate results | Runs validators and reports issues inline |
710
+ | Say "deploy" | Runs pre-flight checks, shows what will change, waits for your confirm |
711
+
712
+ ### Frontend Component Quick Matrix
713
+
714
+ When deciding custom SDK component shape and registration:
715
+
716
+ | Component `category` | Use when | `data` scope | `<Children />` | Typical API |
717
+ |---|---|---|---|---|
718
+ | `page` | Replacing a full route-level page shell | Unscoped (full page query result) | Core pattern; usually required | `useData`, `useUserActions`, `<Children />` |
719
+ | `layout` | Composing/arranging descendants | Scoped by parent `dataSource` | Core pattern; often required | `<Children />`, `dataOverride`, `descendantsOverride` |
720
+ | `content` | Rendering a widget/card/action block (default) | Scoped by parent `dataSource` | Optional | `<DynamicValue />`, `TemplateRegistry.render`, `useData` |
721
+ | `filter` | Updating page query variables (search/filter/sort) | Scoped + mutable query variables | Usually not used | `useData().variables.setVariables()` |
722
+
723
+ **Registry choice:**
724
+ - `ComponentRegistry` for page/layout/content/filter components referenced by manifest `"component"`.
725
+ - `FieldRegistry` for user action form fields mapped by workflow `attributes[].type`.
726
+ - `TemplateRegistry` for `{{helper ...}}` expression helpers.
727
+
728
+ ### Settings Update Quick Recipe
729
+
730
+ For safe setting updates (via `/fluent-settings`):
731
+
732
+ 1. Resolve by `name` + `context/contextId` to fetch `id`, `valueType`, and current value.
733
+ 2. Update by `id` (never guessed) using: `value` for `STRING`/`BOOLEAN`, `lobValue` for `LOB`/`JSON`.
734
+ 3. Re-query the same `name` + scope and confirm the value changed.
735
+ 4. If no setting exists, create it with the same scope (upsert behavior).
736
+
737
+ **Manifest settings (non-negotiable):** `valueType: "JSON"`, `context: "ACCOUNT"`, `contextId: 0`, body in `lobValue` (never `value` — silently truncates at 255 chars).
738
+
739
+ ### Step-by-Step Feature Build
740
+
741
+ Here's what happens at each substep when building a feature end-to-end:
742
+
743
+ | Sub-step | Skill | Artifacts created |
744
+ |----------|-------|-------------------|
745
+ | Scaffold rules | `/fluent-rule-scaffold` | `SOURCE/backend/<repo>/src/main/java/.../RuleName.java` + test class + `module.json` updated |
746
+ | Build workflow | `/fluent-workflow-builder` | Modified workflow JSON in `workflows/<RETAILER>/` |
747
+ | Validate | `/fluent-workflow-analyzer` | Structural analysis (runs automatically after workflow edits) |
748
+ | Compile module | `/fluent-build` | `SOURCE/backend/<repo>/dist/<module>.zip` + report in `reports/build/` |
749
+ | Pre-deploy gate | `/fluent-pre-deploy-check` | Report in `reports/pre-deploy/` (READY or BLOCKED) |
750
+ | Deploy module | `/fluent-module-deploy` | Module installed on live environment |
751
+ | Deploy workflow | `/fluent-workflow-deploy` | Workflow uploaded to live environment |
752
+ | E2E test | `/fluent-e2e-test` | Test results in `reports/e2e-test/`, entities created on live env |
753
+
754
+ If a test fails, the AI diagnoses the issue, applies a fix, rebuilds, redeploys, and re-tests — looping until all tests pass or a blocker is hit.
755
+
756
+ ---
757
+
758
+ ## 8. MCP Extension Tools
759
+
760
+ ### At a glance
761
+
762
+ ```mermaid
763
+ graph TB
764
+ subgraph "Connection (4)"
765
+ C1["connection_add / list / remove / switch"]
766
+ end
767
+ subgraph "Diagnostics (3)"
768
+ D1["config_validate"]
769
+ D2["health_ping"]
770
+ D3["connection_test"]
771
+ end
772
+ subgraph "Events (5)"
773
+ E1["event_build / send / get / list"]
774
+ E2["event_flowInspect"]
775
+ end
776
+ subgraph "GraphQL (9)"
777
+ G1["graphql_query / queryAll / batchMutate"]
778
+ G2["graphql_introspect / listRoots / buildQuery"]
779
+ G3["graphql_validate / generateFull / planOperation"]
780
+ end
781
+ subgraph "Metrics (10)"
782
+ MR1["metrics_query / healthCheck / sloReport"]
783
+ MR2["metrics_labelCatalog / metricCatalog / topEvents"]
784
+ MR3["metrics_compare / mutationAudit / planQuery / snapshot"]
785
+ end
786
+ subgraph "Entities (5)"
787
+ N1["entity_create / update / get"]
788
+ N2["entity_planCreate / planUpdate"]
789
+ end
790
+ subgraph "Batch (6)"
791
+ B1["batch_create / send / status"]
792
+ B2["batch_batchStatus / results / describePayload"]
793
+ end
794
+ subgraph "Workflows (6)"
795
+ W1["workflow_get / list / upload"]
796
+ W2["workflow_diff / simulate / transitions"]
797
+ end
798
+ subgraph "Settings (3)"
799
+ S1["setting_get / upsert / bulkUpsert"]
800
+ end
801
+ ```
802
+
803
+ ### Full reference
804
+
805
+ | Category | Tool | Description |
806
+ |----------|------|-------------|
807
+ | **Diagnostics** | `config_validate` | Validate auth and base URL configuration |
808
+ | | `health_ping` | Quick connectivity check |
809
+ | | `connection_test` | Full auth + GraphQL end-to-end test |
810
+ | **Events** | `event_build` | Build event payload without sending |
811
+ | | `event_send` | Build and send event (supports `dryRun`) |
812
+ | | `event_get` | Fetch a single event by ID |
813
+ | | `event_list` | List/filter events with pagination |
814
+ | | `event_flowInspect` | One-call root-entity flow forensics (compact ~2-3k tokens, full ~24k) |
815
+ | **Metrics** | `metrics_query` | Query Prometheus metrics (instant or range) |
816
+ | | `metrics_healthCheck` | One-call anomaly check |
817
+ | | `metrics_sloReport` | SLO snapshot (rates + p95 latency) |
818
+ | | `metrics_labelCatalog` | Discover metric labels from live series |
819
+ | | `metrics_metricCatalog` | List available metric names and types |
820
+ | | `metrics_topEvents` | Rank events by name/entity/status |
821
+ | | `metrics_compare` | Compare metrics across time windows |
822
+ | | `metrics_mutationAudit` | Audit write operations via metrics |
823
+ | | `metrics_planQuery` | Plan a metrics query from natural language |
824
+ | | `metrics_snapshot` | Point-in-time metrics snapshot |
825
+ | **Orchestration** | `workflow_transitions` | Query available user actions/transitions |
826
+ | | `plugin_list` | List all registered rules with metadata |
827
+ | **GraphQL** | `graphql_query` | Execute any query or mutation |
828
+ | | `graphql_queryAll` | Auto-paginated query (follows cursors) |
829
+ | | `graphql_batchMutate` | Execute up to 50 mutations in one request |
830
+ | | `graphql_introspect` | Inspect schema types, mutations, fields |
831
+ | | `graphql_listRoots` | List available root query and mutation fields |
832
+ | | `graphql_buildQuery` | Auto-generate a query from entity type |
833
+ | | `graphql_validate` | Validate a query against the schema |
834
+ | | `graphql_generateFull` | Generate a complete query with all fields |
835
+ | | `graphql_planOperation` | Plan a GraphQL operation from natural language |
836
+ | **Batch** | `batch_create` | Create an ingestion job |
837
+ | | `batch_send` | Send records to a job |
838
+ | | `batch_status` | Check job status |
839
+ | | `batch_batchStatus` | Check a specific batch |
840
+ | | `batch_results` | Get per-record outcomes |
841
+ | | `batch_describePayload` | Describe expected payload schema for an entity type |
842
+ | **Webhook** | `webhook_validate` | Validate payload + optional signature verification |
843
+ | **Connection** | `connection_add` | Add a runtime connection slot (CLI profile, OAuth, or static token) |
844
+ | | `connection_list` | List all configured connection slots |
845
+ | | `connection_remove` | Remove a runtime connection slot |
846
+ | | `connection_switch` | Switch active connection at runtime |
847
+ | **Entities** | `entity_create` | Type-safe creation (12 entity types) |
848
+ | | `entity_update` | Status-aware updates with transition validation |
849
+ | | `entity_get` | Unified lookup by ID or ref |
850
+ | | `entity_planCreate` | Plan an entity creation from natural language |
851
+ | | `entity_planUpdate` | Plan an entity update from natural language |
852
+ | **Workflows** | `workflow_get` | Fetch workflow by entity type/subtype |
853
+ | | `workflow_list` | List all workflows (deduped to latest) |
854
+ | | `workflow_upload` | Deploy workflow JSON via REST |
855
+ | | `workflow_diff` | Compare two workflows (added/removed/modified) |
856
+ | | `workflow_simulate` | Static analysis — predict which rulesets fire |
857
+ | **Settings** | `setting_get` | Read a setting by name (supports `outputFile`) |
858
+ | | `setting_upsert` | Create or update a setting |
859
+ | | `setting_bulkUpsert` | Batch create/update up to 50 settings |
860
+ | **Environment** | `environment_discover` | Full snapshot (retailer, locations, workflows) |
861
+ | | `environment_validate` | Pre-flight validation checks |
862
+ | **Cache** | `cache_status` | Check cache status and hit rates |
863
+ | | `cache_clear` | Clear server-side caches |
864
+ | **Time** | `time_resolveWindow` | Resolve relative time expressions to absolute ranges |
865
+ | **Test** | `test_assert` | Assert entity state with optional polling |
866
+
867
+ ### Error handling
868
+
869
+ All tools return a consistent envelope:
870
+
871
+ ```json
872
+ { "ok": true, "response": { ... } }
873
+ { "ok": false, "error": { "code": "AUTH_ERROR", "message": "...", "retryable": false } }
874
+ ```
875
+
876
+ | Code | Meaning | Retryable |
877
+ |---|---|---|
878
+ | `CONFIG_ERROR` | Missing/invalid env vars | No |
879
+ | `AUTH_ERROR` | Authentication failed | No |
880
+ | `VALIDATION_ERROR` | Invalid tool arguments | No |
881
+ | `TIMEOUT_ERROR` | Request timed out | Yes |
882
+ | `RATE_LIMIT` | API rate limit | Yes |
883
+ | `UPSTREAM_UNAVAILABLE` | API unreachable | Yes |
884
+
885
+ ---
886
+
887
+ ## 9. Deployment and Promotion Runbook
888
+
889
+ > **Full runbook:** See [Dev Workflow — Deploy, Promote, and Rollback](06-dev-workflow.md) for step-by-step instructions, environment promotion sequences, selective deployment recipes, rollback playbook, and `flow-run` command reference.
890
+
891
+ ```mermaid
892
+ graph LR
893
+ DEV["dev"] -->|"build + test"| STG["staging"]
894
+ STG -->|"build + test"| PROD["prod"]
895
+ ```
896
+
897
+ **Quick deploy sequence:** Build → Validate environment → Back up workflows → Run diagnostics (`flow-run`) → Deploy → Post-deploy verify.
898
+
899
+ ```bash
900
+ # Build
901
+ cd plugins && mvn clean install && cd .. && ./scripts/build-module.sh
902
+
903
+ # Deploy
904
+ fluent module install dist/<module>.zip \
905
+ --profile <PROFILE> --retailer <RETAILER_REF> \
906
+ --config module.config.<RETAILER>.<env>.json --force
907
+
908
+ # Verify
909
+ fluent module list -p <PROFILE>
910
+ fluent workflow list -p <PROFILE> -r <RETAILER_REF>
911
+ ```
912
+
913
+ **Selective:** `--include workflows settings` or `--exclude workflows`. **Rollback:** Redeploy previous ZIP or restore workflow backup.
914
+
915
+ ---
916
+
917
+ ## 10. Troubleshooting
918
+
919
+ ### Quick fix
920
+
921
+ Re-run install:
922
+ ```bash
923
+ npx @fluentcommerce/ai-skills install --profile YOUR_PROFILE --profile-retailer YOUR_RETAILER
924
+ ```
925
+
926
+ ### Common Issues
927
+
928
+ | Symptom | Cause | Fix |
929
+ |---------|-------|-----|
930
+ | `config_validate` fails | Missing/invalid env vars | Check `FLUENT_BASE_URL` + auth method |
931
+ | `AUTH_ERROR` on any tool | Bad credentials/expired token | Verify OAuth or regenerate token |
932
+ | `connection_test` fails | Network/URL mismatch | Verify API URL, VPN/proxy |
933
+ | No workflows found | Not downloaded yet | Run `/fluent-connect` or `fluent workflow download` |
934
+ | "Plan required" error | Approval gate working as intended | Say "Plan the X feature" then "approved", or "just do it" to bypass |
935
+ | Rule not found in workflow | Module not deployed first | Deploy module before workflow |
936
+ | Rule fails with permission error | Rubix user missing roles | Each retailer has `<ACCOUNT>-<RETAILER_ID>-rubix` API user — check it has `ADMIN` + `GRAPHQL` roles |
937
+ | Skills not loading | IDE has stale runtime state | Restart Claude Code or open a new Codex session, then verify with `npx @fluentcommerce/ai-skills status` |
938
+ | Workflow deploy rejected | Same or lower version number | Always bump version before re-deploying — Fluent rejects same/lower |
939
+ | Workflow changes not visible after deploy | Three cache layers (MCP server, local files, CLI workflowlog) | See [Workflow Caching & Staleness](workflow-reference.md#workflow-caching--staleness) for layer-by-layer diagnosis |
940
+ | Manifest setting not loading | `valueType` wrong or body in `value` not `lobValue` | Use `valueType: "JSON"`, `context: "ACCOUNT"`, `contextId: 0`, body in `lobValue` |
941
+ | Chrome DevTools MCP not working | Not configured in `.mcp.json` | Add `chrome-devtools` entry or reinstall with `--with-chrome`, then restart your IDE/session |
942
+
943
+ ### MCP debugging steps
944
+
945
+ ```bash
946
+ # 1. Verify Fluent CLI
947
+ fluent --version
948
+
949
+ # 2. Verify profile
950
+ fluent profile retailers YOUR_PROFILE
951
+
952
+ # 3. Test MCP extension server (starts on stdio — Ctrl+C to exit)
953
+ npx @fluentcommerce/fluent-mcp-extn
954
+
955
+ # 4. Regenerate MCP config
956
+ npx @fluentcommerce/ai-skills mcp-setup --profile YOUR_PROFILE
957
+
958
+ # 5. Restart your IDE or open a new Codex session (MCP servers initialize at startup)
959
+ ```
960
+
961
+ ### Getting help
962
+
963
+ - **Upgrade to latest:** `npx @fluentcommerce/ai-skills@latest install --profile YOUR_PROFILE --profile-retailer "YOUR_RETAILER"`
964
+ - **Full technical reference (npm/GitHub):** [@fluentcommerce/ai-skills on npmjs.com](https://www.npmjs.com/package/@fluentcommerce/ai-skills) — includes full group descriptions, agent roles, and developer setup
965
+ - **Issues or questions:** Raise in the project repository
966
+
967
+ ---
968
+
969
+ ## 11. CLI Reference
970
+
971
+ ```bash
972
+ npx @fluentcommerce/ai-skills <command> [--profile <name>] [groups...]
973
+ ```
974
+
975
+ ### Commands
976
+
977
+ | Command | Description |
978
+ |---|---|
979
+ | `install [groups...]` | Install skills. With `--profile`, also configures MCP and checks prerequisites. |
980
+ | `uninstall [groups...]` | Uninstall all groups or selected groups. Use `--purge` to also remove global knowledge (`~/.claude/fluent-knowledge/`). |
981
+ | `doctor` | Full setup health check — Node, CLI, IDE, skills, MCP, knowledge, profile, connectivity, and version comparison (local/global/npm). |
982
+ | `status [groups...]` | Show install status (checks marketplace and file-copy). |
983
+ | `generate` | Generate `.claude-plugin/` marketplace manifests from metadata. |
984
+ | `list` | List available groups. |
985
+ | `mcp-setup [options]` | Generate `.mcp.json` for official + extension MCP servers. |
986
+ | `flow-run [options]` | Run diagnostics and optional guarded module deploy. |
987
+ | `--version` | Show package version. |
988
+ | `--help` | Show help (includes MCP troubleshooting). |
989
+
990
+ ### Global Options
991
+
992
+ | Option | Description |
993
+ |---|---|
994
+ | `--profile <name>` | Fluent CLI profile — auto-configures `.mcp.json` on install |
995
+ | `--profile-retailer <ref>` | Retailer ref (requires `--profile`) |
996
+ | `--install-mcp-extn` | Pre-install `@fluentcommerce/fluent-mcp-extn` locally for faster MCP startup |
997
+ | `--project-root <path>` | Override project root path |
998
+
999
+ ### `mcp-setup` Options
1000
+
1001
+ ```bash
1002
+ # Basic — generates .mcp.json
1003
+ npx @fluentcommerce/ai-skills mcp-setup --profile YOUR_PROFILE
1004
+
1005
+ # With retailer ref
1006
+ npx @fluentcommerce/ai-skills mcp-setup --profile YOUR_PROFILE --profile-retailer YOUR_RETAILER
1007
+
1008
+ # Clone and build extension source locally
1009
+ npx @fluentcommerce/ai-skills mcp-setup --install-extn-source --profile YOUR_PROFILE
1010
+
1011
+ # Enable video recording for /fluent-ui-record
1012
+ npx @fluentcommerce/ai-skills mcp-setup --profile YOUR_PROFILE --save-video
1013
+ ```
1014
+
1015
+ | Option | Description |
1016
+ |---|---|
1017
+ | `--browser-url <url>` | Set `FLUENT_UI_BASE_URL` for Chrome DevTools MCP |
1018
+ | `--no-browser` | Skip Chrome DevTools MCP setup (backend-only workflows) |
1019
+ | `--save-video [resolution]` | Enable browser video recording (default: 1920x1080) |
1020
+ | `--install-extn-source` | Clone and build extension server locally |
1021
+
1022
+ ### `flow-run` Options
1023
+
1024
+ Runs pre-deploy diagnostics and optionally deploys:
1025
+
1026
+ ```bash
1027
+ # Diagnostics only
1028
+ npx @fluentcommerce/ai-skills flow-run \
1029
+ --profile YOUR_PROFILE --retailer YOUR_RETAILER \
1030
+ --module dist/module.zip --config config/module.config.json
1031
+
1032
+ # Diagnostics + guarded deploy
1033
+ npx @fluentcommerce/ai-skills flow-run \
1034
+ --profile YOUR_PROFILE --retailer YOUR_RETAILER \
1035
+ --module dist/module.zip --config config/module.config.json \
1036
+ --deploy --yes --exclude-workflows
1037
+ ```
1038
+
1039
+ ### Environment Variables
1040
+
1041
+ Credentials must be set as **shell environment variables** — never in `.mcp.json`.
1042
+
1043
+ | Variable | Purpose | Required when |
1044
+ |---|---|---|
1045
+ | `FLUENT_USERNAME` | Fluent account username | UI testing, non-profile MCP auth |
1046
+ | `FLUENT_PASSWORD` | Fluent account password | UI testing, non-profile MCP auth |
1047
+ | `FLUENT_CLIENT_ID` | OAuth client ID | OAuth auth (alternative to username/password) |
1048
+ | `FLUENT_CLIENT_SECRET` | OAuth client secret | OAuth auth |
1049
+ | `BITBUCKET_USERNAME` | Bitbucket username | Bitbucket MCP server |
1050
+ | `BITBUCKET_APP_PASSWORD` | Bitbucket app password | Bitbucket MCP server |
1051
+
1052
+ **What goes in `.mcp.json`:** Only non-secret config — `FLUENT_PROFILE`, `FLUENT_PROFILE_RETAILER`, `FLUENT_RETAILER_ID`, `FLUENT_UI_BASE_URL`. The installer manages these automatically.
1053
+
1054
+ ### MCP Config Location
1055
+
1056
+ | Client | Location |
1057
+ |---|---|
1058
+ | Claude Code | Workspace root `.mcp.json` |
1059
+ | Codex (user scope) | `~/.codex/config.toml` |
1060
+ | Codex (project scope) | Workspace root `.mcp.json` |
1061
+
1062
+ ---
1063
+
1064
+ ## 12. Appendix: Capability Ownership Map
1065
+
1066
+ ### Which Skill Owns What
1067
+
1068
+ | Capability | Owner Skill |
1069
+ |---|---|
1070
+ | Account connection & workspace setup | `/fluent-connect` |
1071
+ | CLI profile management | `/fluent-profile` |
1072
+ | Account bootstrap | `/fluent-bootstrap` |
1073
+ | Feature reverse-engineering | `/fluent-feature-explain` |
1074
+ | Feature planning (multi-artifact) | `/fluent-feature-plan` |
1075
+ | Requirements gathering | `/fluent-use-case-discover` |
1076
+ | Workflow design & building | `/fluent-workflow-builder` |
1077
+ | Workflow structural analysis | `/fluent-workflow-analyzer` |
1078
+ | Workflow deployment | `/fluent-workflow-deploy` |
1079
+ | Rule scaffolding | `/fluent-rule-scaffold` |
1080
+ | Rule unit test generation and repair | `/fluent-rule-test` |
1081
+ | Module scaffolding | `/fluent-module-scaffold` |
1082
+ | Module validation | `/fluent-module-validate` |
1083
+ | Module build & packaging | `/fluent-build` |
1084
+ | Module deployment | `/fluent-module-deploy` |
1085
+ | Pre-deploy quality gates | `/fluent-pre-deploy-check` |
1086
+ | E2E testing | `/fluent-e2e-test` |
1087
+ | Event tracing & debugging | `/fluent-trace` |
1088
+ | Entity-ref runtime vs workflow diff | `/fluent-entity-flow-diagnose` |
1089
+ | Event API model reference | `/fluent-event-api` |
1090
+ | Transition API discovery | `/fluent-transition-api` |
1091
+ | Settings management | `/fluent-settings` |
1092
+ | Manifest building & editing | `/fluent-mystique-builder` |
1093
+ | Manifest validation & analysis | `/fluent-mystique-assess` |
1094
+ | SDK component scaffolding | `/fluent-mystique-scaffold` |
1095
+ | SDK build pipeline (8 gates) | `/fluent-frontend-build` |
1096
+ | SDK code quality audit (9 phases) | `/fluent-frontend-review` |
1097
+ | SDK README generation | `/fluent-frontend-readme` |
1098
+ | Manifest CDN vs custom diff | `/fluent-mystique-diff` |
1099
+ | Browser UI testing | `/fluent-ui-test` |
1100
+ | UI recording & evidence | `/fluent-ui-record` |
1101
+ | System monitoring | `/fluent-system-monitoring` |
1102
+ | Implementation map | `/fluent-implementation-map` |
1103
+ | Connection topology | `/fluent-connection-analysis` |
1104
+ | Custom code analysis | `/fluent-custom-code` |
1105
+ | Source code onboarding | `/fluent-module-convert` |
1106
+ | Sourcing framework | `/fluent-sourcing` |
1107
+ | Test data creation | `/fluent-test-data` |
1108
+ | Version management | `/fluent-build` |
1109
+ | Rollback | `/fluent-rollback` |
1110
+ | Session tracking and audit export | `/fluent-session` |
1111
+ | Feature status dashboard | `/fluent-feature-status` |
1112
+ | Feature dashboard (live HTML) | `/fluent-feature-status` |
1113
+ | Scope decomposition & feature phasing | `/fluent-scope-plan` |
1114
+ | Ready For Launch assessment | `/fluent-rfl-assess` |
1115
+ | Skill observability (tracing, routing, feedback) | `/fluent-skill-observability` |
1116
+ | Knowledge initialization | `/fluent-knowledge-init` |
1117
+ | Data module scaffolding | `/fluent-data-module-scaffold` |
1118
+ | Mermaid diagram validation | See `knowledge/mermaid-syntax-rules.md` |
1119
+ | Workspace tree visualization | `/fluent-workspace-tree` |
1120
+ | Batch job management | `/fluent-job-batch` |
1121
+ | Retailer configuration | `/fluent-retailer-config` |
1122
+ | MCP tools reference | `/fluent-mcp-tools` |
1123
+ | MCP core reference | `/fluent-mcp-core` |
1124
+ | CLI command reference | `/fluent-cli-reference` |
1125
+ | CLI MCP and CI/CD setup | `/fluent-cli-mcp-cicd` |
1126
+ | CLI retailer management | `/fluent-cli-retailer` |
1127
+ | Workflow CLI operations | `/fluent-workflow` |
1128
+ | Mystique SDK component addition | `/fluent-mystique-component` |
1129
+ | Mystique SDK API reference | `/fluent-mystique-sdk-reference` |
1130
+ | Mystique UI preview | `/fluent-mystique-preview` |
1131
+ | Virtual inventory catalog | `/fluent-inventory-catalog` |
1132
+ | Feature archival | `/fluent-archive` |
1133
+ | Goal-directed autonomous orchestration | `/fluent-goal` |
1134
+ | Account environment snapshot | `/fluent-account-snapshot` |
1135
+ | Rule lookup and discovery | `/fluent-rule-lookup` |
1136
+
1137
+ ### Routing Guide
1138
+
1139
+ | User says... | Route to |
1140
+ |---|---|
1141
+ | "Why did this fail?" / "Entity stuck?" | `/fluent-trace` |
1142
+ | "What happened vs what should have happened for this entity ref?" | `/fluent-entity-flow-diagnose` |
1143
+ | "Explain feature / how does X work?" | `/fluent-feature-explain` |
1144
+ | "Plan this feature / implement X" | `/fluent-feature-plan` |
1145
+ | "What actions available at this status?" | `/fluent-transition-api` |
1146
+ | "Write tests for a rule / generate rule tests / fix rule test" | `/fluent-rule-test` |
1147
+ | "Deploy workflow / upload workflow" | `/fluent-workflow-deploy` |
1148
+ | "Build manifest / create page / add route" | `/fluent-mystique-builder` |
1149
+ | "Compare manifests / what's customized / CDN vs custom" | `/fluent-mystique-diff` |
1150
+ | "Test the page in browser" | `/fluent-ui-test` |
1151
+ | "Build the SDK project / run tests" | `/fluent-frontend-build` |
1152
+ | "Review frontend code quality" | `/fluent-frontend-review` |
1153
+ | "Ready for launch / production audit" | `/fluent-rfl-assess` |
1154
+ | "Roll back / undo deployment" | `/fluent-rollback` |
1155
+ | "Bootstrap account / new environment" | `/fluent-bootstrap` |
1156
+ | "Show feature dashboard" | `/fluent-feature-status` |
1157
+ | "Generate component README" | `/fluent-frontend-readme` |
1158
+ | "Validate this mermaid diagram" | See `knowledge/mermaid-syntax-rules.md` |
1159
+ | "Show workspace tree / directory structure" | `/fluent-workspace-tree` |
1160
+ | "Phase this feature / break into slices" | `/fluent-scope-plan` |
1161
+ | "Add component to SDK project" | `/fluent-mystique-component` |
1162
+ | "Preview UI change / mock component" | `/fluent-mystique-preview` |
1163
+ | "Archive this feature / mark as done" | `/fluent-archive` |
1164
+ | "Manage inventory / virtual catalogue" | `/fluent-inventory-catalog` |
1165
+ | "SDK hooks / registry API / component patterns" | `/fluent-mystique-sdk-reference` |
1166
+
1167
+ ---
1168
+
1169
+ ## 13. Workspace Setup
1170
+
1171
+ ### Directory Layout
1172
+
1173
+ Skills organize all implementation artifacts under `accounts/<PROFILE>/`:
1174
+
1175
+ Workspace root also contains installer-managed reference material:
1176
+
1177
+ ```
1178
+ <project-root>/
1179
+ ├── .mcp.json ← MCP server config
1180
+ ├── CLAUDE.md ← Starter workspace instructions for Claude Code
1181
+ ├── AGENTS.md ← Starter workspace instructions for Codex/agentic tooling
1182
+ ├── knowledge/ ← Packaged platform knowledge copied locally
1183
+ ├── docs/ ← Packaged reference docs copied locally
1184
+ └── accounts/<PROFILE>/ ← Account-specific implementation artifacts
1185
+ ```
1186
+
1187
+ ```
1188
+ accounts/
1189
+ <PROFILE>/ # matches your FLUENT_PROFILE name
1190
+ SOURCE/ # account-level, shared across retailers
1191
+ backend/ # Java Maven plugin repos
1192
+ <repo-name>/ # git-cloned custom plugin repo
1193
+ resources/module.json
1194
+ pom.xml
1195
+ src/main/java/...
1196
+ <reference-module>/ # reference module package (module.json + JAR)
1197
+ module.json
1198
+ assets/rules/*.jar
1199
+ .decompiled/<jar-basename>/ # auto-generated from JAR decompilation
1200
+ DECOMPILED.md # marker with source JAR, date, decompiler
1201
+ com/fluentcommerce/... # decompiled Java classes
1202
+ frontend/ # Mystique SDK component projects
1203
+ <project-name>/ # custom SDK component project
1204
+ package.json
1205
+ src/index.tsx
1206
+ workflows/ # retailer-scoped workflow definitions
1207
+ <RETAILER_REF>/
1208
+ ORDER__HD.json
1209
+ FULFILMENT__HD_WH.json
1210
+ workflow-context.json # download metadata
1211
+ features/ # feature-axis: one dir per feature
1212
+ curbside-pickup/
1213
+ spec.md # business spec (from use-case-discover)
1214
+ plan.md # implementation plan (from feature-plan)
1215
+ architecture.md # feature architecture doc (from feature-explain)
1216
+ status.json # machine-readable lifecycle state
1217
+ analysis/ # generated analysis artifacts
1218
+ code/source-map.json
1219
+ modules/ # persistent module inventory
1220
+ reports/ # ephemeral reports
1221
+ module-validate/*.report.json
1222
+ tasks/ # operational task plans (non-feature)
1223
+ 2026-02-23-rule-scaffold-curbside-pickup.md
1224
+ feedback/ # skill execution learnings
1225
+ <skill>.jsonl # append-only records
1226
+ index.json # counters
1227
+ sessions/ # audit trail exports
1228
+ settings/backups/ # non-manifest setting backups
1229
+ manifests/backups/ # manifest setting backups
1230
+ knowledge/ # account-level overrides (takes precedence)
1231
+ workspace-state.json # cached state for idempotent re-runs
1232
+ workspace-index.json # cross-profile index
1233
+ ```
1234
+
1235
+ Directories are created on demand by skills (`mkdir -p`) — nothing is pre-created.
1236
+
1237
+ ### Why this layout
1238
+
1239
+ - `SOURCE/` is at the profile (account) level because plugin code is deployed per-account and shared across retailers. Split into `backend/` (Java plugins, reference JARs, `.decompiled/` output) and `frontend/` (Mystique SDK component projects).
1240
+ - `workflows/` are scoped by retailer ref because workflow definitions can differ per retailer.
1241
+ - `analysis/` holds generated artifacts reused across skills (source maps, module validation, topology).
1242
+ - `features/` stores per-feature artifacts with machine-readable `status.json` tracking lifecycle state.
1243
+ - `reports/` is ephemeral — regenerated on each skill run.
1244
+ - `feedback/` is append-only — learnings from past skill executions reused in pre-flight.
1245
+
1246
+ ### Adding Source Code
1247
+
1248
+ **Clone Java plugin repos:**
1249
+
1250
+ ```bash
1251
+ cd accounts/MY_PROFILE/SOURCE/backend
1252
+ git clone https://your-org/fc-plugin-custom.git
1253
+ git clone https://your-org/fc-plugin-returns.git
1254
+ ```
1255
+
1256
+ Each repo should contain: `resources/module.json`, `pom.xml`, `src/main/java/`. Skills auto-detect repos by searching for these files recursively.
1257
+
1258
+ **Add a JAR (no source available):**
1259
+
1260
+ ```bash
1261
+ cp fc-plugin-custom-1.2.3.jar accounts/MY_PROFILE/SOURCE/backend/
1262
+ ```
1263
+
1264
+ Skills will auto-decompile it into `SOURCE/backend/.decompiled/<jar-basename>/`, extract `module.json`, and create a `DECOMPILED.md` marker. Decompiled source is **read-only** — skills can analyze but never suggest editing it.
1265
+
1266
+ **Add reference/OOTB modules:**
1267
+
1268
+ ```bash
1269
+ cp -r fluent-module-order/ accounts/MY_PROFILE/SOURCE/backend/
1270
+ # Contains: module.json + assets/rules/*.jar
1271
+ ```
1272
+
1273
+ Skills read rule names and descriptions from `module.json` — no decompilation needed for metadata.
1274
+
1275
+ ### Downloading Workflows
1276
+
1277
+ Workflows are downloaded per-retailer:
1278
+
1279
+ ```bash
1280
+ # -r accepts either the retailer ref or display name
1281
+ fluent workflow download -p MY_PROFILE -r "MY_RETAILER" -w all \
1282
+ -o accounts/MY_PROFILE/workflows/"MY_RETAILER"/
1283
+ ```
1284
+
1285
+ Or let `/fluent-connect` do it automatically during workspace setup.
1286
+
1287
+ ### How Analysis Works
1288
+
1289
+ Skills build a holistic view by cross-referencing four sources:
1290
+
1291
+ | Source | What it provides |
1292
+ |--------|-----------------|
1293
+ | **Live environment** (`plugin_list`) | All registered orchestration rules |
1294
+ | **Local source** (git repos) | Full Java source — modifiable, buildable |
1295
+ | **Local JARs** (decompiled) | Bytecode analysis — analyzable, read-only |
1296
+ | **Workflow definitions** (downloaded JSON) | Status graphs, rulesets, event chains |
1297
+
1298
+ This produces a **deployed rule inventory** — each rule classified as "full source", "decompiled", or "missing":
1299
+
1300
+ | Status | What you can do |
1301
+ |--------|-----------------|
1302
+ | Full source | Analyze, modify, build, redeploy |
1303
+ | Decompiled | Analyze behavior, cannot modify |
1304
+ | Missing | Blind spot — provide source or JAR |
1305
+
1306
+ The inventory persists in `workspace-state.json` and powers `/fluent-custom-code`, `/fluent-workflow-analyzer`, `/fluent-rfl-assess`, and other skills.
1307
+
1308
+ ### Adding a New Account
1309
+
1310
+ ```bash
1311
+ mkdir -p accounts/NEW_PROFILE/SOURCE/backend
1312
+ mkdir -p accounts/NEW_PROFILE/SOURCE/frontend
1313
+ mkdir -p accounts/NEW_PROFILE/workflows
1314
+ ```
1315
+
1316
+ Then clone repos, download workflows, or just run `/fluent-connect` interactively to do it all.
1317
+
1318
+ ### Chrome DevTools MCP (Browser UI Testing)
1319
+
1320
+ [Chrome DevTools MCP](https://www.npmjs.com/package/chrome-devtools-mcp) is auto-configured by `mcp-setup`. It provides browser automation for `/fluent-ui-test` and `/fluent-ui-record`.
1321
+
1322
+ | Capability | Tool | Used by |
1323
+ |-----------|------|---------|
1324
+ | Navigate to OMS/Store apps | `navigate_page` | ui-test, ui-record |
1325
+ | Read page structure (DOM snapshot) | `take_snapshot` | ui-test, ui-record |
1326
+ | Capture visual evidence | `take_screenshot` | ui-test, ui-record |
1327
+ | Inject DOM annotation overlays | `evaluate_script` | ui-test, ui-record |
1328
+ | Fill login forms | `type_text`, `click` | ui-test, ui-record |
1329
+ | Detect JS/GraphQL errors | `list_console_messages` | ui-test, ui-record |
1330
+ | Continuous video recording | `--save-video` flag | ui-record |
1331
+
1332
+ **Enable video recording:**
1333
+
1334
+ ```bash
1335
+ npx @fluentcommerce/ai-skills mcp-setup --profile MY_PROFILE --save-video
1336
+ ```
1337
+
1338
+ FFmpeg is optional — enables post-processing (trim, convert `.webm` to `.mp4`, generate GIF previews). Install with `winget install ffmpeg` (Windows) or `brew install ffmpeg` (macOS).
1339
+
1340
+ ### .gitignore
1341
+
1342
+ The `accounts/` directory should be in `.gitignore` — it may contain profile references, downloaded workflows, and customer-specific source:
1343
+
1344
+ ```gitignore
1345
+ accounts/
1346
+ .mcp.json
1347
+ ```
1348
+
1349
+ ---
1350
+
1351
+ *This document is part of the `@fluentcommerce/ai-skills` package and is the canonical operational reference.*