@fluentcommerce/ai-skills 0.13.0 → 0.15.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.
- package/README.md +17 -12
- package/bin/cli.mjs +219 -43
- package/content/cli/skills/fluent-bootstrap/SKILL.md +1 -1
- package/content/cli/skills/fluent-cli-mcp-cicd/SKILL.md +1 -1
- package/content/cli/skills/fluent-cli-reference/SKILL.md +1 -1
- package/content/cli/skills/fluent-cli-retailer/SKILL.md +1 -1
- package/content/cli/skills/fluent-connect/SKILL.md +58 -3
- package/content/cli/skills/fluent-profile/SKILL.md +35 -5
- package/content/cli/skills/fluent-workflow/SKILL.md +2 -1
- package/content/dev/agents/fluent-backend-dev.md +2 -2
- package/content/dev/agents/fluent-dev.md +1 -1
- package/content/dev/agents/fluent-frontend-dev.md +1 -1
- package/content/dev/skills/fluent-account-snapshot/SKILL.md +1 -1
- package/content/dev/skills/fluent-archive/SKILL.md +2 -1
- package/content/dev/skills/fluent-build/SKILL.md +2 -2
- package/content/dev/skills/fluent-connection-analysis/SKILL.md +2 -1
- package/content/dev/skills/fluent-custom-code/SKILL.md +3 -2
- package/content/dev/skills/fluent-data-module-scaffold/SKILL.md +7 -6
- package/content/dev/skills/fluent-e2e-test/SKILL.md +1 -1
- package/content/dev/skills/fluent-entity-flow-diagnose/SKILL.md +2 -1
- package/content/dev/skills/fluent-event-api/SKILL.md +3 -2
- package/content/dev/skills/fluent-feature-explain/SKILL.md +2 -1
- package/content/dev/skills/fluent-feature-plan/SKILL.md +2 -1
- package/content/dev/skills/fluent-feature-status/SKILL.md +1 -1
- package/content/dev/skills/fluent-frontend-build/SKILL.md +1 -1
- package/content/dev/skills/fluent-frontend-readme/SKILL.md +2 -1
- package/content/dev/skills/fluent-frontend-review/SKILL.md +2 -1
- package/content/dev/skills/fluent-goal/SKILL.md +1 -1
- package/content/dev/skills/fluent-implementation-map/SKILL.md +1 -1
- package/content/dev/skills/fluent-inventory-catalog/SKILL.md +2 -2
- package/content/dev/skills/fluent-job-batch/SKILL.md +6 -3
- package/content/dev/skills/fluent-knowledge-init/SKILL.md +1 -1
- package/content/dev/skills/{fluent-source-onboard → fluent-module-convert}/SKILL.md +223 -24
- package/content/dev/skills/fluent-module-scaffold/SKILL.md +2 -1
- package/content/dev/skills/fluent-module-validate/SKILL.md +8 -7
- package/content/dev/skills/fluent-mystique-assess/SKILL.md +22 -6
- package/content/dev/skills/fluent-mystique-builder/SKILL.md +33 -2
- package/content/dev/skills/fluent-mystique-component/SKILL.md +1 -1
- package/content/dev/skills/fluent-mystique-diff/SKILL.md +1 -1
- package/content/dev/skills/fluent-mystique-preview/SKILL.md +19 -2
- package/content/dev/skills/fluent-mystique-scaffold/SDK_REFERENCE.md +2 -2
- package/content/dev/skills/fluent-mystique-scaffold/SKILL.md +13 -2
- package/content/dev/skills/fluent-mystique-scaffold/TEMPLATES.md +1 -1
- package/content/dev/skills/fluent-mystique-sdk-reference/SKILL.md +2 -1
- package/content/dev/skills/fluent-pre-deploy-check/SKILL.md +3 -3
- package/content/dev/skills/fluent-retailer-config/SKILL.md +3 -3
- package/content/dev/skills/fluent-rollback/SKILL.md +1 -1
- package/content/dev/skills/fluent-rule-lookup/SKILL.md +2 -1
- package/content/dev/skills/fluent-rule-scaffold/SKILL.md +7 -6
- package/content/dev/skills/fluent-rule-test/SKILL.md +2 -1
- package/content/dev/skills/fluent-scope-plan/SKILL.md +2 -2
- package/content/dev/skills/fluent-session/SKILL.md +1 -1
- package/content/dev/skills/fluent-settings/SKILL.md +2 -2
- package/content/dev/skills/fluent-skill-observability/SKILL.md +1 -1
- package/content/dev/skills/fluent-sourcing/SKILL.md +38 -13
- package/content/dev/skills/fluent-system-monitoring/SKILL.md +1 -1
- package/content/dev/skills/fluent-test-data/SKILL.md +1 -1
- package/content/dev/skills/fluent-trace/SKILL.md +3 -2
- package/content/dev/skills/fluent-transition-api/SKILL.md +3 -2
- package/content/dev/skills/fluent-ui-record/SKILL.md +1 -1
- package/content/dev/skills/fluent-ui-test/SKILL.md +9 -8
- package/content/dev/skills/fluent-use-case-discover/SKILL.md +2 -2
- package/content/dev/skills/fluent-workflow-analyzer/SKILL.md +3 -2
- package/content/dev/skills/fluent-workspace-tree/SKILL.md +4 -3
- package/content/knowledge/index.md +3 -3
- package/content/knowledge/platform/domain-model.md +1 -0
- package/content/knowledge/platform/module-structure.md +5 -5
- package/content/knowledge/platform/mystique-routing.md +6 -3
- package/content/knowledge/platform/permissions-and-contexts.md +2 -2
- package/content/knowledge/platform/rule-test-patterns.md +1 -1
- package/content/knowledge/platform/workflow-json-structure.md +1 -1
- package/content/mcp-extn/skills/fluent-mcp-core/SKILL.md +2 -1
- package/content/mcp-extn/skills/fluent-mcp-tools/SKILL.md +3 -2
- package/content/rfl/skills/fluent-rfl-assess/SKILL.md +1 -1
- package/docs/01-first-session.md +175 -0
- package/docs/02-prompt-guide.md +246 -0
- package/docs/03-use-cases.md +1181 -0
- package/docs/04-onboarding-plan.md +355 -0
- package/docs/05-getting-started.md +262 -0
- package/docs/06-dev-workflow.md +1040 -0
- package/docs/INDEX.md +40 -0
- package/docs/agents-and-skills-guide.md +199 -0
- package/docs/capability-map.md +165 -0
- package/docs/chrome-devtools-mcp-reference.md +401 -0
- package/docs/fluent-ai-skills-reference.md +1351 -0
- package/docs/manifest-safety.md +79 -0
- package/docs/mcp-servers.md +209 -0
- package/docs/workflow-reference.md +167 -0
- package/lib/fluent-brand.css +55 -0
- package/metadata.json +7 -6
- package/package.json +17 -3
- package/scripts/postinstall.mjs +38 -0
- package/{content/dev/skills/fluent-trace/scripts/analyze-event-capture.mjs → tools/event-capture-analyzer.mjs} +3 -3
- package/tools/{generate-feature-dashboard.mjs → feature-dashboard.mjs} +2 -2
- package/tools/manifest-diff.mjs +1 -1
- package/{content/dev/skills/fluent-mystique-assess/validator.mjs → tools/manifest-validator.mjs} +2 -2
- package/tools/workflow-explainer.mjs +1021 -0
|
@@ -0,0 +1,1351 @@
|
|
|
1
|
+
# Fluent Commerce AI Skills & MCP Extension — Operational Reference
|
|
2
|
+
|
|
3
|
+
[](https://www.npmjs.com/package/@fluentcommerce/ai-skills) [](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 (8) · Dev (52) · 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 (7 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" | 37 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/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/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/feature-dashboard.mjs --setup
|
|
616
|
+
|
|
617
|
+
# Start live server (auto-refreshes on file changes)
|
|
618
|
+
node fluent-ai-skills/tools/feature-dashboard.mjs --profile ACME --serve --port 3456
|
|
619
|
+
|
|
620
|
+
# Generate static HTML only (no server)
|
|
621
|
+
node fluent-ai-skills/tools/feature-dashboard.mjs --profile ACME
|
|
622
|
+
|
|
623
|
+
# All profiles at once (static only)
|
|
624
|
+
node fluent-ai-skills/tools/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 (7 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.*
|