mcp-probe-kit 3.0.15 → 3.0.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/README.md +17 -11
  2. package/build/lib/skill-bridge.d.ts +31 -0
  3. package/build/lib/skill-bridge.js +100 -0
  4. package/build/resources/ui-ux-data/charts.json +302 -0
  5. package/build/resources/ui-ux-data/colors.json +1058 -0
  6. package/build/resources/ui-ux-data/icons.json +1102 -0
  7. package/build/resources/ui-ux-data/landing.json +262 -0
  8. package/build/resources/ui-ux-data/metadata.json +6 -0
  9. package/build/resources/ui-ux-data/products.json +1058 -0
  10. package/build/resources/ui-ux-data/react-performance.json +574 -0
  11. package/build/resources/ui-ux-data/stacks/astro.json +266 -0
  12. package/build/resources/ui-ux-data/stacks/flutter.json +626 -0
  13. package/build/resources/ui-ux-data/stacks/html-tailwind.json +662 -0
  14. package/build/resources/ui-ux-data/stacks/jetpack-compose.json +626 -0
  15. package/build/resources/ui-ux-data/stacks/nextjs.json +218 -0
  16. package/build/resources/ui-ux-data/stacks/nuxt-ui.json +14 -0
  17. package/build/resources/ui-ux-data/stacks/nuxtjs.json +182 -0
  18. package/build/resources/ui-ux-data/stacks/react-native.json +350 -0
  19. package/build/resources/ui-ux-data/stacks/react.json +530 -0
  20. package/build/resources/ui-ux-data/stacks/shadcn.json +566 -0
  21. package/build/resources/ui-ux-data/stacks/svelte.json +134 -0
  22. package/build/resources/ui-ux-data/stacks/swiftui.json +26 -0
  23. package/build/resources/ui-ux-data/stacks/vue.json +170 -0
  24. package/build/resources/ui-ux-data/styles.json +1610 -0
  25. package/build/resources/ui-ux-data/typography.json +743 -0
  26. package/build/resources/ui-ux-data/ui-reasoning.json +1431 -0
  27. package/build/resources/ui-ux-data/ux-guidelines.json +1190 -0
  28. package/build/resources/ui-ux-data/web-interface.json +389 -0
  29. package/build/schemas/ui-ux-schemas.js +1 -1
  30. package/build/tools/start_product.js +8 -1
  31. package/build/tools/start_ui.js +14 -3
  32. package/build/tools/ui-ux-tools.js +21 -17
  33. package/build/utils/ui-data-loader.d.ts +18 -2
  34. package/build/utils/ui-data-loader.js +74 -12
  35. package/docs/i18n/en.json +2 -2
  36. package/docs/i18n/ja.json +2 -2
  37. package/docs/i18n/ko.json +2 -2
  38. package/docs/i18n/zh-CN.json +2 -2
  39. package/package.json +2 -1
package/README.md CHANGED
@@ -214,11 +214,16 @@ This mode performs 1-2 rounds of structured clarification before entering spec/f
214
214
 
215
215
  **Note**: `start_ui` automatically calls `ui_design_system` and `ui_search`, you don't need to call them separately.
216
216
 
217
- **Inspiration:**
218
- - [ui-ux-pro-max-skill](https://github.com/nextlevelbuilder/ui-ux-pro-max-skill) - UI/UX design system philosophy
219
- - [json-render](https://github.com/vercel-labs/json-render) - JSON template rendering engine
220
-
221
- **Why use `sync_ui_data`?**
217
+ **Inspiration:**
218
+ - [ui-ux-pro-max-skill](https://github.com/nextlevelbuilder/ui-ux-pro-max-skill) - UI/UX design system philosophy
219
+ - [json-render](https://github.com/vercel-labs/json-render) - JSON template rendering engine
220
+
221
+ **Skill Bridge for UI/PRD workflows:**
222
+ - `start_ui` and `start_product` now include a Skill Bridge section in guidance and `structuredContent.metadata.skills`.
223
+ - Recommended skill call order: `ui-ux-pro-max` → `interaction-design` → `frontend-design`.
224
+ - If some skills are missing, workflow continues with MCP main plan and marks unavailable skills in metadata.
225
+
226
+ **Why use `sync_ui_data`?**
222
227
 
223
228
  Our `start_ui` tool relies on a rich UI/UX database (colors, icons, charts, components, design patterns, etc.) to generate high-quality design systems and code. This data comes from npm package [uipro-cli](https://www.npmjs.com/package/uipro-cli), including:
224
229
  - 🎨 Color schemes (mainstream brand colors, color palettes)
@@ -227,12 +232,13 @@ Our `start_ui` tool relies on a rich UI/UX database (colors, icons, charts, comp
227
232
  - 🎯 Landing page templates (SaaS, e-commerce, government, etc.)
228
233
  - 📐 Design specifications (spacing, fonts, shadows, etc.)
229
234
 
230
- **Data Sync Strategy:**
231
- 1. **Embedded Data**: Synced at build time, works offline
232
- 2. **Cached Data**: Runtime updates to `~/.mcp-probe-kit/ui-ux-data/`
233
- 3. **Manual Sync**: Use `sync_ui_data` to force update latest data
234
-
235
- This ensures `start_ui` can generate professional-grade UI code even offline.
235
+ **Data Sync Strategy:**
236
+ 1. **Embedded Data**: Synced at build time, works offline
237
+ 2. **Background Auto Sync**: Downloads latest data to `~/.mcp-probe-kit/ui-ux-data/` without changing current session output
238
+ 3. **Next-Start Activation**: Newly downloaded data is applied on next process start (keeps current session deterministic)
239
+ 4. **Manual Sync**: Use `sync_ui_data` to force refresh cache immediately (still applies next start by default)
240
+
241
+ This ensures `start_ui` can generate professional-grade UI code even offline.
236
242
 
237
243
  ### 🎤 Requirements Interview
238
244
 
@@ -0,0 +1,31 @@
1
+ export type SkillBridgeWorkflow = "start_ui" | "start_product";
2
+ export interface SkillBridgeItem {
3
+ name: string;
4
+ role: string;
5
+ installed: boolean;
6
+ skillPath?: string;
7
+ expectedPaths: string[];
8
+ }
9
+ export interface SkillBridgeStatus {
10
+ workflow: SkillBridgeWorkflow;
11
+ generatedAt: string;
12
+ installedCount: number;
13
+ missingCount: number;
14
+ ready: boolean;
15
+ skills: SkillBridgeItem[];
16
+ }
17
+ export declare function detectSkillBridge(workflow: SkillBridgeWorkflow): SkillBridgeStatus;
18
+ export declare function buildSkillHeaderNote(status: SkillBridgeStatus): string;
19
+ export declare function buildSkillBridgePlanStep(status: SkillBridgeStatus): {
20
+ id: string;
21
+ tool: string;
22
+ action: string;
23
+ when: string;
24
+ args: {
25
+ order: string[];
26
+ available: string[];
27
+ missing: string[];
28
+ };
29
+ outputs: never[];
30
+ };
31
+ export declare function renderSkillBridgeSection(status: SkillBridgeStatus): string;
@@ -0,0 +1,100 @@
1
+ import * as fs from "node:fs";
2
+ import * as os from "node:os";
3
+ import * as path from "node:path";
4
+ const SKILL_DEFINITIONS = [
5
+ {
6
+ name: "ui-ux-pro-max",
7
+ role: "设计系统与风格策略推荐",
8
+ appliesTo: ["start_ui", "start_product"],
9
+ },
10
+ {
11
+ name: "interaction-design",
12
+ role: "交互状态与流程约束",
13
+ appliesTo: ["start_ui", "start_product"],
14
+ },
15
+ {
16
+ name: "frontend-design",
17
+ role: "前端视觉与代码实现增强",
18
+ appliesTo: ["start_ui", "start_product"],
19
+ },
20
+ ];
21
+ function buildSkillRoots() {
22
+ const fromEnv = (process.env.MCP_SKILLS_ROOTS || "")
23
+ .split(path.delimiter)
24
+ .map((item) => item.trim())
25
+ .filter(Boolean);
26
+ const home = os.homedir();
27
+ const defaults = [
28
+ path.join(home, ".agents", "skills"),
29
+ path.join(home, ".codex", "skills"),
30
+ path.join(home, ".codex", "skills", ".system"),
31
+ ];
32
+ return Array.from(new Set([...fromEnv, ...defaults]));
33
+ }
34
+ function resolveSkill(name, roots) {
35
+ const expectedPaths = roots.map((root) => path.join(root, name, "SKILL.md"));
36
+ const installedPath = expectedPaths.find((candidate) => fs.existsSync(candidate));
37
+ return {
38
+ name,
39
+ role: SKILL_DEFINITIONS.find((item) => item.name === name)?.role || "",
40
+ installed: Boolean(installedPath),
41
+ skillPath: installedPath,
42
+ expectedPaths,
43
+ };
44
+ }
45
+ export function detectSkillBridge(workflow) {
46
+ const roots = buildSkillRoots();
47
+ const selected = SKILL_DEFINITIONS.filter((item) => item.appliesTo.includes(workflow));
48
+ const skills = selected.map((item) => resolveSkill(item.name, roots));
49
+ const installedCount = skills.filter((item) => item.installed).length;
50
+ const missingCount = skills.length - installedCount;
51
+ return {
52
+ workflow,
53
+ generatedAt: new Date().toISOString(),
54
+ installedCount,
55
+ missingCount,
56
+ ready: missingCount === 0,
57
+ skills,
58
+ };
59
+ }
60
+ export function buildSkillHeaderNote(status) {
61
+ return `Skill Bridge: ${status.installedCount}/${status.skills.length} 可用`;
62
+ }
63
+ export function buildSkillBridgePlanStep(status) {
64
+ return {
65
+ id: "skill-bridge",
66
+ tool: "manual",
67
+ action: "invoke_skills",
68
+ when: "在宿主支持 skill 调用时优先执行",
69
+ args: {
70
+ order: status.skills.map((item) => item.name),
71
+ available: status.skills.filter((item) => item.installed).map((item) => item.name),
72
+ missing: status.skills.filter((item) => !item.installed).map((item) => item.name),
73
+ },
74
+ outputs: [],
75
+ };
76
+ }
77
+ export function renderSkillBridgeSection(status) {
78
+ const orderLines = status.skills
79
+ .map((item, index) => `${index + 1}. \`${item.name}\` - ${item.role}`)
80
+ .join("\n");
81
+ const stateLines = status.skills
82
+ .map((item) => `- ${item.name}: ${item.installed ? `已安装(${item.skillPath})` : "未安装"}`)
83
+ .join("\n");
84
+ const conclusion = status.ready
85
+ ? "全部 skill 可用,建议按顺序调用后再执行 MCP 工具步骤。"
86
+ : "部分 skill 缺失:继续执行 MCP 主流程,不阻塞;安装缺失 skill 后下次运行可获得更高质量输出。";
87
+ return `## 🧩 Skill Bridge(UI/PRD 增强)
88
+
89
+ 按顺序调用(宿主支持时):
90
+ ${orderLines}
91
+
92
+ 当前状态:
93
+ ${stateLines}
94
+
95
+ ${conclusion}
96
+
97
+ ---
98
+
99
+ `;
100
+ }
@@ -0,0 +1,302 @@
1
+ [
2
+ {
3
+ "No": "1",
4
+ "Data Type": "Trend Over Time",
5
+ "Keywords": "trend, time-series, line, growth, timeline, progress",
6
+ "Best Chart Type": "Line Chart",
7
+ "Secondary Options": "Area Chart, Smooth Area",
8
+ "Color Guidance": "Primary: #0080FF. Multiple series: use distinct colors. Fill: 20% opacity",
9
+ "Performance Impact": "⚡ Excellent (optimized)",
10
+ "Accessibility Notes": "✓ Clear line patterns for colorblind users. Add pattern overlays.",
11
+ "Library Recommendation": "Chart.js, Recharts, ApexCharts",
12
+ "Interactive Level": "Hover + Zoom"
13
+ },
14
+ {
15
+ "No": "2",
16
+ "Data Type": "Compare Categories",
17
+ "Keywords": "compare, categories, bar, comparison, ranking",
18
+ "Best Chart Type": "Bar Chart (Horizontal or Vertical)",
19
+ "Secondary Options": "Column Chart, Grouped Bar",
20
+ "Color Guidance": "Each bar: distinct color. Category: grouped same color. Sorted: descending order",
21
+ "Performance Impact": "⚡ Excellent",
22
+ "Accessibility Notes": "✓ Easy to compare. Add value labels on bars for clarity.",
23
+ "Library Recommendation": "Chart.js, Recharts, D3.js",
24
+ "Interactive Level": "Hover + Sort"
25
+ },
26
+ {
27
+ "No": "3",
28
+ "Data Type": "Part-to-Whole",
29
+ "Keywords": "part-to-whole, pie, donut, percentage, proportion, share",
30
+ "Best Chart Type": "Pie Chart or Donut",
31
+ "Secondary Options": "Stacked Bar, Treemap",
32
+ "Color Guidance": "Colors: 5-6 max. Contrasting palette. Large slices first. Use labels.",
33
+ "Performance Impact": "⚡ Good (limit 6 slices)",
34
+ "Accessibility Notes": "⚠ Hard for accessibility. Better: Stacked bar with legend. Avoid pie if >5 items.",
35
+ "Library Recommendation": "Chart.js, Recharts, D3.js",
36
+ "Interactive Level": "Hover + Drill"
37
+ },
38
+ {
39
+ "No": "4",
40
+ "Data Type": "Correlation/Distribution",
41
+ "Keywords": "correlation, distribution, scatter, relationship, pattern",
42
+ "Best Chart Type": "Scatter Plot or Bubble Chart",
43
+ "Secondary Options": "Heat Map, Matrix",
44
+ "Color Guidance": "Color axis: gradient (blue-red). Size: relative. Opacity: 0.6-0.8 to show density",
45
+ "Performance Impact": "⚠ Moderate (many points)",
46
+ "Accessibility Notes": "⚠ Provide data table alternative. Use pattern + color distinction.",
47
+ "Library Recommendation": "D3.js, Plotly, Recharts",
48
+ "Interactive Level": "Hover + Brush"
49
+ },
50
+ {
51
+ "No": "5",
52
+ "Data Type": "Heatmap/Intensity",
53
+ "Keywords": "heatmap, heat-map, intensity, density, matrix",
54
+ "Best Chart Type": "Heat Map or Choropleth",
55
+ "Secondary Options": "Grid Heat Map, Bubble Heat",
56
+ "Color Guidance": "Gradient: Cool (blue) to Hot (red). Scale: clear legend. Divergent for ±data",
57
+ "Performance Impact": "⚡ Excellent (color CSS)",
58
+ "Accessibility Notes": "⚠ Colorblind: Use pattern overlay. Provide numerical legend.",
59
+ "Library Recommendation": "D3.js, Plotly, ApexCharts",
60
+ "Interactive Level": "Hover + Zoom"
61
+ },
62
+ {
63
+ "No": "6",
64
+ "Data Type": "Geographic Data",
65
+ "Keywords": "geographic, map, location, region, geo, spatial",
66
+ "Best Chart Type": "Choropleth Map, Bubble Map",
67
+ "Secondary Options": "Geographic Heat Map",
68
+ "Color Guidance": "Regional: single color gradient or categorized colors. Legend: clear scale",
69
+ "Performance Impact": "⚠ Moderate (rendering)",
70
+ "Accessibility Notes": "⚠ Include text labels for regions. Provide data table alternative.",
71
+ "Library Recommendation": "D3.js, Mapbox, Leaflet",
72
+ "Interactive Level": "Pan + Zoom + Drill"
73
+ },
74
+ {
75
+ "No": "7",
76
+ "Data Type": "Funnel/Flow",
77
+ "Keywords": "funnel/flow",
78
+ "Best Chart Type": "Funnel Chart, Sankey",
79
+ "Secondary Options": "Waterfall (for flows)",
80
+ "Color Guidance": "Stages: gradient (starting color → ending color). Show conversion %",
81
+ "Performance Impact": "⚡ Good",
82
+ "Accessibility Notes": "✓ Clear stage labels + percentages. Good for accessibility if labeled.",
83
+ "Library Recommendation": "D3.js, Recharts, Custom SVG",
84
+ "Interactive Level": "Hover + Drill"
85
+ },
86
+ {
87
+ "No": "8",
88
+ "Data Type": "Performance vs Target",
89
+ "Keywords": "performance-vs-target",
90
+ "Best Chart Type": "Gauge Chart or Bullet Chart",
91
+ "Secondary Options": "Dial, Thermometer",
92
+ "Color Guidance": "Performance: Red→Yellow→Green gradient. Target: marker line. Threshold colors",
93
+ "Performance Impact": "⚡ Good",
94
+ "Accessibility Notes": "✓ Add numerical value + percentage label beside gauge.",
95
+ "Library Recommendation": "D3.js, ApexCharts, Custom SVG",
96
+ "Interactive Level": "Hover"
97
+ },
98
+ {
99
+ "No": "9",
100
+ "Data Type": "Time-Series Forecast",
101
+ "Keywords": "time-series-forecast",
102
+ "Best Chart Type": "Line with Confidence Band",
103
+ "Secondary Options": "Ribbon Chart",
104
+ "Color Guidance": "Actual: solid line #0080FF. Forecast: dashed #FF9500. Band: light shading",
105
+ "Performance Impact": "⚡ Good",
106
+ "Accessibility Notes": "✓ Clearly distinguish actual vs forecast. Add legend.",
107
+ "Library Recommendation": "Chart.js, ApexCharts, Plotly",
108
+ "Interactive Level": "Hover + Toggle"
109
+ },
110
+ {
111
+ "No": "10",
112
+ "Data Type": "Anomaly Detection",
113
+ "Keywords": "anomaly-detection",
114
+ "Best Chart Type": "Line Chart with Highlights",
115
+ "Secondary Options": "Scatter with Alert",
116
+ "Color Guidance": "Normal: blue #0080FF. Anomaly: red #FF0000 circle/square marker + alert",
117
+ "Performance Impact": "⚡ Good",
118
+ "Accessibility Notes": "✓ Circle/marker for anomalies. Add text alert annotation.",
119
+ "Library Recommendation": "D3.js, Plotly, ApexCharts",
120
+ "Interactive Level": "Hover + Alert"
121
+ },
122
+ {
123
+ "No": "11",
124
+ "Data Type": "Hierarchical/Nested Data",
125
+ "Keywords": "hierarchical/nested-data",
126
+ "Best Chart Type": "Treemap",
127
+ "Secondary Options": "Sunburst, Nested Donut, Icicle",
128
+ "Color Guidance": "Parent: distinct hues. Children: lighter shades. White borders 2-3px.",
129
+ "Performance Impact": "⚠ Moderate",
130
+ "Accessibility Notes": "⚠ Poor - provide table alternative. Label large areas.",
131
+ "Library Recommendation": "D3.js, Recharts, ApexCharts",
132
+ "Interactive Level": "Hover + Drilldown"
133
+ },
134
+ {
135
+ "No": "12",
136
+ "Data Type": "Flow/Process Data",
137
+ "Keywords": "flow/process-data",
138
+ "Best Chart Type": "Sankey Diagram",
139
+ "Secondary Options": "Alluvial, Chord Diagram",
140
+ "Color Guidance": "Gradient from source to target. Opacity 0.4-0.6 for flows.",
141
+ "Performance Impact": "⚠ Moderate",
142
+ "Accessibility Notes": "⚠ Poor - provide flow table alternative.",
143
+ "Library Recommendation": "D3.js (d3-sankey), Plotly",
144
+ "Interactive Level": "Hover + Drilldown"
145
+ },
146
+ {
147
+ "No": "13",
148
+ "Data Type": "Cumulative Changes",
149
+ "Keywords": "cumulative-changes",
150
+ "Best Chart Type": "Waterfall Chart",
151
+ "Secondary Options": "Stacked Bar, Cascade",
152
+ "Color Guidance": "Increases: #4CAF50. Decreases: #F44336. Start: #2196F3. End: #0D47A1.",
153
+ "Performance Impact": "⚡ Good",
154
+ "Accessibility Notes": "✓ Good - clear directional colors with labels.",
155
+ "Library Recommendation": "ApexCharts, Highcharts, Plotly",
156
+ "Interactive Level": "Hover"
157
+ },
158
+ {
159
+ "No": "14",
160
+ "Data Type": "Multi-Variable Comparison",
161
+ "Keywords": "multi-variable-comparison",
162
+ "Best Chart Type": "Radar/Spider Chart",
163
+ "Secondary Options": "Parallel Coordinates, Grouped Bar",
164
+ "Color Guidance": "Single: #0080FF 20% fill. Multiple: distinct colors per dataset.",
165
+ "Performance Impact": "⚡ Good",
166
+ "Accessibility Notes": "⚠ Moderate - limit 5-8 axes. Add data table.",
167
+ "Library Recommendation": "Chart.js, Recharts, ApexCharts",
168
+ "Interactive Level": "Hover + Toggle"
169
+ },
170
+ {
171
+ "No": "15",
172
+ "Data Type": "Stock/Trading OHLC",
173
+ "Keywords": "stock/trading-ohlc",
174
+ "Best Chart Type": "Candlestick Chart",
175
+ "Secondary Options": "OHLC Bar, Heikin-Ashi",
176
+ "Color Guidance": "Bullish: #26A69A. Bearish: #EF5350. Volume: 40% opacity below.",
177
+ "Performance Impact": "⚡ Good",
178
+ "Accessibility Notes": "⚠ Moderate - provide OHLC data table.",
179
+ "Library Recommendation": "Lightweight Charts (TradingView), ApexCharts",
180
+ "Interactive Level": "Real-time + Hover + Zoom"
181
+ },
182
+ {
183
+ "No": "16",
184
+ "Data Type": "Relationship/Connection Data",
185
+ "Keywords": "relationship/connection-data",
186
+ "Best Chart Type": "Network Graph",
187
+ "Secondary Options": "Hierarchical Tree, Adjacency Matrix",
188
+ "Color Guidance": "Node types: categorical colors. Edges: #90A4AE 60% opacity.",
189
+ "Performance Impact": "❌ Poor (500+ nodes struggles)",
190
+ "Accessibility Notes": "❌ Very Poor - provide adjacency list alternative.",
191
+ "Library Recommendation": "D3.js (d3-force), Vis.js, Cytoscape.js",
192
+ "Interactive Level": "Drilldown + Hover + Drag"
193
+ },
194
+ {
195
+ "No": "17",
196
+ "Data Type": "Distribution/Statistical",
197
+ "Keywords": "distribution/statistical",
198
+ "Best Chart Type": "Box Plot",
199
+ "Secondary Options": "Violin Plot, Beeswarm",
200
+ "Color Guidance": "Box: #BBDEFB. Border: #1976D2. Median: #D32F2F. Outliers: #F44336.",
201
+ "Performance Impact": "⚡ Excellent",
202
+ "Accessibility Notes": "✓ Good - include stats table (min, Q1, median, Q3, max).",
203
+ "Library Recommendation": "Plotly, D3.js, Chart.js (plugin)",
204
+ "Interactive Level": "Hover"
205
+ },
206
+ {
207
+ "No": "18",
208
+ "Data Type": "Performance vs Target (Compact)",
209
+ "Keywords": "performance-vs-target-(compact)",
210
+ "Best Chart Type": "Bullet Chart",
211
+ "Secondary Options": "Gauge, Progress Bar",
212
+ "Color Guidance": "Ranges: #FFCDD2, #FFF9C4, #C8E6C9. Performance: #1976D2. Target: black 3px.",
213
+ "Performance Impact": "⚡ Excellent",
214
+ "Accessibility Notes": "✓ Excellent - compact with clear values.",
215
+ "Library Recommendation": "D3.js, Plotly, Custom SVG",
216
+ "Interactive Level": "Hover"
217
+ },
218
+ {
219
+ "No": "19",
220
+ "Data Type": "Proportional/Percentage",
221
+ "Keywords": "proportional/percentage",
222
+ "Best Chart Type": "Waffle Chart",
223
+ "Secondary Options": "Pictogram, Stacked Bar 100%",
224
+ "Color Guidance": "10x10 grid. 3-5 categories max. 2-3px spacing between squares.",
225
+ "Performance Impact": "⚡ Good",
226
+ "Accessibility Notes": "✓ Good - better than pie for accessibility.",
227
+ "Library Recommendation": "D3.js, React-Waffle, Custom CSS Grid",
228
+ "Interactive Level": "Hover"
229
+ },
230
+ {
231
+ "No": "20",
232
+ "Data Type": "Hierarchical Proportional",
233
+ "Keywords": "hierarchical-proportional",
234
+ "Best Chart Type": "Sunburst Chart",
235
+ "Secondary Options": "Treemap, Icicle, Circle Packing",
236
+ "Color Guidance": "Center to outer: darker to lighter. 15-20% lighter per level.",
237
+ "Performance Impact": "⚠ Moderate",
238
+ "Accessibility Notes": "⚠ Poor - provide hierarchy table alternative.",
239
+ "Library Recommendation": "D3.js (d3-hierarchy), Recharts, ApexCharts",
240
+ "Interactive Level": "Drilldown + Hover"
241
+ },
242
+ {
243
+ "No": "21",
244
+ "Data Type": "Root Cause Analysis",
245
+ "Keywords": "root cause, decomposition, tree, hierarchy, drill-down, ai-split",
246
+ "Best Chart Type": "Decomposition Tree",
247
+ "Secondary Options": "Decision Tree, Flow Chart",
248
+ "Color Guidance": "Nodes: #2563EB (Primary) vs #EF4444 (Negative impact). Connectors: Neutral grey.",
249
+ "Performance Impact": "⚠ Moderate (calculation heavy)",
250
+ "Accessibility Notes": "✓ clear hierarchy. Allow keyboard navigation for nodes.",
251
+ "Library Recommendation": "Power BI (native), React-Flow, Custom D3.js",
252
+ "Interactive Level": "Drill + Expand"
253
+ },
254
+ {
255
+ "No": "22",
256
+ "Data Type": "3D Spatial Data",
257
+ "Keywords": "3d, spatial, immersive, terrain, molecular, volumetric",
258
+ "Best Chart Type": "3D Scatter/Surface Plot",
259
+ "Secondary Options": "Volumetric Rendering, Point Cloud",
260
+ "Color Guidance": "Depth cues: lighting/shading. Z-axis: color gradient (cool to warm).",
261
+ "Performance Impact": "❌ Heavy (WebGL required)",
262
+ "Accessibility Notes": "❌ Poor - requires alternative 2D view or data table.",
263
+ "Library Recommendation": "Three.js, Deck.gl, Plotly 3D",
264
+ "Interactive Level": "Rotate + Zoom + VR"
265
+ },
266
+ {
267
+ "No": "23",
268
+ "Data Type": "Real-Time Streaming",
269
+ "Keywords": "streaming, real-time, ticker, live, velocity, pulse",
270
+ "Best Chart Type": "Streaming Area Chart",
271
+ "Secondary Options": "Ticker Tape, Moving Gauge",
272
+ "Color Guidance": "Current: Bright Pulse (#00FF00). History: Fading opacity. Grid: Dark.",
273
+ "Performance Impact": "⚡ Optimized (canvas/webgl)",
274
+ "Accessibility Notes": "⚠ Flashing elements - provide pause button. High contrast.",
275
+ "Library Recommendation": "Smoothed D3.js",
276
+ "Interactive Level": "CanvasJS"
277
+ },
278
+ {
279
+ "No": "24",
280
+ "Data Type": "Sentiment/Emotion",
281
+ "Keywords": "sentiment, emotion, nlp, opinion, feeling",
282
+ "Best Chart Type": "Word Cloud with Sentiment",
283
+ "Secondary Options": "Sentiment Arc, Radar Chart",
284
+ "Color Guidance": "Positive: #22C55E. Negative: #EF4444. Neutral: #94A3B8. Size = Frequency.",
285
+ "Performance Impact": "⚡ Good",
286
+ "Accessibility Notes": "⚠ Word clouds poor for screen readers. Use list view.",
287
+ "Library Recommendation": "D3-cloud, Highcharts, Nivo",
288
+ "Interactive Level": "Hover + Filter"
289
+ },
290
+ {
291
+ "No": "25",
292
+ "Data Type": "Process Mining",
293
+ "Keywords": "process, mining, variants, path, bottleneck, log",
294
+ "Best Chart Type": "Process Map / Graph",
295
+ "Secondary Options": "Directed Acyclic Graph (DAG), Petri Net",
296
+ "Color Guidance": "Happy path: #10B981 (Thick). Deviations: #F59E0B (Thin). Bottlenecks: #EF4444.",
297
+ "Performance Impact": "⚠ Moderate to Heavy",
298
+ "Accessibility Notes": "⚠ Complex graphs hard to navigate. Provide path summary.",
299
+ "Library Recommendation": "React-Flow, Cytoscape.js, Recharts",
300
+ "Interactive Level": "Drag + Node-Click"
301
+ }
302
+ ]