@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,98 @@
1
+ ---
2
+ alias: "fc.chart.area.wrapper.feed"
3
+ aliases:
4
+ - fc.chart.area.wrapper.feed
5
+ category: wrapper
6
+ module: Core
7
+ ---
8
+ # fc.chart.area.wrapper.feed
9
+
10
+ Area chart wrapper that converts Metrics API feed data into a Recharts-readable format, used for Feeds Dashboard visualizations.
11
+
12
+ > **Note:** `fc.chart.area.md` lists this as an alias. This file documents the wrapper-specific behavior and Metrics API integration. For general area chart usage with standard GraphQL data, see `fc.chart.area`.
13
+
14
+ ## When to Use
15
+ - Visualizing inventory feed metrics as area charts (cumulative trends)
16
+ - Feeds Dashboard area chart displays
17
+ - Any Metrics API feed data that needs area chart visualization
18
+
19
+ ## Key Props
20
+ | Prop | Type | Required | What it controls |
21
+ |------|------|----------|------------------|
22
+ | `dataSource` | string | **Yes** | Path to Metrics API GraphQL feed data |
23
+ | `path` | string | No | Sub-path to chart data within the data source |
24
+ | `XAxis` | Axis | **Yes** | X-axis configuration (tick lines, axis lines) |
25
+ | `YAxis` | Axis | No | Y-axis configuration |
26
+ | `chartContainerConfig` | ChartContainerConfig | No | Responsive container sizing |
27
+ | `tooltip` | boolean | No | Show hover tooltips |
28
+ | `legend` | boolean | No | Show chart legend |
29
+ | `cartesianGrid` | CartesianGrid | No | Grid line configuration |
30
+ | `title` | string | No | Chart card title |
31
+ | `width` | CardWidth | No | Card width: `"quarter"`, `"third"`, `"half"`, `"two-thirds"`, `"full"`, or 1-12 (default: `"full"`) |
32
+ | `noCard` | boolean | No | Render without card background when `true` |
33
+
34
+ ### Axis
35
+ | Prop | Type | Required | What it controls |
36
+ |------|------|----------|------------------|
37
+ | `tickLine` | boolean | No | Show axis tick lines (default: `true`) |
38
+ | `axisline` | boolean | No | Show axis line (default: `true`) |
39
+
40
+ ### CartesianGrid
41
+ | Prop | Type | Required | What it controls |
42
+ |------|------|----------|------------------|
43
+ | `strokeDasharray` | string | **Yes** | Pattern of dashes and gaps for grid lines, e.g., `"3 3"` |
44
+
45
+ ### ChartContainerConfig
46
+ | Prop | Type | Required | What it controls |
47
+ |------|------|----------|------------------|
48
+ | `width` | string/number | No | Container width (default: `"100%"`) |
49
+ | `aspect` | number | No | Width/height ratio (default: `1`) |
50
+ | `maxHeight` | number | No | Maximum container height (default: `200`) |
51
+ | `height` | string/number | No | Fixed or percentage height |
52
+ | `minWidth` | string/number | No | Minimum container width |
53
+ | `minHeight` | string/number | No | Minimum container height |
54
+ | `debounce` | number | No | Resize event debounce in ms (default: `1`) |
55
+
56
+ ## Data Binding
57
+ Transforms Metrics API feed response data into the array-of-objects format expected by Recharts. The `dataSource` prop points to the Metrics API result path. The optional `path` prop drills into a sub-path of the data.
58
+
59
+ ## Descendants
60
+ No -- self-contained chart component.
61
+
62
+ ## Composition Patterns
63
+ - `fc.page` > `fc.chart.area.wrapper.feed` alongside `fc.list.wrapper.feed` for full Feeds Dashboard
64
+ - Use `noCard: true` when embedding inside an `fc.card.multi`
65
+ - Pair with `fc.daterange.wrapper.forwarder` for time-filtered feed charts
66
+
67
+ ## Gotchas
68
+ - Only works with Metrics API feed data -- use `fc.chart.area` for standard GraphQL data
69
+ - `dataSource` and `XAxis` are required
70
+ - `cartesianGrid.strokeDasharray` is required when `cartesianGrid` is specified
71
+ - Default `maxHeight` is `200` (different from bar chart wrapper's `300`)
72
+
73
+ ## Manifest Example
74
+ ```json
75
+ {
76
+ "component": "fc.chart.area.wrapper.feed",
77
+ "props": {
78
+ "title": "Feed Activity",
79
+ "dataSource": "feedMetrics",
80
+ "width": "half",
81
+ "XAxis": { "tickLine": false },
82
+ "YAxis": { "axisline": false },
83
+ "cartesianGrid": { "strokeDasharray": "3 3" },
84
+ "tooltip": true,
85
+ "legend": true,
86
+ "chartContainerConfig": {
87
+ "maxHeight": 250,
88
+ "aspect": 2
89
+ }
90
+ }
91
+ }
92
+ ```
93
+
94
+ ## AI Parse Notes
95
+ - **Primary intent:** Declarative Mystique component definition for manifests.
96
+ - **Selection signals:** Match by `alias`, category, and required `Key Props`.
97
+ - **Assembly hints:** Combine with compatible parent/child components listed in `Composition Patterns`.
98
+ - **Safety checks:** Validate required props and data bindings before manifest generation.
@@ -0,0 +1,52 @@
1
+ ---
2
+ alias: "fc.chart.bar"
3
+ aliases:
4
+ - fc.chart.bar
5
+ - fc.chart.bar.wrapper.source
6
+ - fc.chart.line
7
+ - fc.chart.area
8
+ - fc.chart.area.wrapper.feed
9
+ - fc.chart.gauge
10
+ - fc.chart.gauge.wrapper.threshold
11
+ category: content
12
+ module: Core
13
+ ---
14
+ # fc.chart.bar
15
+
16
+ Recharts-based data visualization. Covers: bar charts (comparisons), line charts (trends), area charts (cumulative), gauge charts (thresholds).
17
+
18
+ ## When to Use
19
+ - Analytics dashboards
20
+ - Data trend visualization
21
+ - KPI gauge displays
22
+
23
+ ## Key Props
24
+ | Prop | Type | Required | What it controls |
25
+ |------|------|----------|------------------|
26
+ | `dataSource` | string | **Yes** | Path to chart data |
27
+ | `xAxis` | AxisConfig | No | X-axis data key, ticks, labels |
28
+ | `yAxis` | AxisConfig | No | Y-axis configuration |
29
+ | `bars` / `lines` / `areas` | ChartSeries[] | No | Series definitions with dataKey, color |
30
+ | `legend` | boolean | No | Show legend |
31
+ | `tooltip` | boolean | No | Show hover tooltips |
32
+ | `title` | string | No | Chart title |
33
+ | `width` | CardWidth | No | Chart container width |
34
+
35
+ ## Manifest Example
36
+ ```json
37
+ {
38
+ "component": "fc.chart.bar",
39
+ "props": {
40
+ "dataSource": "orderMetrics",
41
+ "title": "Orders by Status",
42
+ "bars": [{ "dataKey": "count", "color": "#1976d2" }],
43
+ "xAxis": { "dataKey": "status" }
44
+ }
45
+ }
46
+ ```
47
+
48
+ ## AI Parse Notes
49
+ - **Primary intent:** Declarative Mystique component definition for manifests.
50
+ - **Selection signals:** Match by `alias`, category, and required `Key Props`.
51
+ - **Assembly hints:** Combine with compatible parent/child components listed in `Composition Patterns`.
52
+ - **Safety checks:** Validate required props and data bindings before manifest generation.
@@ -0,0 +1,104 @@
1
+ ---
2
+ alias: "fc.chart.bar.wrapper.source"
3
+ aliases:
4
+ - fc.chart.bar.wrapper.source
5
+ category: wrapper
6
+ module: Core
7
+ ---
8
+ # fc.chart.bar.wrapper.source
9
+
10
+ Bar chart wrapper that converts Metrics API source data into a Recharts-readable format, used for Sources Dashboard visualizations.
11
+
12
+ > **Note:** `fc.chart.bar.md` lists this as an alias. This file documents the wrapper-specific behavior and Metrics API integration. For general bar chart usage with standard GraphQL data, see `fc.chart.bar`.
13
+
14
+ ## When to Use
15
+ - Visualizing inventory source metrics as bar charts
16
+ - Sources Dashboard bar chart displays
17
+ - Any Metrics API data that needs bar chart visualization
18
+
19
+ ## Key Props
20
+ | Prop | Type | Required | What it controls |
21
+ |------|------|----------|------------------|
22
+ | `dataSource` | string | **Yes** | Path to Metrics API GraphQL data |
23
+ | `XAxis` | Axis | **Yes** | X-axis configuration (data key, ticks, labels) |
24
+ | `YAxis` | Axis | No | Y-axis configuration |
25
+ | `bars` | Bar[] | **Yes** | Bar series definitions (data keys, colors, stacking) |
26
+ | `chartContainerConfig` | ResponsiveContainerConfig | No | Responsive container sizing |
27
+ | `legend` | boolean | No | Show chart legend (generated from Bar `name` or `dataKey`) |
28
+ | `tooltip` | boolean | No | Show hover tooltips on bars |
29
+ | `title` | string | No | Chart card title |
30
+ | `width` | CardWidth | No | Card width: `"quarter"`, `"third"`, `"half"`, `"two-thirds"`, `"full"`, or 1-12 (default: `"full"`) |
31
+ | `noCard` | boolean | No | Render without card background when `true` |
32
+
33
+ ### Axis
34
+ | Prop | Type | Required | What it controls |
35
+ |------|------|----------|------------------|
36
+ | `dataKey` | string | No | Key in the data for axis values |
37
+ | `tick` | boolean | No | Show axis ticks (default: `true`) |
38
+ | `tickLine` | boolean | No | Show axis tick lines (default: `true`) |
39
+ | `axisline` | boolean | No | Show axis line (default: `true`) |
40
+ | `label` | string | No | Axis label text |
41
+ | `offset` | number | No | Label offset from axis (y-axis default: `-20`) |
42
+ | `angle` | number | No | Label rotation angle (y-axis default: `-90`) |
43
+ | `position` | string | No | Label position: `"insideBottom"`, `"insideLeft"`, `"top"`, `"right"`, etc. |
44
+
45
+ ### Bar
46
+ | Prop | Type | Required | What it controls |
47
+ |------|------|----------|------------------|
48
+ | `dataKey` | string | **Yes** | Data key for bar values (must be unique per bar) |
49
+ | `stackId` | string | No | Stack ID -- bars with same `stackId` are stacked |
50
+ | `fill` | string | No | Bar color in HEX format, e.g., `"#8B45E4"` |
51
+
52
+ ### ResponsiveContainerConfig
53
+ | Prop | Type | Required | What it controls |
54
+ |------|------|----------|------------------|
55
+ | `width` | string/number | No | Container width (default: `"100%"`) |
56
+ | `aspect` | number | No | Width/height ratio (default: `1`) |
57
+ | `maxHeight` | number | No | Maximum container height (default: `300`) |
58
+ | `height` | string/number | No | Fixed or percentage height |
59
+ | `minWidth` | string/number | No | Minimum container width |
60
+ | `minHeight` | string/number | No | Minimum container height |
61
+
62
+ ## Data Binding
63
+ Transforms Metrics API source response data into the array-of-objects format expected by Recharts. The `dataSource` prop points to the Metrics API result path. The wrapper handles the data shape conversion.
64
+
65
+ ## Descendants
66
+ No -- self-contained chart component.
67
+
68
+ ## Composition Patterns
69
+ - `fc.page` > `fc.chart.bar.wrapper.source` alongside `fc.list.wrapper.source` for full Sources Dashboard
70
+ - Use `noCard: true` when embedding inside an `fc.card.multi`
71
+ - Pair with `fc.daterange.wrapper.forwarder` for time-filtered source charts
72
+
73
+ ## Gotchas
74
+ - Only works with Metrics API data -- use `fc.chart.bar` for standard GraphQL data
75
+ - `XAxis` and `bars` are required -- chart will not render without them
76
+ - On mobile, card width auto-collapses to full width regardless of `width` setting
77
+ - Stacked bars require matching `stackId` values on two or more Bar entries
78
+
79
+ ## Manifest Example
80
+ ```json
81
+ {
82
+ "component": "fc.chart.bar.wrapper.source",
83
+ "props": {
84
+ "title": "Source Throughput",
85
+ "dataSource": "sourceMetrics",
86
+ "width": "half",
87
+ "XAxis": { "dataKey": "date" },
88
+ "YAxis": { "label": "Count" },
89
+ "bars": [
90
+ { "dataKey": "success", "fill": "#4CAF50" },
91
+ { "dataKey": "failed", "fill": "#D23B3B", "stackId": "total" },
92
+ { "dataKey": "pending", "fill": "#EF8F00", "stackId": "total" }
93
+ ],
94
+ "legend": true,
95
+ "tooltip": true
96
+ }
97
+ }
98
+ ```
99
+
100
+ ## AI Parse Notes
101
+ - **Primary intent:** Declarative Mystique component definition for manifests.
102
+ - **Selection signals:** Match by `alias`, category, and required `Key Props`.
103
+ - **Assembly hints:** Combine with compatible parent/child components listed in `Composition Patterns`.
104
+ - **Safety checks:** Validate required props and data bindings before manifest generation.
@@ -0,0 +1,28 @@
1
+ ---
2
+ alias: fc.chart.gauge
3
+ aliases:
4
+ - fc.chart.gauge
5
+ - fc.chart.gauge.wrapper.threshold
6
+ category: content
7
+ module: Core
8
+ ---
9
+
10
+ # fc.chart.gauge
11
+
12
+ Recharts-based gauge chart for threshold/target visualizations.
13
+
14
+ ## When to Use
15
+ - Performance metrics against targets, capacity utilization
16
+
17
+ ## Key Props
18
+ | Prop | Type | Required | What it controls |
19
+ |------|------|----------|------------------|
20
+ | dataSource | string | Yes | Path to chart data |
21
+ | title | string | No | Chart title |
22
+ | width | CardWidth | No | Card width |
23
+
24
+ ## AI Parse Notes
25
+ - **Primary intent:** Declarative Mystique component definition for manifests.
26
+ - **Selection signals:** Match by `alias`, category, and required `Key Props`.
27
+ - **Assembly hints:** Combine with compatible parent/child components listed in `Composition Patterns`.
28
+ - **Safety checks:** Validate required props and data bindings before manifest generation.
@@ -0,0 +1,118 @@
1
+ ---
2
+ alias: "fc.chart.gauge.wrapper.threshold"
3
+ aliases:
4
+ - fc.chart.gauge.wrapper.threshold
5
+ category: wrapper
6
+ module: Core
7
+ ---
8
+ # fc.chart.gauge.wrapper.threshold
9
+
10
+ Gauge chart wrapper that converts Metrics API data into a gauge visualization with configurable color thresholds driven by Fluent Settings.
11
+
12
+ > **Note:** `fc.chart.gauge.md` lists this as an alias. This file documents the wrapper-specific behavior including threshold settings integration. For general gauge chart usage, see `fc.chart.gauge`.
13
+
14
+ ## When to Use
15
+ - KPI gauges showing throughput against configurable thresholds
16
+ - Sources and Feeds Dashboard performance indicators
17
+ - Any Metrics API data that needs gauge visualization with color-coded thresholds
18
+
19
+ ## Key Props
20
+ | Prop | Type | Required | What it controls |
21
+ |------|------|----------|------------------|
22
+ | `dataSource` | string | **Yes** | Path to Metrics API GraphQL data |
23
+ | `settingName` | string | **Yes** | Fluent Setting name used to load threshold/color configuration |
24
+ | `timeFilterKey` | string | **Yes** | URL parameter name for the current time period filter (scales thresholds) |
25
+ | `value` | number/string | No | Template-calculated value or number compared against thresholds |
26
+ | `primaryText` | string | No | Large bold text in the center of the gauge |
27
+ | `secondaryText` | string | No | Small text displayed below the primary text |
28
+ | `colorConfig` | ColorConfig | No | Override default gauge colors |
29
+ | `arc` | Arc | No | Gauge arc geometry configuration |
30
+ | `chartContainerConfig` | ChartContainerConfig | No | Responsive container sizing |
31
+ | `title` | string | No | Chart card title |
32
+ | `width` | CardWidth | No | Card width: `"quarter"`, `"third"`, `"half"`, `"two-thirds"`, `"full"`, or 1-12 (default: `"full"`) |
33
+ | `noCard` | boolean | No | Render without card background when `true` |
34
+
35
+ ### Arc
36
+ | Prop | Type | Required | What it controls |
37
+ |------|------|----------|------------------|
38
+ | `startAngle` | number | No | Start angle of the first sector (default: `210`) |
39
+ | `endAngle` | number | No | End angle of the last sector (default: `-30`) |
40
+ | `innerRadius` | number/string | No | Inner radius (default: `"82%"`) |
41
+ | `outerRadius` | number/string | No | Outer radius (default: `"93%"`) |
42
+ | `cx` | number/string | No | X coordinate of center (default: `"50%"`) |
43
+ | `cy` | number/string | No | Y coordinate of center (default: `"50%"`) |
44
+
45
+ ### ColorConfig
46
+ | Prop | Type | Required | What it controls |
47
+ |------|------|----------|------------------|
48
+ | `active` | string / ColorMap | No | Color for the filled (active) sector. HEX string or `[[threshold, color]]` array |
49
+ | `inactive` | string / ColorMap | No | Color for the unfilled (inactive) sector. HEX string or `[[threshold, color]]` array |
50
+ | `primaryText` | string | No | Color for center primary text (HEX) |
51
+ | `secondaryText` | string | No | Color for center secondary text (HEX) |
52
+
53
+ ### ChartContainerConfig
54
+ | Prop | Type | Required | What it controls |
55
+ |------|------|----------|------------------|
56
+ | `width` | string/number | No | Container width (default: `"100%"`) |
57
+ | `aspect` | number | No | Width/height ratio (default: `1`) |
58
+ | `maxHeight` | number | No | Maximum container height (default: `200`) |
59
+ | `height` | string/number | No | Fixed or percentage height |
60
+ | `minWidth` | string/number | No | Minimum container width |
61
+ | `minHeight` | string/number | No | Minimum container height |
62
+
63
+ ## Data Binding
64
+ Transforms Metrics API response data into gauge percentage and color values. The `settingName` prop loads a Fluent Setting containing threshold configuration (an array of `{ percentage, color, threshold }` objects). The `timeFilterKey` reads a URL parameter to scale the per-hour thresholds to the selected time window.
65
+
66
+ ### Setting Format
67
+ The Setting referenced by `settingName` must contain a JSON array:
68
+ ```json
69
+ [
70
+ { "percentage": 25, "color": "#D23B3B", "threshold": 0 },
71
+ { "percentage": 75, "color": "#EF8F00", "threshold": 3000 },
72
+ { "percentage": 100, "color": "#4CAF50", "threshold": 4000 }
73
+ ]
74
+ ```
75
+
76
+ ## Descendants
77
+ No -- self-contained chart component.
78
+
79
+ ## Composition Patterns
80
+ - `fc.page` > multiple `fc.chart.gauge.wrapper.threshold` in a row for KPI dashboard
81
+ - Place inside `fc.column(width: "quarter")` for compact gauge tiles
82
+ - Combine with `fc.daterange.wrapper.forwarder` for time-filtered gauge displays
83
+ - Pair with `fc.list.wrapper.source` or `fc.list.wrapper.feed` on the same dashboard
84
+
85
+ ## Gotchas
86
+ - `dataSource`, `settingName`, and `timeFilterKey` are all required
87
+ - Thresholds in the Setting are per-hour counts -- the component scales them based on the time filter
88
+ - `colorConfig.active` can be a simple HEX string or a ColorMap array `[[percentThreshold, color]]` for gradient-like behavior
89
+ - Arc angles are in degrees: default spans from 210 to -30 (a standard semi-circular gauge)
90
+ - The Setting must exist in the Fluent environment -- missing settings cause the gauge to render with default colors
91
+
92
+ ## Manifest Example
93
+ ```json
94
+ {
95
+ "component": "fc.chart.gauge.wrapper.threshold",
96
+ "props": {
97
+ "title": "Source Throughput",
98
+ "dataSource": "sourceMetrics.totalCount",
99
+ "settingName": "SOURCE_THROUGHPUT_THRESHOLDS",
100
+ "timeFilterKey": "period",
101
+ "primaryText": "{{sourceMetrics.totalCount}}",
102
+ "secondaryText": "items/hr",
103
+ "width": "quarter",
104
+ "arc": {
105
+ "startAngle": 210,
106
+ "endAngle": -30,
107
+ "innerRadius": "82%",
108
+ "outerRadius": "93%"
109
+ }
110
+ }
111
+ }
112
+ ```
113
+
114
+ ## AI Parse Notes
115
+ - **Primary intent:** Declarative Mystique component definition for manifests.
116
+ - **Selection signals:** Match by `alias`, category, and required `Key Props`.
117
+ - **Assembly hints:** Combine with compatible parent/child components listed in `Composition Patterns`.
118
+ - **Safety checks:** Validate required props and data bindings before manifest generation.
@@ -0,0 +1,32 @@
1
+ ---
2
+ alias: fc.chart.line
3
+ aliases:
4
+ - fc.chart.line
5
+ category: content
6
+ module: Core
7
+ ---
8
+
9
+ # fc.chart.line
10
+
11
+ Recharts-based line chart for trend visualization over time.
12
+
13
+ ## When to Use
14
+ - Time-series trends, continuous data visualization
15
+
16
+ ## Key Props
17
+ | Prop | Type | Required | What it controls |
18
+ |------|------|----------|------------------|
19
+ | dataSource | string | Yes | Path to chart data |
20
+ | lines | ChartSeries[] | No | Series with dataKey and color |
21
+ | xAxis | AxisConfig | No | X-axis configuration |
22
+ | yAxis | AxisConfig | No | Y-axis configuration |
23
+ | legend | boolean | No | Show/hide legend |
24
+ | tooltip | boolean | No | Show/hide tooltip |
25
+ | title | string | No | Chart title |
26
+ | width | CardWidth | No | Card width |
27
+
28
+ ## AI Parse Notes
29
+ - **Primary intent:** Declarative Mystique component definition for manifests.
30
+ - **Selection signals:** Match by `alias`, category, and required `Key Props`.
31
+ - **Assembly hints:** Combine with compatible parent/child components listed in `Composition Patterns`.
32
+ - **Safety checks:** Validate required props and data bindings before manifest generation.
@@ -0,0 +1,62 @@
1
+ ---
2
+ alias: "fc.conditional"
3
+ aliases:
4
+ - fc.conditional
5
+ category: layout
6
+ module: Core
7
+ ---
8
+ # fc.conditional
9
+
10
+ Show/hide content based on data value matching using template expressions.
11
+
12
+ ## When to Use
13
+ - Different content for HD vs CC orders
14
+ - Status-specific warnings or alerts
15
+ - Role-based content visibility
16
+ - Show/hide sections based on entity attributes
17
+
18
+ ## Key Props
19
+ | Prop | Type | Required | What it controls |
20
+ |------|------|----------|------------------|
21
+ | `value` | string | **Yes** | Template string to evaluate, e.g., `"{{status}}"`, `"{{type}}"` |
22
+ | `matches` | string / string[] | **Yes** | Value(s) to match against. Array = OR logic for most operations |
23
+ | `operation` | string | No | Comparison operator (default: `"="`). Supported: `"="`, `"!="`, `">"`, `"<"`, `">="`, `"<="`, `"contains"` |
24
+
25
+ ## Data Binding
26
+ Evaluates `value` template against current data context.
27
+
28
+ ## Descendants
29
+ Yes — rendered only when condition matches.
30
+
31
+ ## Composition Patterns
32
+ - Multiple `fc.conditional` siblings for if/else-if patterns
33
+ - Wrap `fc.card.attribute` for type-specific detail cards
34
+ - Wrap `fc.list` for type-specific item views
35
+
36
+ ## Gotchas
37
+ - Both `value` AND `matches` are required -- omitting either renders nothing
38
+ - No `else` construct -- use a second `fc.conditional` with opposite match
39
+ - Template string must be valid Handlebars: `{{fieldName}}`
40
+ - Default `operation` is `"="` (strict string equality) -- omitting it means equality check
41
+ - **`contains` operates on comma-separated strings**, not JavaScript arrays. The `value` template result is split by `,` into a list, and the condition is true only if ALL `matches` entries are found in that list. Example: `value: "{{tags}}"` where tags = `"urgent,priority"`, `matches: ["urgent"]` = true
42
+ - Numeric comparisons (`>`, `<`, `>=`, `<=`) coerce both sides to numbers via `+` operator -- non-numeric strings will produce NaN and fail
43
+
44
+ ## Validation Rules
45
+ P06 (CRITICAL — must have both value and matches)
46
+
47
+ ## Manifest Example
48
+ ```json
49
+ {
50
+ "component": "fc.conditional",
51
+ "props": { "value": "{{type}}", "matches": "HD" },
52
+ "descendants": [
53
+ { "component": "fc.card.attribute", "props": { "title": "HD Details", "attributes": [] } }
54
+ ]
55
+ }
56
+ ```
57
+
58
+ ## AI Parse Notes
59
+ - **Primary intent:** Declarative Mystique component definition for manifests.
60
+ - **Selection signals:** Match by `alias`, category, and required `Key Props`.
61
+ - **Assembly hints:** Combine with compatible parent/child components listed in `Composition Patterns`.
62
+ - **Safety checks:** Validate required props and data bindings before manifest generation.
@@ -0,0 +1,65 @@
1
+ ---
2
+ alias: "fc.dashboard.threshold"
3
+ aliases:
4
+ - fc.dashboard.threshold
5
+ category: content
6
+ module: Core
7
+ ---
8
+ # fc.dashboard.threshold
9
+
10
+ Dashboard metric card with color-coded status thresholds (green/amber/red).
11
+
12
+ ## When to Use
13
+ - Operations dashboard showing order counts, failure rates
14
+ - KPI tiles with alert thresholds
15
+ - Any metric that needs visual status indication
16
+
17
+ ## Key Props
18
+ | Prop | Type | Required | What it controls |
19
+ |------|------|----------|------------------|
20
+ | `label` | string | No | Metric label text (supports templates) |
21
+ | `value` | string/number | No | Metric value (supports templates). Alternative: use `template` |
22
+ | `template` | string | No | Alternative to `value` -- template string for metric display. Source uses `value || template` |
23
+ | `subTitle` | string | No | Secondary label text below the main label (supports templates). Rendered in smaller, grey text |
24
+ | `thresholdLow` | number | No | Value above this triggers orange (#EE6F10) color |
25
+ | `thresholdHigh` | number | No | Value above this triggers red (#D23B3B) color |
26
+ | `link` | string | No | Click navigation URL (supports templates). Also accepts `link_template` (deprecated alias) |
27
+ | `width` | CardWidth | No | Card width (default: `quarter` / 3 on a 12-column grid) |
28
+
29
+ ## Data Binding
30
+ `value`, `label`, `subTitle`, and `link` all support template strings from the page data context.
31
+
32
+ ## Descendants
33
+ No.
34
+
35
+ ## Composition Patterns
36
+ - Three `fc.column(third)` > `fc.dashboard.threshold` each for a 3-metric row
37
+ - Inside `fc.provider.graphql` for data-driven dashboards
38
+
39
+ ## Gotchas
40
+ - **Default width is `quarter` (3)** -- not `full`. Tiles are designed to sit side by side in a row
41
+ - **Color thresholds**: green (#4CAF50) by default, orange (#EE6F10) when value > `thresholdLow`, red (#D23B3B) when value > `thresholdHigh`. The value is parsed as integer for comparison
42
+ - **"+" suffix on paginated data**: When `data.pageInfo.hasNextPage` is true, a `+` is appended to the displayed value (e.g., "1000+") to indicate there are more records than shown
43
+ - `value` and `template` are interchangeable -- the component uses `props.value || props.template`
44
+ - `link` and `link_template` are interchangeable -- `link_template` is the deprecated form
45
+
46
+ ## Manifest Example
47
+ ```json
48
+ {
49
+ "component": "fc.dashboard.threshold",
50
+ "props": {
51
+ "label": "Failed Orders",
52
+ "subTitle": "Last 24 hours",
53
+ "value": "{{failedCount}}",
54
+ "thresholdLow": 5,
55
+ "thresholdHigh": 20,
56
+ "link": "/orders?status=FAILED"
57
+ }
58
+ }
59
+ ```
60
+
61
+ ## AI Parse Notes
62
+ - **Primary intent:** Declarative Mystique component definition for manifests.
63
+ - **Selection signals:** Match by `alias`, category, and required `Key Props`.
64
+ - **Assembly hints:** Combine with compatible parent/child components listed in `Composition Patterns`.
65
+ - **Safety checks:** Validate required props and data bindings before manifest generation.
@@ -0,0 +1,56 @@
1
+ ---
2
+ alias: fc.daterange.wrapper.forwarder
3
+ aliases:
4
+ - fc.daterange.wrapper.forwarder
5
+ category: filter
6
+ module: Core
7
+ ---
8
+
9
+ # fc.daterange.wrapper.forwarder
10
+
11
+ Wrapper that captures date range selections and forwards them as URL query parameters, enabling date-filtered navigation and data fetching.
12
+
13
+ ## When to Use
14
+ - Forward user-selected date range values to URL parameters for downstream components
15
+ - Add date range filtering to dashboard pages where charts/lists read dates from URL
16
+ - Customize the URL parameter names used for from/to date values
17
+
18
+ ## Key Props
19
+ | Prop | Type | Required | What it controls |
20
+ |------|------|----------|------------------|
21
+ | `keyConfig` | `{ from: string; to: string }` | No | Maps date range values to URL parameter names (default: `{ from: 'from', to: 'to' }`) |
22
+
23
+ ## Data Binding
24
+ Forwards the selected date range values into URL query parameters. Child components and page queries that reference these URL parameters will automatically receive the filtered date range.
25
+
26
+ ## Descendants
27
+ Yes -- wraps child components that should respond to the date range selection. Typically wraps chart and list wrapper components.
28
+
29
+ ## Composition Patterns
30
+ - `fc.page` > `fc.daterange.wrapper.forwarder` > `fc.chart.bar.wrapper.source` for time-filtered charts
31
+ - `fc.page` > `fc.daterange.wrapper.forwarder` > `fc.list.wrapper.source` for time-filtered lists
32
+ - Combine with `fc.chart.gauge.wrapper.threshold` (which reads `timeFilterKey` from URL)
33
+
34
+ ## Gotchas
35
+ - Default URL parameter names are `from` and `to` -- override with `keyConfig` if your page query uses different parameter names
36
+ - This component provides the date range picker UI and forwards values to the URL -- it does not directly filter data
37
+ - Child components must read from URL parameters (or use `timeFilterKey`) for the filtering to take effect
38
+
39
+ ## Manifest Example
40
+ ```json
41
+ {
42
+ "component": "fc.daterange.wrapper.forwarder",
43
+ "props": {
44
+ "keyConfig": {
45
+ "from": "startDate",
46
+ "to": "endDate"
47
+ }
48
+ }
49
+ }
50
+ ```
51
+
52
+ ## AI Parse Notes
53
+ - **Primary intent:** Declarative Mystique component definition for manifests.
54
+ - **Selection signals:** Match by `alias`, category, and required `Key Props`.
55
+ - **Assembly hints:** Combine with compatible parent/child components listed in `Composition Patterns`.
56
+ - **Safety checks:** Validate required props and data bindings before manifest generation.
@@ -0,0 +1,21 @@
1
+ ---
2
+ alias: "fc.drawer.button"
3
+ aliases:
4
+ - fc.drawer.button
5
+ category: action
6
+ module: Core
7
+ ---
8
+ # fc.drawer.button
9
+
10
+ Button that opens a side drawer panel. Slides in from the side. Similar to modal but preserves page context visually.
11
+
12
+ ## When to Use
13
+ - Side panel detail views
14
+ - Configuration panels
15
+ - Order item detail overlay
16
+
17
+ ## AI Parse Notes
18
+ - **Primary intent:** Declarative Mystique component definition for manifests.
19
+ - **Selection signals:** Match by `alias`, category, and required `Key Props`.
20
+ - **Assembly hints:** Combine with compatible parent/child components listed in `Composition Patterns`.
21
+ - **Safety checks:** Validate required props and data bindings before manifest generation.
@@ -0,0 +1,20 @@
1
+ ---
2
+ alias: "fc.event.detail"
3
+ aliases:
4
+ - fc.event.detail
5
+ category: content
6
+ module: OMS
7
+ ---
8
+ # fc.event.detail
9
+
10
+ Expanded detail view for a single event — shows payload, attributes, timing, and processing status.
11
+
12
+ ## When to Use
13
+ - Drill-down from event search
14
+ - Event forensics detail view
15
+
16
+ ## AI Parse Notes
17
+ - **Primary intent:** Declarative Mystique component definition for manifests.
18
+ - **Selection signals:** Match by `alias`, category, and required `Key Props`.
19
+ - **Assembly hints:** Combine with compatible parent/child components listed in `Composition Patterns`.
20
+ - **Safety checks:** Validate required props and data bindings before manifest generation.