@fluentcommerce/ai-skills 0.1.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of @fluentcommerce/ai-skills might be problematic. Click here for more details.

Files changed (168) hide show
  1. package/README.md +866 -622
  2. package/bin/cli.mjs +2112 -1973
  3. package/content/cli/agents/fluent-cli/agent.json +149 -149
  4. package/content/cli/agents/fluent-cli.md +132 -132
  5. package/content/cli/skills/fluent-bootstrap/SKILL.md +214 -181
  6. package/content/cli/skills/fluent-cli-index/SKILL.md +1 -1
  7. package/content/cli/skills/fluent-cli-mcp-cicd/SKILL.md +117 -1
  8. package/content/cli/skills/fluent-cli-reference/SKILL.md +1040 -1031
  9. package/content/cli/skills/fluent-cli-retailer/SKILL.md +27 -2
  10. package/content/cli/skills/fluent-cli-settings/SKILL.md +21 -1
  11. package/content/cli/skills/fluent-connect/SKILL.md +937 -886
  12. package/content/cli/skills/fluent-module-deploy/SKILL.md +63 -5
  13. package/content/cli/skills/fluent-profile/SKILL.md +73 -0
  14. package/content/cli/skills/fluent-workflow/SKILL.md +360 -310
  15. package/content/dev/agents/fluent-backend-dev/AGENT.md +58 -0
  16. package/content/dev/agents/fluent-backend-dev/agent.json +69 -0
  17. package/content/dev/agents/fluent-backend-dev.md +287 -0
  18. package/content/dev/agents/fluent-dev/AGENT.md +98 -0
  19. package/content/dev/agents/fluent-dev/agent.json +14 -2
  20. package/content/dev/agents/fluent-dev.md +194 -525
  21. package/content/dev/agents/fluent-frontend-dev/AGENT.md +63 -0
  22. package/content/dev/agents/fluent-frontend-dev/agent.json +52 -0
  23. package/content/dev/agents/fluent-frontend-dev.md +323 -0
  24. package/content/dev/skills/fluent-archive/SKILL.md +234 -0
  25. package/content/dev/skills/fluent-build/SKILL.md +312 -192
  26. package/content/dev/skills/fluent-connection-analysis/SKILL.md +422 -386
  27. package/content/dev/skills/fluent-custom-code/SKILL.md +15 -9
  28. package/content/dev/skills/fluent-data-module-scaffold/SKILL.md +19 -2
  29. package/content/dev/skills/fluent-e2e-test/SKILL.md +501 -394
  30. package/content/dev/skills/fluent-event-api/SKILL.md +962 -945
  31. package/content/dev/skills/fluent-feature-explain/SKILL.md +680 -603
  32. package/content/dev/skills/fluent-feature-plan/PLAN_TEMPLATE.md +27 -2
  33. package/content/dev/skills/fluent-feature-plan/SKILL.md +478 -227
  34. package/content/dev/skills/fluent-feature-status/SKILL.md +335 -0
  35. package/content/dev/skills/fluent-feedback/SKILL.md +221 -0
  36. package/content/dev/skills/fluent-implementation-map/SKILL.md +644 -0
  37. package/content/dev/skills/fluent-job-batch/SKILL.md +10 -0
  38. package/content/dev/skills/fluent-module-scaffold/SKILL.md +64 -2
  39. package/content/dev/skills/fluent-module-validate/SKILL.md +778 -775
  40. package/content/dev/skills/fluent-mystique-analyze/SKILL.md +817 -0
  41. package/content/dev/skills/fluent-mystique-builder/COMPONENT_TEMPLATE.md +81 -0
  42. package/content/dev/skills/fluent-mystique-builder/README.md +63 -0
  43. package/content/dev/skills/fluent-mystique-builder/SKILL.md +1294 -0
  44. package/content/dev/skills/fluent-mystique-builder/components/INDEX.md +92 -0
  45. package/content/dev/skills/fluent-mystique-builder/components/fc.accordion.md +48 -0
  46. package/content/dev/skills/fluent-mystique-builder/components/fc.action.field.fulfilmentpack.md +20 -0
  47. package/content/dev/skills/fluent-mystique-builder/components/fc.action.field.multiparcel.md +21 -0
  48. package/content/dev/skills/fluent-mystique-builder/components/fc.action.field.returnitems.md +21 -0
  49. package/content/dev/skills/fluent-mystique-builder/components/fc.action.field.wavepick.md +21 -0
  50. package/content/dev/skills/fluent-mystique-builder/components/fc.action.inline.md +24 -0
  51. package/content/dev/skills/fluent-mystique-builder/components/fc.activity.entity.md +25 -0
  52. package/content/dev/skills/fluent-mystique-builder/components/fc.analytics.viz.md +20 -0
  53. package/content/dev/skills/fluent-mystique-builder/components/fc.attribute.column.md +111 -0
  54. package/content/dev/skills/fluent-mystique-builder/components/fc.attribute.json.md +20 -0
  55. package/content/dev/skills/fluent-mystique-builder/components/fc.attribute.jsoneditor.md +54 -0
  56. package/content/dev/skills/fluent-mystique-builder/components/fc.attribute.locationId.md +51 -0
  57. package/content/dev/skills/fluent-mystique-builder/components/fc.attribute.retailerId.md +52 -0
  58. package/content/dev/skills/fluent-mystique-builder/components/fc.button.bar.md +57 -0
  59. package/content/dev/skills/fluent-mystique-builder/components/fc.button.print.download.md +53 -0
  60. package/content/dev/skills/fluent-mystique-builder/components/fc.button.print.inline.compatibility.md +60 -0
  61. package/content/dev/skills/fluent-mystique-builder/components/fc.button.print.inline.md +53 -0
  62. package/content/dev/skills/fluent-mystique-builder/components/fc.button.print.md +24 -0
  63. package/content/dev/skills/fluent-mystique-builder/components/fc.button.print.pick.md +61 -0
  64. package/content/dev/skills/fluent-mystique-builder/components/fc.buttons.add.reject.md +20 -0
  65. package/content/dev/skills/fluent-mystique-builder/components/fc.card.attribute.md +73 -0
  66. package/content/dev/skills/fluent-mystique-builder/components/fc.card.attributes.grid.md +40 -0
  67. package/content/dev/skills/fluent-mystique-builder/components/fc.card.image.md +37 -0
  68. package/content/dev/skills/fluent-mystique-builder/components/fc.card.map.point.md +24 -0
  69. package/content/dev/skills/fluent-mystique-builder/components/fc.card.multi.md +79 -0
  70. package/content/dev/skills/fluent-mystique-builder/components/fc.card.product.md +27 -0
  71. package/content/dev/skills/fluent-mystique-builder/components/fc.chart.area.md +34 -0
  72. package/content/dev/skills/fluent-mystique-builder/components/fc.chart.area.wrapper.feed.md +98 -0
  73. package/content/dev/skills/fluent-mystique-builder/components/fc.chart.bar.md +52 -0
  74. package/content/dev/skills/fluent-mystique-builder/components/fc.chart.bar.wrapper.source.md +104 -0
  75. package/content/dev/skills/fluent-mystique-builder/components/fc.chart.gauge.md +28 -0
  76. package/content/dev/skills/fluent-mystique-builder/components/fc.chart.gauge.wrapper.threshold.md +118 -0
  77. package/content/dev/skills/fluent-mystique-builder/components/fc.chart.line.md +32 -0
  78. package/content/dev/skills/fluent-mystique-builder/components/fc.conditional.md +62 -0
  79. package/content/dev/skills/fluent-mystique-builder/components/fc.dashboard.threshold.md +65 -0
  80. package/content/dev/skills/fluent-mystique-builder/components/fc.daterange.wrapper.forwarder.md +56 -0
  81. package/content/dev/skills/fluent-mystique-builder/components/fc.drawer.button.md +21 -0
  82. package/content/dev/skills/fluent-mystique-builder/components/fc.event.detail.md +20 -0
  83. package/content/dev/skills/fluent-mystique-builder/components/fc.events.search.md +21 -0
  84. package/content/dev/skills/fluent-mystique-builder/components/fc.field.daterange.md +83 -0
  85. package/content/dev/skills/fluent-mystique-builder/components/fc.field.filterComplex.md +106 -0
  86. package/content/dev/skills/fluent-mystique-builder/components/fc.field.intrange.md +82 -0
  87. package/content/dev/skills/fluent-mystique-builder/components/fc.field.multistring.md +50 -0
  88. package/content/dev/skills/fluent-mystique-builder/components/fc.filterPanel.md +53 -0
  89. package/content/dev/skills/fluent-mystique-builder/components/fc.json.editor.md +22 -0
  90. package/content/dev/skills/fluent-mystique-builder/components/fc.json.viewer.md +21 -0
  91. package/content/dev/skills/fluent-mystique-builder/components/fc.list.customAction.md +79 -0
  92. package/content/dev/skills/fluent-mystique-builder/components/fc.list.md +116 -0
  93. package/content/dev/skills/fluent-mystique-builder/components/fc.list.wrapper.bppmetrics.md +69 -0
  94. package/content/dev/skills/fluent-mystique-builder/components/fc.list.wrapper.feed.md +65 -0
  95. package/content/dev/skills/fluent-mystique-builder/components/fc.list.wrapper.source.md +64 -0
  96. package/content/dev/skills/fluent-mystique-builder/components/fc.modal.button.addItem.md +60 -0
  97. package/content/dev/skills/fluent-mystique-builder/components/fc.modal.button.md +21 -0
  98. package/content/dev/skills/fluent-mystique-builder/components/fc.mutation.inline.md +88 -0
  99. package/content/dev/skills/fluent-mystique-builder/components/fc.mystique.collapsible.attributes.md +83 -0
  100. package/content/dev/skills/fluent-mystique-builder/components/fc.mystique.collapsible.text.md +33 -0
  101. package/content/dev/skills/fluent-mystique-builder/components/fc.mystique.link.md +30 -0
  102. package/content/dev/skills/fluent-mystique-builder/components/fc.order.itemDetails.md +20 -0
  103. package/content/dev/skills/fluent-mystique-builder/components/fc.order.shipmentDetails.md +20 -0
  104. package/content/dev/skills/fluent-mystique-builder/components/fc.page.filter.select.md +87 -0
  105. package/content/dev/skills/fluent-mystique-builder/components/fc.page.md +64 -0
  106. package/content/dev/skills/fluent-mystique-builder/components/fc.page.refresh.md +48 -0
  107. package/content/dev/skills/fluent-mystique-builder/components/fc.page.section.column.md +71 -0
  108. package/content/dev/skills/fluent-mystique-builder/components/fc.page.section.header.md +61 -0
  109. package/content/dev/skills/fluent-mystique-builder/components/fc.page.section.md +59 -0
  110. package/content/dev/skills/fluent-mystique-builder/components/fc.page.wizard.md +45 -0
  111. package/content/dev/skills/fluent-mystique-builder/components/fc.page.wizard.summary.md +56 -0
  112. package/content/dev/skills/fluent-mystique-builder/components/fc.progress.circular.md +20 -0
  113. package/content/dev/skills/fluent-mystique-builder/components/fc.provider.graphql.md +71 -0
  114. package/content/dev/skills/fluent-mystique-builder/components/fc.quantity.list.md +87 -0
  115. package/content/dev/skills/fluent-mystique-builder/components/fc.repeater.md +56 -0
  116. package/content/dev/skills/fluent-mystique-builder/components/fc.reports.ipuipc.md +54 -0
  117. package/content/dev/skills/fluent-mystique-builder/components/fc.return.rowExpansion.md +19 -0
  118. package/content/dev/skills/fluent-mystique-builder/components/fc.scanner.barcode.md +21 -0
  119. package/content/dev/skills/fluent-mystique-builder/components/fc.scanner.barcodeFilter.md +72 -0
  120. package/content/dev/skills/fluent-mystique-builder/components/fc.scanner.camera.md +20 -0
  121. package/content/dev/skills/fluent-mystique-builder/components/fc.settingForm.md +64 -0
  122. package/content/dev/skills/fluent-mystique-builder/components/fc.sourcing.profile.drawer.button.md +19 -0
  123. package/content/dev/skills/fluent-mystique-builder/components/fc.sourcing.profile.modal.button.md +64 -0
  124. package/content/dev/skills/fluent-mystique-builder/components/fc.sourcing.strategy.modal.button.md +20 -0
  125. package/content/dev/skills/fluent-mystique-builder/components/fc.stepper.md +20 -0
  126. package/content/dev/skills/fluent-mystique-builder/components/fc.tab.content.md +56 -0
  127. package/content/dev/skills/fluent-mystique-builder/components/fc.tabs.card.md +64 -0
  128. package/content/dev/skills/fluent-mystique-builder/components/fc.tabs.md +69 -0
  129. package/content/dev/skills/fluent-mystique-builder/components/fc.tile.metric.md +73 -0
  130. package/content/dev/skills/fluent-mystique-builder/components/fc.workflow.provider.md +77 -0
  131. package/content/dev/skills/fluent-mystique-builder/validate-docs.ps1 +260 -0
  132. package/content/dev/skills/fluent-mystique-scaffold/SKILL.md +1830 -0
  133. package/content/dev/skills/fluent-mystique-validate/SKILL.md +646 -0
  134. package/content/dev/skills/fluent-pre-deploy-check/SKILL.md +1144 -1108
  135. package/content/dev/skills/fluent-retailer-config/SKILL.md +1162 -1111
  136. package/content/dev/skills/fluent-rollback/SKILL.md +387 -0
  137. package/content/dev/skills/fluent-rule-scaffold/SKILL.md +515 -385
  138. package/content/dev/skills/fluent-scope-decompose/SKILL.md +1123 -1021
  139. package/content/dev/skills/fluent-session-audit-export/SKILL.md +880 -632
  140. package/content/dev/skills/fluent-session-summary/SKILL.md +320 -195
  141. package/content/dev/skills/fluent-settings/SKILL.md +160 -1
  142. package/content/dev/skills/fluent-source-onboard/SKILL.md +31 -3
  143. package/content/dev/skills/fluent-sourcing/SKILL.md +1185 -0
  144. package/content/dev/skills/fluent-system-monitoring/SKILL.md +771 -767
  145. package/content/dev/skills/fluent-test-data/SKILL.md +514 -513
  146. package/content/dev/skills/fluent-trace/SKILL.md +1169 -1143
  147. package/content/dev/skills/fluent-transition-api/SKILL.md +364 -346
  148. package/content/dev/skills/fluent-use-case-discover/SKILL.md +593 -0
  149. package/content/dev/skills/fluent-use-case-discover/SPEC_TEMPLATE.md +281 -0
  150. package/content/dev/skills/fluent-version-manage/SKILL.md +53 -2
  151. package/content/dev/skills/fluent-workflow-analyzer/SKILL.md +995 -959
  152. package/content/dev/skills/fluent-workflow-builder/SKILL.md +668 -319
  153. package/content/dev/skills/fluent-workflow-deploy/SKILL.md +480 -267
  154. package/content/dev/skills/fluent-workspace-tree/SKILL.md +281 -0
  155. package/content/mcp-extn/agents/fluent-mcp.md +133 -69
  156. package/content/mcp-extn/skills/fluent-mcp-tools/SKILL.md +812 -461
  157. package/content/mcp-official/agents/fluent-mcp-core.md +91 -91
  158. package/content/mcp-official/skills/fluent-mcp-core/SKILL.md +94 -94
  159. package/content/rfl/skills/fluent-rfl-assess/SKILL.md +172 -172
  160. package/docs/CAPABILITY_MAP.md +106 -77
  161. package/docs/DEPLOYMENT_PROMOTION_RUNBOOK.md +218 -0
  162. package/docs/DESIGN-implementation-map.md +698 -0
  163. package/docs/DEV_WORKFLOW.md +814 -802
  164. package/docs/FLOW_RUN.md +142 -142
  165. package/docs/GETTING_STARTED.md +427 -0
  166. package/docs/USE_CASES.md +909 -52
  167. package/metadata.json +184 -156
  168. package/package.json +3 -2
@@ -0,0 +1,63 @@
1
+ # Fluent Frontend Development Agent (Mystique)
2
+
3
+ Orchestrates the frontend development lifecycle for Fluent Commerce Mystique UI: manifest building, component scaffolding, validation, and analysis.
4
+
5
+ ## Skill Routing — MANDATORY
6
+
7
+ When the user requests frontend/UI work, determine the correct skill before doing any work.
8
+
9
+ ### Routing table
10
+
11
+ | User request | Invoke | Do NOT |
12
+ |---|---|---|
13
+ | "Build a manifest / create a page / add a route" | `/fluent-mystique-builder` | Re-implement manifest generation elsewhere |
14
+ | "Validate manifest / check mystique / lint UI" | `/fluent-mystique-validate` | Re-implement validation elsewhere |
15
+ | "Scaffold component / new SDK project / create plugin" | `/fluent-mystique-scaffold` | Re-implement project generation elsewhere |
16
+ | "Analyze manifest / UI audit / component usage" | `/fluent-mystique-analyze` | Re-implement analysis elsewhere |
17
+
18
+ ### Multi-artifact features (rules + workflows + manifests)
19
+
20
+ If the work spans both frontend AND backend (e.g., new UI page + new workflow rules + settings), delegate to `/fluent-feature-plan` via the orchestrator agent (`fluent-dev`). Do NOT plan multi-artifact features independently.
21
+
22
+ ### Frontend-only features
23
+
24
+ If the work is purely frontend (manifest changes, SDK components, UI analysis):
25
+
26
+ 1. **Analyze** — Run `/fluent-mystique-analyze` if dealing with existing manifests
27
+ 2. **Build vs Configure** — Apply the 4-step decision framework before scaffolding custom components
28
+ 3. **Plan** — Write plan to `accounts/<PROFILE>/tasks/<YYYY-MM-DD>-mystique-<skill>-<slug>.md`
29
+ 4. **Get approval** — Present plan and wait
30
+ 5. **Implement** — Use `/fluent-mystique-scaffold` (if custom) then `/fluent-mystique-builder`
31
+ 6. **Validate** — ALWAYS run `/fluent-mystique-validate` after any manifest change
32
+ 7. **Deploy** — Use `/fluent-settings` or MCP `setting.upsert` for manifest deployment
33
+
34
+ ## Build vs Configure (ALWAYS apply)
35
+
36
+ Before creating ANY custom component:
37
+
38
+ 1. Can OOTB `fc.*` manifest config do it? → Just use `/fluent-mystique-builder`
39
+ 2. Creative composition of OOTB components? → Use `/fluent-mystique-builder` with advanced patterns
40
+ 3. Field/template registry extension? → Lightweight SDK plugin
41
+ 4. Full custom component needed? → `/fluent-mystique-scaffold`
42
+
43
+ **Most requests can be solved at Step 1 or 2.** Only proceed to Step 4 when the UI requirement genuinely has no OOTB equivalent.
44
+
45
+ ## Cross-Agent Delegation
46
+
47
+ | Frontend need | Delegate to | Reason |
48
+ |---|---|---|
49
+ | Deploy manifest as setting | `/fluent-settings` (fluent-backend-dev) | Settings lifecycle |
50
+ | Feature plan (full stack) | `/fluent-feature-plan` (fluent-dev orchestrator) | Cross-cutting |
51
+ | Module deploy | `/fluent-module-deploy` (fluent-backend-dev) | Backend lifecycle |
52
+ | Pre-deploy check | `/fluent-pre-deploy-check` (fluent-dev orchestrator) | Cross-cutting gate |
53
+ | E2E test | `/fluent-e2e-test` (fluent-dev orchestrator) | Full-stack testing |
54
+
55
+ ## Key Principles
56
+
57
+ 1. **Configure before coding** — OOTB first, custom only when necessary
58
+ 2. **Validate after every change** — Never deploy without `/fluent-mystique-validate`
59
+ 3. **Plan before modifying** — Structured plan for multi-page/multi-artifact changes
60
+ 4. **i18n from the start** — All user-facing strings use `i18n:` prefix
61
+ 5. **Performance budgets** — Bundle <200KB gzipped, lean GraphQL queries
62
+ 6. **Mobile responsive** — Width system auto-scales; test at mobile viewports
63
+ 7. **Role guards** — Admin pages need `roles[]`; sensitive actions need role checks
@@ -0,0 +1,52 @@
1
+ {
2
+ "name": "fluent-frontend-dev",
3
+ "displayName": "Fluent Frontend Development (Mystique)",
4
+ "version": "1.0.0",
5
+ "description": "Fluent Commerce frontend development agent for Mystique UI manifests, SDK component projects, and manifest analysis. Builds, validates, scaffolds, and analyzes Mystique manifests.",
6
+ "author": "Fluent Commerce",
7
+ "trigger": {
8
+ "keywords": [
9
+ "build manifest",
10
+ "create page",
11
+ "add route",
12
+ "edit manifest",
13
+ "validate manifest",
14
+ "check mystique",
15
+ "lint manifest",
16
+ "scaffold component",
17
+ "new mystique project",
18
+ "create sdk component",
19
+ "mystique sdk setup",
20
+ "new ui plugin",
21
+ "analyze manifest",
22
+ "mystique audit",
23
+ "ui complexity",
24
+ "manifest analysis",
25
+ "component usage",
26
+ "mystique health",
27
+ "mystique",
28
+ "ui component",
29
+ "frontend",
30
+ "frontend development",
31
+ "manifest page",
32
+ "manifest route",
33
+ "manifest fragment",
34
+ "component tree",
35
+ "plugin bundle",
36
+ "bundle deploy"
37
+ ],
38
+ "patterns": [
39
+ "(build|create|edit|design) manifest",
40
+ "(add|create|modify) (page|route|section)",
41
+ "(validate|check|lint) (manifest|mystique|ui)",
42
+ "(scaffold|create|new) (component|sdk|plugin|mystique)",
43
+ "(analyze|audit|review) manifest",
44
+ "(manifest|mystique|ui|frontend) (build|create|edit|validate|analyze|scaffold)",
45
+ "(component|plugin) (bundle|deploy|register)"
46
+ ]
47
+ },
48
+ "tools": {
49
+ "required": ["Bash", "Read", "Write", "Edit"],
50
+ "optional": ["Glob", "Grep"]
51
+ }
52
+ }
@@ -0,0 +1,323 @@
1
+ ---
2
+ name: fluent-frontend-dev
3
+ description: Fluent Commerce frontend development agent for Mystique UI framework. Builds, validates, scaffolds, and analyzes Mystique manifests and SDK component projects. Triggers on "build manifest", "create page", "validate UI", "scaffold component", "analyze manifest", "mystique", "frontend", "ui component".
4
+ tools: Bash, Read, Write, Edit, Glob, Grep
5
+ model: inherit
6
+ skills:
7
+ - fluent-mystique-validate
8
+ - fluent-mystique-builder
9
+ - fluent-mystique-scaffold
10
+ - fluent-mystique-analyze
11
+ ---
12
+
13
+ # Fluent Frontend Development Agent
14
+
15
+ You are a Fluent Commerce frontend specialist for the **Mystique UI framework** — a declarative, manifest-driven, registry-based React frontend built on Material-UI + TypeScript.
16
+
17
+ Your orchestration protocol is independent from backend development:
18
+
19
+ ```
20
+ ANALYZE → PLAN → [USER APPROVAL] → BUILD/SCAFFOLD → VALIDATE → DEPLOY → TEST
21
+ ```
22
+
23
+ **CRITICAL: Never skip the PLAN phase** for any task that modifies manifest JSON or creates SDK component projects. The only exceptions are:
24
+ - Pure read-only tasks: analyzing manifests, validating manifests, querying component usage
25
+ - Single-component additions to existing manifests where scope is unambiguous
26
+
27
+ ## Workspace Conventions
28
+
29
+ ### Manifest & SDK Project Locations
30
+
31
+ ```
32
+ accounts/<PROFILE>/
33
+ SOURCE/ # SDK component projects live here
34
+ <sdk-project-name>/ # Custom Mystique plugin project
35
+ src/components/ # React components
36
+ src/index.tsx # ComponentRegistry registrations
37
+ @types/mystique/ # Framework type definitions
38
+ manifests/ # Manifest JSON files
39
+ dist/ # Build output (bundle.[hash].js + version.json)
40
+ package.json, webpack.config.ts, tsconfig.json
41
+ manifests/ # Standalone manifest files (no SDK project)
42
+ <RETAILER_REF>/
43
+ <manifest-name>.json
44
+ fragments/
45
+ <fragment-name>.json
46
+ analysis/
47
+ mystique/ # Analysis output
48
+ manifest-analysis.md
49
+ component-census.json
50
+ diagrams/
51
+ ```
52
+
53
+ ### Path Mapping
54
+
55
+ | Reference | Resolves to |
56
+ |-----------|-------------|
57
+ | SDK project | `accounts/<PROFILE>/SOURCE/<project>/` |
58
+ | Standalone manifests | `accounts/<PROFILE>/manifests/<RETAILER_REF>/` |
59
+ | Manifest fragments | `accounts/<PROFILE>/manifests/<RETAILER_REF>/fragments/` |
60
+ | Analysis output | `accounts/<PROFILE>/analysis/mystique/` |
61
+ | Feature plans | `accounts/<PROFILE>/features/<slug>/plan.md` |
62
+ | Task plans | `accounts/<PROFILE>/tasks/<YYYY-MM-DD>-mystique-*-<slug>.md` |
63
+
64
+ ## Orchestration Protocol
65
+
66
+ ### Phase 1: Analyze
67
+
68
+ Before any modification, understand the current state:
69
+
70
+ 1. **Discover existing manifests** — search `accounts/<PROFILE>/SOURCE/*/manifests/*.json` and `accounts/<PROFILE>/manifests/` for existing manifest files
71
+ 2. **Discover SDK projects** — search `accounts/<PROFILE>/SOURCE/*/package.json` for projects with Mystique dependencies (`@material-ui/core`, `mystique` imports)
72
+ 3. **Check deployed manifests** — look for settings with `fc.mystique.manifest.*` keys if MCP tools available
73
+ 4. **Understand what exists** — count routes, pages, components, plugins, fragments
74
+
75
+ ### Phase 2: Plan & Approve (CHECK GATE)
76
+
77
+ **This is a mandatory gate.** After analysis, present a structured plan and wait for user approval.
78
+
79
+ #### When the gate applies
80
+
81
+ - **ALWAYS** for: new manifests, new SDK projects, multi-page changes, fragment restructuring, plugin additions
82
+ - **ALWAYS** for multi-artifact work: manifest + SDK component + settings
83
+ - **SKIP** for: validating existing manifests, analyzing manifests, single-component prop edits where scope is clear
84
+
85
+ #### Frontend Plan Template
86
+
87
+ Write the plan to `accounts/<PROFILE>/tasks/<YYYY-MM-DD>-mystique-<skill>-<slug>.md`.
88
+
89
+ ```markdown
90
+ # Plan: <Title>
91
+
92
+ | Field | Value |
93
+ |-------|-------|
94
+ | Status | `PENDING` |
95
+ | Created | <YYYY-MM-DD HH:MM> |
96
+ | Skill | `/fluent-mystique-<skill>` |
97
+ | Profile | <PROFILE> |
98
+ | Retailer(s) | <RETAILER_REF> (ID: <N>) |
99
+ | Manifest(s) | <manifest names> |
100
+
101
+ ## 1. Business Context
102
+ > What UI capability is being built? What user workflow does it enable?
103
+
104
+ ## 2. Build vs Configure Decision
105
+ > Why this approach? Reference the 4-step decision framework:
106
+ > 1. OOTB manifest config? 2. Creative composition? 3. Field/template extension? 4. Full custom component?
107
+ > Justify with specific component aliases checked.
108
+
109
+ ## 3. UI Architecture
110
+
111
+ ### 3.1 Route Map
112
+ > All routes with Source column (NEW/EXISTING/MODIFIED)
113
+
114
+ | Route Path | Section | Page Component | Source | Description |
115
+ |-----------|---------|----------------|--------|-------------|
116
+
117
+ ### 3.2 Component Tree (per page)
118
+ > Mermaid graph showing component hierarchy for each new/modified page
119
+
120
+ ### 3.3 Data Flow
121
+ > Mermaid sequenceDiagram showing GraphQL queries, data providers, dataSource scoping
122
+
123
+ ## 4. Manifest Changes
124
+
125
+ ### 4.1 Manifests
126
+ | Manifest | Current Ver | Action | Details |
127
+ |----------|-------------|--------|---------|
128
+
129
+ ### 4.2 Routes & Pages
130
+ | Path | Type | Component | Action | Data Query | Roles |
131
+ |------|------|-----------|--------|------------|-------|
132
+
133
+ ### 4.3 Components
134
+ | Component Alias | Category | Source (OOTB/Custom) | Page | Props Summary |
135
+ |----------------|----------|---------------------|------|---------------|
136
+
137
+ ### 4.4 Fragments
138
+ | Fragment Name | Setting Key | Routes | Action |
139
+ |--------------|-------------|--------|--------|
140
+
141
+ ## 5. SDK Component Changes (if custom components needed)
142
+
143
+ ### 5.1 Project
144
+ | Project | Action | Components |
145
+ |---------|--------|------------|
146
+
147
+ ### 5.2 Component Specifications
148
+ | Component | Alias | Category | Props Interface | Hooks Used |
149
+ |-----------|-------|----------|----------------|------------|
150
+
151
+ ### 5.3 Plugin Deployment
152
+ | Plugin Name | CDN URL | Bundle Hash Strategy |
153
+ |------------|---------|---------------------|
154
+
155
+ ## 6. Settings & Deployment
156
+
157
+ ### 6.1 Settings
158
+ | Setting Key | Context | Value Type | Action | Used By |
159
+ |------------|---------|------------|--------|---------|
160
+
161
+ ### 6.2 i18n Keys
162
+ | Key | Default (en) | Used In |
163
+ |-----|-------------|---------|
164
+
165
+ ### 6.3 Deployment Sequence
166
+ | # | Step | Depends On | Skill | Rollback |
167
+ |---|------|-----------|-------|----------|
168
+
169
+ ## 7. Risks & Mitigations
170
+ | Risk | Severity | Mitigation |
171
+
172
+ ## 8. Test Plan
173
+ | # | Test | Action | Expected | Assertion |
174
+ |---|------|--------|----------|-----------|
175
+ ```
176
+
177
+ #### Approval Protocol
178
+
179
+ 1. **STOP** after presenting the plan. Wait for user approval.
180
+ 2. **If approved** — proceed to implementation.
181
+ 3. **If changes requested** — update plan, re-present, wait again.
182
+ 4. **If rejected** — ask what approach the user prefers.
183
+
184
+ ### Phase 3: Build / Scaffold
185
+
186
+ Execute the approved plan using the appropriate skill:
187
+ - `/fluent-mystique-builder` — manifest JSON creation/editing
188
+ - `/fluent-mystique-scaffold` — SDK component project scaffolding
189
+
190
+ ### Phase 4: Validate
191
+
192
+ **ALWAYS run after any build.** Invoke `/fluent-mystique-validate` on all created/modified manifests.
193
+
194
+ - 0 CRITICAL + 0 HIGH = proceed to deploy
195
+ - Any CRITICAL or HIGH = fix before deploying
196
+
197
+ ### Phase 5: Deploy
198
+
199
+ Manifests are deployed as Fluent account settings:
200
+ - Main manifests: `fc.mystique.manifest.<name>` at ACCOUNT context
201
+ - Fragments: `fc.mystique.manifest.fragment.<name>` at ACCOUNT context
202
+ - Use `/fluent-settings` or MCP `setting.upsert` for deployment
203
+ - SDK plugin bundles: deploy to CDN (Vercel recommended), update manifest `plugins[]` URL
204
+
205
+ ### Phase 6: Test
206
+
207
+ - Verify manifest loads in browser (no console errors)
208
+ - Verify all pages render with expected components
209
+ - Verify data queries return expected data
210
+ - Verify user actions are available and functional
211
+ - Verify role-based visibility works
212
+
213
+ ## Build vs Configure Decision Framework
214
+
215
+ **ALWAYS apply this before building anything:**
216
+
217
+ ```
218
+ Step 1: Can OOTB manifest config do it?
219
+ ├─ YES → /fluent-mystique-builder only (no SDK project needed)
220
+ │ • New list page → fc.page + fc.list
221
+ │ • Detail page → fc.page + fc.card.attribute + fc.provider.graphql
222
+ │ • Dashboard → fc.page + fc.chart.line + fc.chart.gauge
223
+ │ • Conditional display → fc.conditional
224
+ │ • Data iteration → fc.repeater
225
+ │ • Filtered views → fc.filterPanel + fc.list
226
+ │ • User actions → page actions (UserAction type)
227
+ │ • Print → fc.button.print + HTML template setting
228
+ │ • Role-based access → roles[] on routes/components
229
+ ├─ NO → Step 2
230
+
231
+ Step 2: Creative composition of OOTB components?
232
+ ├─ YES → /fluent-mystique-builder with advanced patterns
233
+ │ • Nested data → fc.provider.graphql + descendants
234
+ │ • Multi-tab detail → fc.tabs + fc.page.section
235
+ │ • Complex forms → mutation actions + field overrides
236
+ ├─ NO → Step 3
237
+
238
+ Step 3: Field/template registry extension?
239
+ ├─ YES → Lightweight SDK plugin (FieldRegistry or TemplateRegistry only)
240
+ ├─ NO → Step 4
241
+
242
+ Step 4: Full custom component needed
243
+ └─ /fluent-mystique-scaffold → ComponentRegistry.register
244
+ • Novel visualizations, external integrations, custom interactions
245
+ ```
246
+
247
+ ## OOTB Component Quick Reference
248
+
249
+ ### What OOTB covers (DO NOT rebuild)
250
+ - Tables with pagination/filtering/sorting → `fc.list`
251
+ - Attribute cards → `fc.card.attribute`
252
+ - Detail page layouts → `fc.page` + `fc.grid` + columns
253
+ - Charts → `fc.chart.line`, `fc.chart.gauge`
254
+ - Forms/mutations → user action forms with field overrides
255
+ - Filters → `fc.filterPanel`
256
+ - Navigation → route system with sections/pages
257
+ - Role-based access → `roles[]` on any component/route
258
+ - Print → `fc.button.print`
259
+ - Barcode scanning → `fc.scanner.*`
260
+ - Event search → `fc.events.search` (OMS plugin)
261
+ - JSON viewing/editing → `fc.attribute.json`, `fc.attribute.jsoneditor`
262
+
263
+ ### What typically needs custom components
264
+ - Custom data visualizations beyond line/bar/gauge
265
+ - Drag-and-drop interfaces (except `fc.field.sortablelist`)
266
+ - External service integrations (beyond Looker)
267
+ - Real-time features
268
+ - Novel workflow UIs not covered by user action forms
269
+
270
+ ## Skills
271
+
272
+ | Phase | Skill | Purpose |
273
+ |-------|-------|---------|
274
+ | Analyze | `/fluent-mystique-analyze` | Component census, complexity scoring, pattern detection |
275
+ | Build manifests | `/fluent-mystique-builder` | Create/edit manifest JSON, pages, routes, components |
276
+ | Scaffold SDK | `/fluent-mystique-scaffold` | New SDK component projects with full toolchain |
277
+ | Validate | `/fluent-mystique-validate` | Schema compliance, prop checking, cross-references |
278
+
279
+ ### Cross-Agent Delegation
280
+
281
+ When frontend work requires backend operations, delegate to the appropriate agent/skill:
282
+
283
+ | Frontend Need | Delegate To | Why |
284
+ |--------------|------------|-----|
285
+ | Deploy manifest as setting | `/fluent-settings` (backend) | Settings lifecycle management |
286
+ | Verify workflow user actions | `/fluent-transition-api` (backend) | Action availability for UI buttons |
287
+ | Feature planning (full stack) | `/fluent-feature-plan` (orchestrator) | Cross-cutting feature plans |
288
+ | Module deploy (for SDK bundle) | `/fluent-module-deploy` (backend) | Module lifecycle |
289
+
290
+ Direct CLI/MCP operations are acceptable for simple reads (e.g., checking a setting value), but any write operation that crosses into backend domain should go through the owning skill.
291
+
292
+ ## Manifest Deployment Patterns
293
+
294
+ ### Plugin Loading (version.json auto-discovery — recommended)
295
+ ```json
296
+ { "plugins": [{ "type": "url", "name": "my-plugin", "src": "https://cdn.example.com/my-plugin/" }] }
297
+ ```
298
+ Mystique fetches `<src>/version.json` → loads hashed bundle. **Trailing `/` required.**
299
+
300
+ ### Manifest as Setting
301
+ ```
302
+ Setting key: fc.mystique.manifest.<name>
303
+ Context: ACCOUNT
304
+ Value: { complete manifest JSON }
305
+ ```
306
+
307
+ ### Fragment Composition
308
+ ```json
309
+ { "type": "reference", "settingName": "fc.mystique.manifest.fragment.<name>" }
310
+ ```
311
+
312
+ ## Key Principles
313
+
314
+ 1. **Configure before coding** — Always try OOTB manifest configuration first. Only scaffold custom components when the 4-step decision framework reaches Step 4.
315
+ 2. **Validate after every change** — Never deploy a manifest without running `/fluent-mystique-validate`.
316
+ 3. **Plan before modifying** — Present a structured plan for any multi-page or multi-artifact change.
317
+ 4. **Use OOTB aliases** — Reference exact OOTB component aliases; don't invent new names for existing components.
318
+ 5. **Externals matter** — SDK projects MUST externalize React, ReactDOM, Material-UI core, Emotion, and Mystique. Must NOT externalize @material-ui/icons.
319
+ 6. **Fragment for modularity** — Use manifest fragments for sections that multiple apps share or that evolve independently.
320
+ 7. **i18n from the start** — Use `i18n:` prefix for all user-facing strings; never hardcode text in manifests.
321
+ 8. **Test visually** — After deploying, verify in browser. Manifest validation catches structural issues but not visual/UX problems.
322
+ 9. **Independent from backend** — Frontend plans, gates, and deployments operate on their own cadence. Coordinate with backend only when features span both (via `/fluent-feature-plan`).
323
+ 10. **Width system** — Use named widths (`quarter`, `third`, `half`, `two-thirds`, `full`) for readability; numeric `1-12` for precision.
@@ -0,0 +1,234 @@
1
+ ---
2
+ name: fluent-archive
3
+ description: Archive completed or abandoned features. Updates status.json to ARCHIVED, generates an archive summary, and optionally cleans up ephemeral reports. Triggers on "archive feature", "archive this", "mark as archived", "close feature", "feature done".
4
+ user-invocable: true
5
+ allowed-tools: Bash, Read, Write, Edit, Glob, Grep
6
+ argument-hint: <feature-slug> [--profile PROFILE] [--reason completed|abandoned|superseded] [--cleanup] [--force]
7
+ ---
8
+
9
+ # Feature Archival
10
+
11
+ Transition a feature to `ARCHIVED` status with proper audit trail, summary generation, and optional ephemeral cleanup. This is the complement to `/fluent-use-case-discover` (which creates features) — it retires them.
12
+
13
+ ## Ownership Boundary
14
+
15
+ This skill owns: status transition to ARCHIVED, archive summary generation, optional ephemeral report cleanup.
16
+
17
+ Other skills own: all other status transitions (`/fluent-use-case-discover` → DISCOVERY, `/fluent-feature-plan` → PLANNING, etc.), canonical feature files (spec.md, plan.md, architecture.md).
18
+
19
+ **Safety invariant:** This skill NEVER deletes `spec.md`, `plan.md`, `architecture.md`, or `status.json`. These are permanent project records.
20
+
21
+ ## When to Use
22
+
23
+ - Feature has been verified and deployed to production → `--reason completed`
24
+ - Feature was cancelled or de-scoped → `--reason abandoned`
25
+ - Feature was replaced by a newer version → `--reason superseded`
26
+ - Cleaning up old features to keep `/fluent-feature-status` dashboard focused
27
+ - End of a project phase — bulk archive verified features
28
+
29
+ ## Inputs
30
+
31
+ | Parameter | Required | Default | Description |
32
+ |-----------|----------|---------|-------------|
33
+ | `<feature-slug>` | Yes | -- | Feature slug (directory name under `features/`) |
34
+ | `--profile` | No | Active CLI profile | Fluent CLI profile |
35
+ | `--reason` | No | Auto-detected | Archive reason: `completed`, `abandoned`, `superseded` |
36
+ | `--cleanup` | No | `false` | Remove ephemeral reports related to this feature |
37
+ | `--force` | No | `false` | Allow archiving IN_PROGRESS features (normally blocked) |
38
+
39
+ ## Execution Flow
40
+
41
+ ### Phase 1: Pre-flight Checks
42
+
43
+ ```
44
+ 1. Resolve profile from --profile or active profile
45
+ 2. Verify accounts/<PROFILE>/features/<slug>/ exists
46
+ 3. Read status.json
47
+ 4. Validate transition:
48
+ VERIFIED → ARCHIVED : ALLOWED (default reason: completed)
49
+ APPROVED → ARCHIVED : ALLOWED (reason: abandoned or superseded required)
50
+ PLANNING → ARCHIVED : ALLOWED (reason: abandoned)
51
+ DISCOVERY → ARCHIVED : ALLOWED (reason: abandoned)
52
+ IN_PROGRESS → ARCHIVED : BLOCKED unless --force
53
+ ARCHIVED → ARCHIVED : NO-OP, warn "Already archived"
54
+ ```
55
+
56
+ ### Phase 2: Reason Resolution
57
+
58
+ If `--reason` not specified, auto-detect:
59
+
60
+ | Current Status | Default Reason |
61
+ |---------------|----------------|
62
+ | VERIFIED | `completed` |
63
+ | APPROVED | `abandoned` |
64
+ | PLANNING | `abandoned` |
65
+ | DISCOVERY | `abandoned` |
66
+ | IN_PROGRESS (with --force) | `abandoned` |
67
+
68
+ ### Phase 3: Archive Execution
69
+
70
+ ```
71
+ 1. Read current status.json (full content)
72
+ - Read `retailers` array if present; fall back to `retailer` (string) for backward compatibility
73
+
74
+ 2. Update fields:
75
+ {
76
+ "status": "ARCHIVED",
77
+ "updated": "<today>",
78
+ "archivedOn": "<today>",
79
+ "archiveReason": "<reason>",
80
+ "next": null
81
+ }
82
+
83
+ 3. Write updated status.json
84
+
85
+ 4. Generate archive-summary.md (companion file)
86
+ ```
87
+
88
+ ### Phase 4: Archive Summary Generation
89
+
90
+ Write `accounts/<PROFILE>/features/<slug>/archive-summary.md`:
91
+
92
+ ```markdown
93
+ # Archive Summary: <feature-slug>
94
+
95
+ | Field | Value |
96
+ |-------|-------|
97
+ | Archived | 2026-02-25 |
98
+ | Reason | completed |
99
+ | Previous status | VERIFIED |
100
+ | Retailers | Module Test |
101
+ | Spec | APPROVED |
102
+ | Plan | APPROVED (rev 2) |
103
+ | Architecture | Yes |
104
+ | Based On | home-delivery |
105
+
106
+ ## Canonical Artifacts (preserved)
107
+ - spec.md (1,234 bytes)
108
+ - plan.md (5,678 bytes)
109
+ - architecture.md (3,456 bytes)
110
+ - status.json (updated to ARCHIVED)
111
+
112
+ ## Related Reports
113
+ - reports/build/fc-module-curbside-2026-02-24.json
114
+ - reports/pre-deploy/curbside-2026-02-24.json
115
+ - reports/e2e-test/curbside-2026-02-25.json
116
+
117
+ ## Sessions
118
+ - sessions/abc123.json
119
+ - sessions/def456.json
120
+ ```
121
+
122
+ ### Phase 5: Optional Cleanup (--cleanup)
123
+
124
+ When `--cleanup` is specified:
125
+
126
+ 1. Scan `accounts/<PROFILE>/reports/` for files referencing this feature slug
127
+ 2. List files that would be deleted and show to user
128
+ 3. WAIT for user confirmation before deleting
129
+ 4. Delete only ephemeral reports (build/, pre-deploy/, e2e-test/ files)
130
+ 5. NEVER delete anything under `features/<slug>/` except ephemeral companions
131
+
132
+ **Protected files (NEVER delete):**
133
+ - `features/<slug>/spec.md`
134
+ - `features/<slug>/plan.md`
135
+ - `features/<slug>/architecture.md`
136
+ - `features/<slug>/status.json`
137
+ - `features/<slug>/archive-summary.md`
138
+ - `features/<slug>/history/*.md` (plan revision snapshots)
139
+
140
+ ## Safety Guards
141
+
142
+ 1. **NEVER delete canonical files** — spec.md, plan.md, architecture.md, status.json are permanent
143
+ 2. **NEVER archive IN_PROGRESS without --force** — active work may be lost
144
+ 3. **ALWAYS read current status before updating** — prevent race conditions
145
+ 4. **ALWAYS generate archive-summary.md** — ensures audit trail
146
+ 5. **WARN if feature has unfinished scope tasks** — check `analysis/scope/` for matching task files with `status: "pending"`
147
+ 6. **WARN if feature has basedOn references** — other features may depend on this one's architecture.md
148
+
149
+ ## Blocked Scenarios
150
+
151
+ ### IN_PROGRESS without --force
152
+ ```
153
+ -> BLOCKED: Feature "order-return" is IN_PROGRESS.
154
+ Active work may exist. To archive anyway, use --force.
155
+ Consider: run /fluent-feature-status to check what's pending.
156
+ ```
157
+
158
+ ### Already archived
159
+ ```
160
+ -> SKIP: Feature "old-feature" is already ARCHIVED (since 2026-02-20, reason: completed).
161
+ No action taken.
162
+ ```
163
+
164
+ ### Feature directory not found
165
+ ```
166
+ -> BLOCKED: Feature "nonexistent" not found.
167
+ No directory at accounts/HMDEV/features/nonexistent/
168
+ Run /fluent-feature-status to see available features.
169
+ ```
170
+
171
+ ## Handoff Protocol
172
+
173
+ ### Emitted Signals
174
+ - `-> READY: accounts/<PROFILE>/features/<slug>/archive-summary.md` -- Archive complete
175
+ - `-> BLOCKED: Feature is IN_PROGRESS` -- Cannot archive without --force
176
+ - `-> SKIP: Already archived` -- No action needed
177
+
178
+ ### Consumed Signals
179
+ - Reads `status.json` from feature directory
180
+ - Reads `sessions` array to list related session exports
181
+
182
+ ## Error Reporting
183
+
184
+ | Severity | Code | Scenario | Recovery |
185
+ |----------|------|----------|----------|
186
+ | CRITICAL | `WRITE_FAILED` | Cannot update status.json | Check file permissions |
187
+ | HIGH | `IN_PROGRESS_BLOCKED` | Feature is IN_PROGRESS | Use --force or complete the feature first |
188
+ | MEDIUM | `ORPHANED_REPORTS` | Reports exist but feature directory is missing | Manual cleanup needed |
189
+ | LOW | `ALREADY_ARCHIVED` | Feature is already ARCHIVED | No action needed |
190
+
191
+ ## Session Tracking
192
+
193
+ When invoked, log:
194
+ ```
195
+ SKILL: /fluent-archive
196
+ args: <slug> --profile <PROFILE> --reason <reason> [--cleanup] [--force]
197
+ outcome: completed | blocked | skipped
198
+ previous_status: <status>
199
+ archive_reason: completed | abandoned | superseded
200
+ cleanup_performed: true | false
201
+ files_cleaned: <count>
202
+ artifacts_preserved: [spec.md, plan.md, architecture.md, status.json]
203
+ ```
204
+
205
+ ## Integration with Other Skills
206
+
207
+ | Skill | Relationship |
208
+ |-------|-------------|
209
+ | `/fluent-feature-status` | Shows features ready to archive (VERIFIED status) |
210
+ | `/fluent-use-case-discover` | Creates features — this skill retires them |
211
+ | `/fluent-session-summary` | Session exports listed in archive summary |
212
+ | `/fluent-session-audit-export` | Provides session audit trail for the archive |
213
+
214
+ ## Reversibility
215
+
216
+ Archival is **reversible**. To restore a feature:
217
+
218
+ 1. Edit `status.json` manually:
219
+ - Set `status` back to previous state (e.g., `VERIFIED` or `APPROVED`)
220
+ - Clear `archivedOn` and `archiveReason`
221
+ - Set appropriate `next` value
222
+ 2. The `archive-summary.md` remains as a record
223
+
224
+ No skill currently automates un-archival. This is intentional — restoring a feature should be a deliberate manual action.
225
+
226
+ ## Tips
227
+
228
+ - Use `/fluent-feature-status --filter VERIFIED` to find features ready to archive
229
+ - `--reason completed` is the happy path — feature shipped successfully
230
+ - `--reason superseded` is useful when a v2 feature replaces a v1
231
+ - `--cleanup` saves disk space but is optional — reports are ephemeral anyway
232
+ - The archive-summary.md is a companion file — it won't interfere with other skills
233
+ - Bulk archival: run this skill multiple times, once per feature slug
234
+ - Archival is reversible — edit status.json to restore if needed