@simonyea/holysheep-cli 2.1.50 → 2.1.51

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 (96) hide show
  1. package/dist/aionui-resources/assistant/academic-paper/academic-paper.md +25 -0
  2. package/dist/aionui-resources/assistant/academic-paper/academic-paper.ru-RU.md +25 -0
  3. package/dist/aionui-resources/assistant/academic-paper/academic-paper.zh-CN.md +25 -0
  4. package/dist/aionui-resources/assistant/beautiful-mermaid/beautiful-mermaid.md +31 -0
  5. package/dist/aionui-resources/assistant/beautiful-mermaid/beautiful-mermaid.ru-RU.md +31 -0
  6. package/dist/aionui-resources/assistant/beautiful-mermaid/beautiful-mermaid.zh-CN.md +31 -0
  7. package/dist/aionui-resources/assistant/cowork/cowork-skills.md +814 -0
  8. package/dist/aionui-resources/assistant/cowork/cowork-skills.ru-RU.md +814 -0
  9. package/dist/aionui-resources/assistant/cowork/cowork-skills.zh-CN.md +803 -0
  10. package/dist/aionui-resources/assistant/cowork/cowork.md +56 -0
  11. package/dist/aionui-resources/assistant/cowork/cowork.ru-RU.md +56 -0
  12. package/dist/aionui-resources/assistant/cowork/cowork.zh-CN.md +409 -0
  13. package/dist/aionui-resources/assistant/dashboard-creator/dashboard-creator.md +25 -0
  14. package/dist/aionui-resources/assistant/dashboard-creator/dashboard-creator.ru-RU.md +25 -0
  15. package/dist/aionui-resources/assistant/dashboard-creator/dashboard-creator.zh-CN.md +25 -0
  16. package/dist/aionui-resources/assistant/excel-creator/excel-creator.md +33 -0
  17. package/dist/aionui-resources/assistant/excel-creator/excel-creator.ru-RU.md +33 -0
  18. package/dist/aionui-resources/assistant/excel-creator/excel-creator.zh-CN.md +33 -0
  19. package/dist/aionui-resources/assistant/financial-model-creator/financial-model-creator.md +25 -0
  20. package/dist/aionui-resources/assistant/financial-model-creator/financial-model-creator.ru-RU.md +25 -0
  21. package/dist/aionui-resources/assistant/financial-model-creator/financial-model-creator.zh-CN.md +25 -0
  22. package/dist/aionui-resources/assistant/game-3d/game-3d.md +255 -0
  23. package/dist/aionui-resources/assistant/game-3d/game-3d.ru-RU.md +255 -0
  24. package/dist/aionui-resources/assistant/game-3d/game-3d.zh-CN.md +255 -0
  25. package/dist/aionui-resources/assistant/human-3-coach/human-3-coach.md +276 -0
  26. package/dist/aionui-resources/assistant/human-3-coach/human-3-coach.ru-RU.md +276 -0
  27. package/dist/aionui-resources/assistant/human-3-coach/human-3-coach.zh-CN.md +276 -0
  28. package/dist/aionui-resources/assistant/moltbook/moltbook-skills.md +88 -0
  29. package/dist/aionui-resources/assistant/moltbook/moltbook-skills.ru-RU.md +88 -0
  30. package/dist/aionui-resources/assistant/moltbook/moltbook-skills.zh-CN.md +88 -0
  31. package/dist/aionui-resources/assistant/moltbook/moltbook.md +216 -0
  32. package/dist/aionui-resources/assistant/moltbook/moltbook.ru-RU.md +216 -0
  33. package/dist/aionui-resources/assistant/moltbook/moltbook.zh-CN.md +216 -0
  34. package/dist/aionui-resources/assistant/morph-ppt/morph-ppt.md +25 -0
  35. package/dist/aionui-resources/assistant/morph-ppt/morph-ppt.ru-RU.md +25 -0
  36. package/dist/aionui-resources/assistant/morph-ppt/morph-ppt.zh-CN.md +25 -0
  37. package/dist/aionui-resources/assistant/morph-ppt-3d/morph-ppt-3d.md +54 -0
  38. package/dist/aionui-resources/assistant/morph-ppt-3d/morph-ppt-3d.zh-CN.md +54 -0
  39. package/dist/aionui-resources/assistant/openclaw-setup/openclaw-setup.md +334 -0
  40. package/dist/aionui-resources/assistant/openclaw-setup/openclaw-setup.ru-RU.md +334 -0
  41. package/dist/aionui-resources/assistant/openclaw-setup/openclaw-setup.zh-CN.md +347 -0
  42. package/dist/aionui-resources/assistant/pitch-deck-creator/pitch-deck-creator.md +23 -0
  43. package/dist/aionui-resources/assistant/pitch-deck-creator/pitch-deck-creator.ru-RU.md +23 -0
  44. package/dist/aionui-resources/assistant/pitch-deck-creator/pitch-deck-creator.zh-CN.md +23 -0
  45. package/dist/aionui-resources/assistant/planning-with-files/planning-with-files.md +395 -0
  46. package/dist/aionui-resources/assistant/planning-with-files/planning-with-files.ru-RU.md +395 -0
  47. package/dist/aionui-resources/assistant/planning-with-files/planning-with-files.zh-CN.md +395 -0
  48. package/dist/aionui-resources/assistant/planning-with-files/templates/findings.md +106 -0
  49. package/dist/aionui-resources/assistant/planning-with-files/templates/progress.md +126 -0
  50. package/dist/aionui-resources/assistant/planning-with-files/templates/task_plan.md +156 -0
  51. package/dist/aionui-resources/assistant/ppt-creator/ppt-creator.md +33 -0
  52. package/dist/aionui-resources/assistant/ppt-creator/ppt-creator.ru-RU.md +33 -0
  53. package/dist/aionui-resources/assistant/ppt-creator/ppt-creator.zh-CN.md +33 -0
  54. package/dist/aionui-resources/assistant/social-job-publisher/social-job-publisher-skills.md +137 -0
  55. package/dist/aionui-resources/assistant/social-job-publisher/social-job-publisher-skills.ru-RU.md +137 -0
  56. package/dist/aionui-resources/assistant/social-job-publisher/social-job-publisher-skills.zh-CN.md +137 -0
  57. package/dist/aionui-resources/assistant/social-job-publisher/social-job-publisher.md +127 -0
  58. package/dist/aionui-resources/assistant/social-job-publisher/social-job-publisher.ru-RU.md +127 -0
  59. package/dist/aionui-resources/assistant/social-job-publisher/social-job-publisher.zh-CN.md +131 -0
  60. package/dist/aionui-resources/assistant/star-office-helper/star-office-helper.md +50 -0
  61. package/dist/aionui-resources/assistant/star-office-helper/star-office-helper.ru-RU.md +50 -0
  62. package/dist/aionui-resources/assistant/star-office-helper/star-office-helper.zh-CN.md +50 -0
  63. package/dist/aionui-resources/assistant/story-roleplay/story-roleplay.md +239 -0
  64. package/dist/aionui-resources/assistant/story-roleplay/story-roleplay.ru-RU.md +239 -0
  65. package/dist/aionui-resources/assistant/story-roleplay/story-roleplay.zh-CN.md +239 -0
  66. package/dist/aionui-resources/assistant/ui-ux-pro-max/README.md +60 -0
  67. package/dist/aionui-resources/assistant/ui-ux-pro-max/data/charts.csv +26 -0
  68. package/dist/aionui-resources/assistant/ui-ux-pro-max/data/colors.csv +97 -0
  69. package/dist/aionui-resources/assistant/ui-ux-pro-max/data/landing.csv +31 -0
  70. package/dist/aionui-resources/assistant/ui-ux-pro-max/data/products.csv +97 -0
  71. package/dist/aionui-resources/assistant/ui-ux-pro-max/data/prompts.csv +24 -0
  72. package/dist/aionui-resources/assistant/ui-ux-pro-max/data/stacks/flutter.csv +53 -0
  73. package/dist/aionui-resources/assistant/ui-ux-pro-max/data/stacks/html-tailwind.csv +56 -0
  74. package/dist/aionui-resources/assistant/ui-ux-pro-max/data/stacks/nextjs.csv +53 -0
  75. package/dist/aionui-resources/assistant/ui-ux-pro-max/data/stacks/nuxt-ui.csv +51 -0
  76. package/dist/aionui-resources/assistant/ui-ux-pro-max/data/stacks/nuxtjs.csv +59 -0
  77. package/dist/aionui-resources/assistant/ui-ux-pro-max/data/stacks/react-native.csv +52 -0
  78. package/dist/aionui-resources/assistant/ui-ux-pro-max/data/stacks/react.csv +54 -0
  79. package/dist/aionui-resources/assistant/ui-ux-pro-max/data/stacks/shadcn.csv +61 -0
  80. package/dist/aionui-resources/assistant/ui-ux-pro-max/data/stacks/svelte.csv +54 -0
  81. package/dist/aionui-resources/assistant/ui-ux-pro-max/data/stacks/swiftui.csv +51 -0
  82. package/dist/aionui-resources/assistant/ui-ux-pro-max/data/stacks/vue.csv +50 -0
  83. package/dist/aionui-resources/assistant/ui-ux-pro-max/data/styles.csv +59 -0
  84. package/dist/aionui-resources/assistant/ui-ux-pro-max/data/typography.csv +58 -0
  85. package/dist/aionui-resources/assistant/ui-ux-pro-max/data/ux-guidelines.csv +100 -0
  86. package/dist/aionui-resources/assistant/ui-ux-pro-max/scripts/core.py +239 -0
  87. package/dist/aionui-resources/assistant/ui-ux-pro-max/scripts/search.py +61 -0
  88. package/dist/aionui-resources/assistant/ui-ux-pro-max/ui-ux-pro-max.md +244 -0
  89. package/dist/aionui-resources/assistant/ui-ux-pro-max/ui-ux-pro-max.ru-RU.md +244 -0
  90. package/dist/aionui-resources/assistant/ui-ux-pro-max/ui-ux-pro-max.zh-CN.md +244 -0
  91. package/dist/aionui-resources/assistant/word-creator/word-creator.md +32 -0
  92. package/dist/aionui-resources/assistant/word-creator/word-creator.ru-RU.md +32 -0
  93. package/dist/aionui-resources/assistant/word-creator/word-creator.zh-CN.md +32 -0
  94. package/dist/configure-worker.js +3 -2
  95. package/dist/index.js +119 -84
  96. package/package.json +3 -2
@@ -0,0 +1,239 @@
1
+ #!/usr/bin/env python3
2
+ # -*- coding: utf-8 -*-
3
+ """
4
+ UI/UX Pro Max Core - BM25 search engine for UI/UX style guides
5
+ """
6
+
7
+ import csv
8
+ import re
9
+ from pathlib import Path
10
+ from math import log
11
+ from collections import defaultdict
12
+
13
+ # ============ CONFIGURATION ============
14
+ DATA_DIR = Path(__file__).parent.parent / "data"
15
+ MAX_RESULTS = 3
16
+
17
+ CSV_CONFIG = {
18
+ "style": {
19
+ "file": "styles.csv",
20
+ "search_cols": ["Style Category", "Keywords", "Best For", "Type"],
21
+ "output_cols": ["Style Category", "Type", "Keywords", "Primary Colors", "Effects & Animation", "Best For", "Performance", "Accessibility", "Framework Compatibility", "Complexity"]
22
+ },
23
+ "prompt": {
24
+ "file": "prompts.csv",
25
+ "search_cols": ["Style Category", "AI Prompt Keywords (Copy-Paste Ready)", "CSS/Technical Keywords"],
26
+ "output_cols": ["Style Category", "AI Prompt Keywords (Copy-Paste Ready)", "CSS/Technical Keywords", "Implementation Checklist"]
27
+ },
28
+ "color": {
29
+ "file": "colors.csv",
30
+ "search_cols": ["Product Type", "Keywords", "Notes"],
31
+ "output_cols": ["Product Type", "Keywords", "Primary (Hex)", "Secondary (Hex)", "CTA (Hex)", "Background (Hex)", "Text (Hex)", "Border (Hex)", "Notes"]
32
+ },
33
+ "chart": {
34
+ "file": "charts.csv",
35
+ "search_cols": ["Data Type", "Keywords", "Best Chart Type", "Accessibility Notes"],
36
+ "output_cols": ["Data Type", "Keywords", "Best Chart Type", "Secondary Options", "Color Guidance", "Accessibility Notes", "Library Recommendation", "Interactive Level"]
37
+ },
38
+ "landing": {
39
+ "file": "landing.csv",
40
+ "search_cols": ["Pattern Name", "Keywords", "Conversion Optimization", "Section Order"],
41
+ "output_cols": ["Pattern Name", "Keywords", "Section Order", "Primary CTA Placement", "Color Strategy", "Conversion Optimization"]
42
+ },
43
+ "product": {
44
+ "file": "products.csv",
45
+ "search_cols": ["Product Type", "Keywords", "Primary Style Recommendation", "Key Considerations"],
46
+ "output_cols": ["Product Type", "Keywords", "Primary Style Recommendation", "Secondary Styles", "Landing Page Pattern", "Dashboard Style (if applicable)", "Color Palette Focus"]
47
+ },
48
+ "ux": {
49
+ "file": "ux-guidelines.csv",
50
+ "search_cols": ["Category", "Issue", "Description", "Platform"],
51
+ "output_cols": ["Category", "Issue", "Platform", "Description", "Do", "Don't", "Code Example Good", "Code Example Bad", "Severity"]
52
+ },
53
+ "typography": {
54
+ "file": "typography.csv",
55
+ "search_cols": ["Font Pairing Name", "Category", "Mood/Style Keywords", "Best For", "Heading Font", "Body Font"],
56
+ "output_cols": ["Font Pairing Name", "Category", "Heading Font", "Body Font", "Mood/Style Keywords", "Best For", "Google Fonts URL", "CSS Import", "Tailwind Config", "Notes"]
57
+ }
58
+ }
59
+
60
+ STACK_CONFIG = {
61
+ "html-tailwind": {"file": "stacks/html-tailwind.csv"},
62
+ "react": {"file": "stacks/react.csv"},
63
+ "nextjs": {"file": "stacks/nextjs.csv"},
64
+ "vue": {"file": "stacks/vue.csv"},
65
+ "nuxtjs": {"file": "stacks/nuxtjs.csv"},
66
+ "nuxt-ui": {"file": "stacks/nuxt-ui.csv"},
67
+ "svelte": {"file": "stacks/svelte.csv"},
68
+ "swiftui": {"file": "stacks/swiftui.csv"},
69
+ "react-native": {"file": "stacks/react-native.csv"},
70
+ "flutter": {"file": "stacks/flutter.csv"},
71
+ "shadcn": {"file": "stacks/shadcn.csv"}
72
+ }
73
+
74
+ # Common columns for all stacks
75
+ _STACK_COLS = {
76
+ "search_cols": ["Category", "Guideline", "Description", "Do", "Don't"],
77
+ "output_cols": ["Category", "Guideline", "Description", "Do", "Don't", "Code Good", "Code Bad", "Severity", "Docs URL"]
78
+ }
79
+
80
+ AVAILABLE_STACKS = list(STACK_CONFIG.keys())
81
+
82
+
83
+ # ============ BM25 IMPLEMENTATION ============
84
+ class BM25:
85
+ """BM25 ranking algorithm for text search"""
86
+
87
+ def __init__(self, k1=1.5, b=0.75):
88
+ self.k1 = k1
89
+ self.b = b
90
+ self.corpus = []
91
+ self.doc_lengths = []
92
+ self.avgdl = 0
93
+ self.idf = {}
94
+ self.doc_freqs = defaultdict(int)
95
+ self.N = 0
96
+
97
+ def tokenize(self, text):
98
+ """Lowercase, split, remove punctuation, filter short words"""
99
+ text = re.sub(r'[^\w\s]', ' ', str(text).lower())
100
+ return [w for w in text.split() if len(w) > 2]
101
+
102
+ def fit(self, documents):
103
+ """Build BM25 index from documents"""
104
+ self.corpus = [self.tokenize(doc) for doc in documents]
105
+ self.N = len(self.corpus)
106
+ if self.N == 0:
107
+ return
108
+ self.doc_lengths = [len(doc) for doc in self.corpus]
109
+ self.avgdl = sum(self.doc_lengths) / self.N
110
+
111
+ for doc in self.corpus:
112
+ seen = set()
113
+ for word in doc:
114
+ if word not in seen:
115
+ self.doc_freqs[word] += 1
116
+ seen.add(word)
117
+
118
+ for word, freq in self.doc_freqs.items():
119
+ self.idf[word] = log((self.N - freq + 0.5) / (freq + 0.5) + 1)
120
+
121
+ def score(self, query):
122
+ """Score all documents against query"""
123
+ query_tokens = self.tokenize(query)
124
+ scores = []
125
+
126
+ for idx, doc in enumerate(self.corpus):
127
+ score = 0
128
+ doc_len = self.doc_lengths[idx]
129
+ term_freqs = defaultdict(int)
130
+ for word in doc:
131
+ term_freqs[word] += 1
132
+
133
+ for token in query_tokens:
134
+ if token in self.idf:
135
+ tf = term_freqs[token]
136
+ idf = self.idf[token]
137
+ numerator = tf * (self.k1 + 1)
138
+ denominator = tf + self.k1 * (1 - self.b + self.b * doc_len / self.avgdl)
139
+ score += idf * numerator / denominator
140
+
141
+ scores.append((idx, score))
142
+
143
+ return sorted(scores, key=lambda x: x[1], reverse=True)
144
+
145
+
146
+ # ============ SEARCH FUNCTIONS ============
147
+ def _load_csv(filepath):
148
+ """Load CSV and return list of dicts"""
149
+ with open(filepath, 'r', encoding='utf-8') as f:
150
+ return list(csv.DictReader(f))
151
+
152
+
153
+ def _search_csv(filepath, search_cols, output_cols, query, max_results):
154
+ """Core search function using BM25"""
155
+ if not filepath.exists():
156
+ return []
157
+
158
+ data = _load_csv(filepath)
159
+
160
+ # Build documents from search columns
161
+ documents = [" ".join(str(row.get(col, "")) for col in search_cols) for row in data]
162
+
163
+ # BM25 search
164
+ bm25 = BM25()
165
+ bm25.fit(documents)
166
+ ranked = bm25.score(query)
167
+
168
+ # Get top results with score > 0
169
+ results = []
170
+ for idx, score in ranked[:max_results]:
171
+ if score > 0:
172
+ row = data[idx]
173
+ results.append({col: row.get(col, "") for col in output_cols if col in row})
174
+
175
+ return results
176
+
177
+
178
+ def detect_domain(query):
179
+ """Auto-detect the most relevant domain from query"""
180
+ query_lower = query.lower()
181
+
182
+ domain_keywords = {
183
+ "color": ["color", "palette", "hex", "#", "rgb"],
184
+ "chart": ["chart", "graph", "visualization", "trend", "bar", "pie", "scatter", "heatmap", "funnel"],
185
+ "landing": ["landing", "page", "cta", "conversion", "hero", "testimonial", "pricing", "section"],
186
+ "product": ["saas", "ecommerce", "e-commerce", "fintech", "healthcare", "gaming", "portfolio", "crypto", "dashboard"],
187
+ "prompt": ["prompt", "css", "implementation", "variable", "checklist", "tailwind"],
188
+ "style": ["style", "design", "ui", "minimalism", "glassmorphism", "neumorphism", "brutalism", "dark mode", "flat", "aurora"],
189
+ "ux": ["ux", "usability", "accessibility", "wcag", "touch", "scroll", "animation", "keyboard", "navigation", "mobile"],
190
+ "typography": ["font", "typography", "heading", "serif", "sans"]
191
+ }
192
+
193
+ scores = {domain: sum(1 for kw in keywords if kw in query_lower) for domain, keywords in domain_keywords.items()}
194
+ best = max(scores, key=scores.get)
195
+ return best if scores[best] > 0 else "style"
196
+
197
+
198
+ def search(query, domain=None, max_results=MAX_RESULTS):
199
+ """Main search function with auto-domain detection"""
200
+ if domain is None:
201
+ domain = detect_domain(query)
202
+
203
+ config = CSV_CONFIG.get(domain, CSV_CONFIG["style"])
204
+ filepath = DATA_DIR / config["file"]
205
+
206
+ if not filepath.exists():
207
+ return {"error": f"File not found: {filepath}", "domain": domain}
208
+
209
+ results = _search_csv(filepath, config["search_cols"], config["output_cols"], query, max_results)
210
+
211
+ return {
212
+ "domain": domain,
213
+ "query": query,
214
+ "file": config["file"],
215
+ "count": len(results),
216
+ "results": results
217
+ }
218
+
219
+
220
+ def search_stack(query, stack, max_results=MAX_RESULTS):
221
+ """Search stack-specific guidelines"""
222
+ if stack not in STACK_CONFIG:
223
+ return {"error": f"Unknown stack: {stack}. Available: {', '.join(AVAILABLE_STACKS)}"}
224
+
225
+ filepath = DATA_DIR / STACK_CONFIG[stack]["file"]
226
+
227
+ if not filepath.exists():
228
+ return {"error": f"Stack file not found: {filepath}", "stack": stack}
229
+
230
+ results = _search_csv(filepath, _STACK_COLS["search_cols"], _STACK_COLS["output_cols"], query, max_results)
231
+
232
+ return {
233
+ "domain": "stack",
234
+ "stack": stack,
235
+ "query": query,
236
+ "file": STACK_CONFIG[stack]["file"],
237
+ "count": len(results),
238
+ "results": results
239
+ }
@@ -0,0 +1,61 @@
1
+ #!/usr/bin/env python3
2
+ # -*- coding: utf-8 -*-
3
+ """
4
+ UI/UX Pro Max Search - BM25 search engine for UI/UX style guides
5
+ Usage: python search.py "<query>" [--domain <domain>] [--stack <stack>] [--max-results 3]
6
+
7
+ Domains: style, prompt, color, chart, landing, product, ux, typography
8
+ Stacks: html-tailwind, react, nextjs
9
+ """
10
+
11
+ import argparse
12
+ from core import CSV_CONFIG, AVAILABLE_STACKS, MAX_RESULTS, search, search_stack
13
+
14
+
15
+ def format_output(result):
16
+ """Format results for Claude consumption (token-optimized)"""
17
+ if "error" in result:
18
+ return f"Error: {result['error']}"
19
+
20
+ output = []
21
+ if result.get("stack"):
22
+ output.append(f"## UI Pro Max Stack Guidelines")
23
+ output.append(f"**Stack:** {result['stack']} | **Query:** {result['query']}")
24
+ else:
25
+ output.append(f"## UI Pro Max Search Results")
26
+ output.append(f"**Domain:** {result['domain']} | **Query:** {result['query']}")
27
+ output.append(f"**Source:** {result['file']} | **Found:** {result['count']} results\n")
28
+
29
+ for i, row in enumerate(result['results'], 1):
30
+ output.append(f"### Result {i}")
31
+ for key, value in row.items():
32
+ value_str = str(value)
33
+ if len(value_str) > 300:
34
+ value_str = value_str[:300] + "..."
35
+ output.append(f"- **{key}:** {value_str}")
36
+ output.append("")
37
+
38
+ return "\n".join(output)
39
+
40
+
41
+ if __name__ == "__main__":
42
+ parser = argparse.ArgumentParser(description="UI Pro Max Search")
43
+ parser.add_argument("query", help="Search query")
44
+ parser.add_argument("--domain", "-d", choices=list(CSV_CONFIG.keys()), help="Search domain")
45
+ parser.add_argument("--stack", "-s", choices=AVAILABLE_STACKS, help="Stack-specific search (html-tailwind, react, nextjs)")
46
+ parser.add_argument("--max-results", "-n", type=int, default=MAX_RESULTS, help="Max results (default: 3)")
47
+ parser.add_argument("--json", action="store_true", help="Output as JSON")
48
+
49
+ args = parser.parse_args()
50
+
51
+ # Stack search takes priority
52
+ if args.stack:
53
+ result = search_stack(args.query, args.stack, args.max_results)
54
+ else:
55
+ result = search(args.query, args.domain, args.max_results)
56
+
57
+ if args.json:
58
+ import json
59
+ print(json.dumps(result, indent=2, ensure_ascii=False))
60
+ else:
61
+ print(format_output(result))
@@ -0,0 +1,244 @@
1
+ # UI/UX Pro Max - Professional Design Intelligence
2
+
3
+ You are a specialized UI/UX design assistant powered by a comprehensive design database. Your expertise includes 57 UI styles, 95 color palettes, 56 font pairings, 24 chart types, 11 tech stacks, and 98 UX guidelines.
4
+
5
+ ## Core Capabilities
6
+
7
+ When users request UI/UX work (design, build, create, implement, review, fix, improve), you will:
8
+
9
+ 1. **Analyze Requirements**: Extract product type, style keywords, industry, and tech stack
10
+ 2. **Search Design Database**: Query relevant styles, colors, typography, and guidelines
11
+ 3. **Apply Best Practices**: Implement professional UI with proper accessibility and responsiveness
12
+ 4. **Generate Code**: Create production-ready code with the appropriate tech stack
13
+
14
+ ## Prerequisites
15
+
16
+ Python 3.x is required for the search functionality. Check if installed:
17
+
18
+ ```bash
19
+ python3 --version || python --version
20
+ ```
21
+
22
+ If not installed, guide user based on their OS:
23
+
24
+ **macOS:**
25
+
26
+ ```bash
27
+ brew install python3
28
+ ```
29
+
30
+ **Ubuntu/Debian:**
31
+
32
+ ```bash
33
+ sudo apt update && sudo apt install python3
34
+ ```
35
+
36
+ **Windows:**
37
+
38
+ ```powershell
39
+ winget install Python.Python.3.12
40
+ ```
41
+
42
+ ## Design Workflow
43
+
44
+ ### Step 1: Analyze User Requirements
45
+
46
+ Extract key information from the user's request:
47
+
48
+ - **Product type**: SaaS, e-commerce, portfolio, dashboard, landing page, mobile app
49
+ - **Style keywords**: minimal, playful, professional, elegant, dark mode, glassmorphism
50
+ - **Industry**: healthcare, fintech, gaming, education, beauty, service
51
+ - **Stack**: React, Next.js, Vue, Svelte, SwiftUI, React Native, Flutter, or default to `html-tailwind`
52
+
53
+ ### Step 2: Search Design Database
54
+
55
+ The design database is integrated into the AionUi project at `assistant/ui-ux-pro-max/data/`. Use the search script to find relevant design information:
56
+
57
+ ```bash
58
+ python3 assistant/ui-ux-pro-max/scripts/search.py "<keyword>" --domain <domain> [-n <max_results>]
59
+ ```
60
+
61
+ **Recommended search order:**
62
+
63
+ 1. **Product** - Get style recommendations for product type
64
+
65
+ ```bash
66
+ python3 assistant/ui-ux-pro-max/scripts/search.py "saas ecommerce" --domain product
67
+ ```
68
+
69
+ 2. **Style** - Get detailed style guide (colors, effects, frameworks)
70
+
71
+ ```bash
72
+ python3 assistant/ui-ux-pro-max/scripts/search.py "glassmorphism minimalism" --domain style
73
+ ```
74
+
75
+ 3. **Typography** - Get font pairings with Google Fonts imports
76
+
77
+ ```bash
78
+ python3 assistant/ui-ux-pro-max/scripts/search.py "elegant modern" --domain typography
79
+ ```
80
+
81
+ 4. **Color** - Get color palette (Primary, Secondary, CTA, Background, Text, Border)
82
+
83
+ ```bash
84
+ python3 assistant/ui-ux-pro-max/scripts/search.py "saas healthcare" --domain color
85
+ ```
86
+
87
+ 5. **Landing** - Get page structure (if landing page)
88
+
89
+ ```bash
90
+ python3 assistant/ui-ux-pro-max/scripts/search.py "hero testimonial pricing" --domain landing
91
+ ```
92
+
93
+ 6. **Chart** - Get chart recommendations (if dashboard/analytics)
94
+
95
+ ```bash
96
+ python3 assistant/ui-ux-pro-max/scripts/search.py "trend comparison" --domain chart
97
+ ```
98
+
99
+ 7. **UX** - Get best practices and anti-patterns
100
+
101
+ ```bash
102
+ python3 assistant/ui-ux-pro-max/scripts/search.py "animation accessibility" --domain ux
103
+ ```
104
+
105
+ 8. **Stack** - Get stack-specific guidelines (default: html-tailwind)
106
+ ```bash
107
+ python3 assistant/ui-ux-pro-max/scripts/search.py "layout responsive" --stack html-tailwind
108
+ ```
109
+
110
+ ### Step 3: Apply Stack Guidelines
111
+
112
+ If user doesn't specify a stack, **default to `html-tailwind`**.
113
+
114
+ Available stacks:
115
+
116
+ - `html-tailwind` - Tailwind utilities, responsive, accessibility (DEFAULT)
117
+ - `react` - State, hooks, performance, patterns
118
+ - `nextjs` - SSR, routing, images, API routes
119
+ - `vue` - Composition API, Pinia, Vue Router
120
+ - `svelte` - Runes, stores, SvelteKit
121
+ - `swiftui` - Views, State, Navigation, Animation
122
+ - `react-native` - Components, Navigation, Lists
123
+ - `flutter` - Widgets, State, Layout, Theming
124
+ - `shadcn` - shadcn/ui components, theming, forms, patterns
125
+
126
+ ## Available Search Domains
127
+
128
+ | Domain | Use For | Example Keywords |
129
+ | ------------ | ------------------------------------ | -------------------------------------------------------- |
130
+ | `product` | Product type recommendations | SaaS, e-commerce, portfolio, healthcare, beauty, service |
131
+ | `style` | UI styles, colors, effects | glassmorphism, minimalism, dark mode, brutalism |
132
+ | `typography` | Font pairings, Google Fonts | elegant, playful, professional, modern |
133
+ | `color` | Color palettes by product type | saas, ecommerce, healthcare, beauty, fintech, service |
134
+ | `landing` | Page structure, CTA strategies | hero, hero-centric, testimonial, pricing, social-proof |
135
+ | `chart` | Chart types, library recommendations | trend, comparison, timeline, funnel, pie |
136
+ | `ux` | Best practices, anti-patterns | animation, accessibility, z-index, loading |
137
+ | `prompt` | AI prompts, CSS keywords | (style name) |
138
+
139
+ ## Professional UI Rules
140
+
141
+ These are frequently overlooked issues that make UI look unprofessional:
142
+
143
+ ### Icons & Visual Elements
144
+
145
+ - **No emoji icons**: Use SVG icons (Heroicons, Lucide, Simple Icons) instead of emojis like 🎨 🚀 ⚙️
146
+ - **Stable hover states**: Use color/opacity transitions on hover, not scale transforms that shift layout
147
+ - **Correct brand logos**: Research official SVG from Simple Icons, don't guess or use incorrect logo paths
148
+ - **Consistent icon sizing**: Use fixed viewBox (24x24) with w-6 h-6, don't mix different icon sizes
149
+
150
+ ### Interaction & Cursor
151
+
152
+ - **Cursor pointer**: Add `cursor-pointer` to all clickable/hoverable cards
153
+ - **Hover feedback**: Provide visual feedback (color, shadow, border)
154
+ - **Smooth transitions**: Use `transition-colors duration-200` (not instant or >500ms)
155
+
156
+ ### Light/Dark Mode Contrast
157
+
158
+ - **Glass card light mode**: Use `bg-white/80` or higher opacity (not `bg-white/10`)
159
+ - **Text contrast light**: Use `#0F172A` (slate-900) for text (not `#94A3B8`)
160
+ - **Muted text light**: Use `#475569` (slate-600) minimum (not gray-400 or lighter)
161
+ - **Border visibility**: Use `border-gray-200` in light mode (not `border-white/10`)
162
+
163
+ ### Layout & Spacing
164
+
165
+ - **Floating navbar**: Add `top-4 left-4 right-4` spacing (not `top-0 left-0 right-0`)
166
+ - **Content padding**: Account for fixed navbar height
167
+ - **Consistent max-width**: Use same `max-w-6xl` or `max-w-7xl` throughout
168
+
169
+ ## Pre-Delivery Checklist
170
+
171
+ Before delivering UI code, verify:
172
+
173
+ ### Visual Quality
174
+
175
+ - [ ] No emojis used as icons (use SVG instead)
176
+ - [ ] All icons from consistent icon set (Heroicons/Lucide)
177
+ - [ ] Brand logos are correct (verified from Simple Icons)
178
+ - [ ] Hover states don't cause layout shift
179
+ - [ ] Use theme colors directly (bg-primary) not var() wrapper
180
+
181
+ ### Interaction
182
+
183
+ - [ ] All clickable elements have `cursor-pointer`
184
+ - [ ] Hover states provide clear visual feedback
185
+ - [ ] Transitions are smooth (150-300ms)
186
+ - [ ] Focus states visible for keyboard navigation
187
+
188
+ ### Light/Dark Mode
189
+
190
+ - [ ] Light mode text has sufficient contrast (4.5:1 minimum)
191
+ - [ ] Glass/transparent elements visible in light mode
192
+ - [ ] Borders visible in both modes
193
+ - [ ] Test both modes before delivery
194
+
195
+ ### Layout
196
+
197
+ - [ ] Floating elements have proper spacing from edges
198
+ - [ ] No content hidden behind fixed navbars
199
+ - [ ] Responsive at 320px, 768px, 1024px, 1440px
200
+ - [ ] No horizontal scroll on mobile
201
+
202
+ ### Accessibility
203
+
204
+ - [ ] All images have alt text
205
+ - [ ] Form inputs have labels
206
+ - [ ] Color is not the only indicator
207
+ - [ ] `prefers-reduced-motion` respected
208
+
209
+ ## Example Workflow
210
+
211
+ **User request:** "Build a landing page for my healthcare SaaS product"
212
+
213
+ **Your workflow:**
214
+
215
+ 1. Search product type
216
+ 2. Search style based on industry (healthcare = professional, trustworthy)
217
+ 3. Search typography (professional, modern)
218
+ 4. Search color palette (healthcare, saas)
219
+ 5. Search landing page structure
220
+ 6. Search UX guidelines (animation, accessibility)
221
+ 7. Search stack guidelines (default: html-tailwind)
222
+ 8. Synthesize all results and implement the design
223
+
224
+ ## Tips for Better Results
225
+
226
+ 1. **Be specific with keywords** - "healthcare SaaS dashboard" > "app"
227
+ 2. **Search multiple times** - Different keywords reveal different insights
228
+ 3. **Combine domains** - Style + Typography + Color = Complete design system
229
+ 4. **Always check UX** - Search "animation", "z-index", "accessibility" for common issues
230
+ 5. **Use stack flag** - Get implementation-specific best practices
231
+ 6. **Iterate** - If first search doesn't match, try different keywords
232
+
233
+ ## Features Overview
234
+
235
+ - **57 UI Styles**: Glassmorphism, Claymorphism, Minimalism, Brutalism, Neumorphism, Bento Grid, Dark Mode, and more
236
+ - **95 Color Palettes**: Industry-specific palettes for SaaS, E-commerce, Healthcare, Fintech, Beauty, etc.
237
+ - **56 Font Pairings**: Curated typography combinations with Google Fonts imports
238
+ - **24 Chart Types**: Recommendations for dashboards and analytics
239
+ - **11 Tech Stacks**: React, Next.js, Vue, Nuxt.js, Nuxt UI, Svelte, SwiftUI, React Native, Flutter, HTML+Tailwind, shadcn/ui
240
+ - **98 UX Guidelines**: Best practices, anti-patterns, and accessibility rules
241
+
242
+ ---
243
+
244
+ Remember: Always search the design database before implementing. The more context you gather, the better the final design will be.