class-ai-agent 1.2.1 โ†’ 1.2.3

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 (58) hide show
  1. package/.claude/skills/ui-ux-pro-max/SKILL.md +377 -0
  2. package/.claude/skills/ui-ux-pro-max/data/charts.csv +26 -0
  3. package/.claude/skills/ui-ux-pro-max/data/colors.csv +97 -0
  4. package/.claude/skills/ui-ux-pro-max/data/icons.csv +101 -0
  5. package/.claude/skills/ui-ux-pro-max/data/landing.csv +31 -0
  6. package/.claude/skills/ui-ux-pro-max/data/products.csv +97 -0
  7. package/.claude/skills/ui-ux-pro-max/data/react-performance.csv +45 -0
  8. package/.claude/skills/ui-ux-pro-max/data/stacks/astro.csv +54 -0
  9. package/.claude/skills/ui-ux-pro-max/data/stacks/flutter.csv +53 -0
  10. package/.claude/skills/ui-ux-pro-max/data/stacks/html-tailwind.csv +56 -0
  11. package/.claude/skills/ui-ux-pro-max/data/stacks/jetpack-compose.csv +53 -0
  12. package/.claude/skills/ui-ux-pro-max/data/stacks/nextjs.csv +53 -0
  13. package/.claude/skills/ui-ux-pro-max/data/stacks/nuxt-ui.csv +51 -0
  14. package/.claude/skills/ui-ux-pro-max/data/stacks/nuxtjs.csv +59 -0
  15. package/.claude/skills/ui-ux-pro-max/data/stacks/react-native.csv +52 -0
  16. package/.claude/skills/ui-ux-pro-max/data/stacks/react.csv +54 -0
  17. package/.claude/skills/ui-ux-pro-max/data/stacks/shadcn.csv +61 -0
  18. package/.claude/skills/ui-ux-pro-max/data/stacks/svelte.csv +54 -0
  19. package/.claude/skills/ui-ux-pro-max/data/stacks/swiftui.csv +51 -0
  20. package/.claude/skills/ui-ux-pro-max/data/stacks/vue.csv +50 -0
  21. package/.claude/skills/ui-ux-pro-max/data/styles.csv +68 -0
  22. package/.claude/skills/ui-ux-pro-max/data/typography.csv +58 -0
  23. package/.claude/skills/ui-ux-pro-max/data/ui-reasoning.csv +101 -0
  24. package/.claude/skills/ui-ux-pro-max/data/ux-guidelines.csv +100 -0
  25. package/.claude/skills/ui-ux-pro-max/data/web-interface.csv +31 -0
  26. package/.claude/skills/ui-ux-pro-max/scripts/core.py +253 -0
  27. package/.claude/skills/ui-ux-pro-max/scripts/design_system.py +1067 -0
  28. package/.claude/skills/ui-ux-pro-max/scripts/search.py +114 -0
  29. package/.cursor/skills/ui-ux-pro-max/SKILL.md +288 -0
  30. package/.cursor/skills/ui-ux-pro-max/data/charts.csv +26 -0
  31. package/.cursor/skills/ui-ux-pro-max/data/colors.csv +97 -0
  32. package/.cursor/skills/ui-ux-pro-max/data/icons.csv +101 -0
  33. package/.cursor/skills/ui-ux-pro-max/data/landing.csv +31 -0
  34. package/.cursor/skills/ui-ux-pro-max/data/products.csv +97 -0
  35. package/.cursor/skills/ui-ux-pro-max/data/react-performance.csv +45 -0
  36. package/.cursor/skills/ui-ux-pro-max/data/stacks/astro.csv +54 -0
  37. package/.cursor/skills/ui-ux-pro-max/data/stacks/flutter.csv +53 -0
  38. package/.cursor/skills/ui-ux-pro-max/data/stacks/html-tailwind.csv +56 -0
  39. package/.cursor/skills/ui-ux-pro-max/data/stacks/jetpack-compose.csv +53 -0
  40. package/.cursor/skills/ui-ux-pro-max/data/stacks/nextjs.csv +53 -0
  41. package/.cursor/skills/ui-ux-pro-max/data/stacks/nuxt-ui.csv +51 -0
  42. package/.cursor/skills/ui-ux-pro-max/data/stacks/nuxtjs.csv +59 -0
  43. package/.cursor/skills/ui-ux-pro-max/data/stacks/react-native.csv +52 -0
  44. package/.cursor/skills/ui-ux-pro-max/data/stacks/react.csv +54 -0
  45. package/.cursor/skills/ui-ux-pro-max/data/stacks/shadcn.csv +61 -0
  46. package/.cursor/skills/ui-ux-pro-max/data/stacks/svelte.csv +54 -0
  47. package/.cursor/skills/ui-ux-pro-max/data/stacks/swiftui.csv +51 -0
  48. package/.cursor/skills/ui-ux-pro-max/data/stacks/vue.csv +50 -0
  49. package/.cursor/skills/ui-ux-pro-max/data/styles.csv +68 -0
  50. package/.cursor/skills/ui-ux-pro-max/data/typography.csv +58 -0
  51. package/.cursor/skills/ui-ux-pro-max/data/ui-reasoning.csv +101 -0
  52. package/.cursor/skills/ui-ux-pro-max/data/ux-guidelines.csv +100 -0
  53. package/.cursor/skills/ui-ux-pro-max/data/web-interface.csv +31 -0
  54. package/.cursor/skills/ui-ux-pro-max/scripts/core.py +253 -0
  55. package/.cursor/skills/ui-ux-pro-max/scripts/design_system.py +1067 -0
  56. package/.cursor/skills/ui-ux-pro-max/scripts/search.py +114 -0
  57. package/README.md +6 -14
  58. package/package.json +1 -1
@@ -0,0 +1,114 @@
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
+ python search.py "<query>" --design-system [-p "Project Name"]
7
+ python search.py "<query>" --design-system --persist [-p "Project Name"] [--page "dashboard"]
8
+
9
+ Domains: style, prompt, color, chart, landing, product, ux, typography
10
+ Stacks: html-tailwind, react, nextjs
11
+
12
+ Persistence (Master + Overrides pattern):
13
+ --persist Save design system to design-system/MASTER.md
14
+ --page Also create a page-specific override file in design-system/pages/
15
+ """
16
+
17
+ import argparse
18
+ import sys
19
+ import io
20
+ from core import CSV_CONFIG, AVAILABLE_STACKS, MAX_RESULTS, search, search_stack
21
+ from design_system import generate_design_system, persist_design_system
22
+
23
+ # Force UTF-8 for stdout/stderr to handle emojis on Windows (cp1252 default)
24
+ if sys.stdout.encoding and sys.stdout.encoding.lower() != 'utf-8':
25
+ sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')
26
+ if sys.stderr.encoding and sys.stderr.encoding.lower() != 'utf-8':
27
+ sys.stderr = io.TextIOWrapper(sys.stderr.buffer, encoding='utf-8')
28
+
29
+
30
+ def format_output(result):
31
+ """Format results for Claude consumption (token-optimized)"""
32
+ if "error" in result:
33
+ return f"Error: {result['error']}"
34
+
35
+ output = []
36
+ if result.get("stack"):
37
+ output.append(f"## UI Pro Max Stack Guidelines")
38
+ output.append(f"**Stack:** {result['stack']} | **Query:** {result['query']}")
39
+ else:
40
+ output.append(f"## UI Pro Max Search Results")
41
+ output.append(f"**Domain:** {result['domain']} | **Query:** {result['query']}")
42
+ output.append(f"**Source:** {result['file']} | **Found:** {result['count']} results\n")
43
+
44
+ for i, row in enumerate(result['results'], 1):
45
+ output.append(f"### Result {i}")
46
+ for key, value in row.items():
47
+ value_str = str(value)
48
+ if len(value_str) > 300:
49
+ value_str = value_str[:300] + "..."
50
+ output.append(f"- **{key}:** {value_str}")
51
+ output.append("")
52
+
53
+ return "\n".join(output)
54
+
55
+
56
+ if __name__ == "__main__":
57
+ parser = argparse.ArgumentParser(description="UI Pro Max Search")
58
+ parser.add_argument("query", help="Search query")
59
+ parser.add_argument("--domain", "-d", choices=list(CSV_CONFIG.keys()), help="Search domain")
60
+ parser.add_argument("--stack", "-s", choices=AVAILABLE_STACKS, help="Stack-specific search (html-tailwind, react, nextjs)")
61
+ parser.add_argument("--max-results", "-n", type=int, default=MAX_RESULTS, help="Max results (default: 3)")
62
+ parser.add_argument("--json", action="store_true", help="Output as JSON")
63
+ # Design system generation
64
+ parser.add_argument("--design-system", "-ds", action="store_true", help="Generate complete design system recommendation")
65
+ parser.add_argument("--project-name", "-p", type=str, default=None, help="Project name for design system output")
66
+ parser.add_argument("--format", "-f", choices=["ascii", "markdown"], default="ascii", help="Output format for design system")
67
+ # Persistence (Master + Overrides pattern)
68
+ parser.add_argument("--persist", action="store_true", help="Save design system to design-system/MASTER.md (creates hierarchical structure)")
69
+ parser.add_argument("--page", type=str, default=None, help="Create page-specific override file in design-system/pages/")
70
+ parser.add_argument("--output-dir", "-o", type=str, default=None, help="Output directory for persisted files (default: current directory)")
71
+
72
+ args = parser.parse_args()
73
+
74
+ # Design system takes priority
75
+ if args.design_system:
76
+ result = generate_design_system(
77
+ args.query,
78
+ args.project_name,
79
+ args.format,
80
+ persist=args.persist,
81
+ page=args.page,
82
+ output_dir=args.output_dir
83
+ )
84
+ print(result)
85
+
86
+ # Print persistence confirmation
87
+ if args.persist:
88
+ project_slug = args.project_name.lower().replace(' ', '-') if args.project_name else "default"
89
+ print("\n" + "=" * 60)
90
+ print(f"โœ… Design system persisted to design-system/{project_slug}/")
91
+ print(f" ๐Ÿ“„ design-system/{project_slug}/MASTER.md (Global Source of Truth)")
92
+ if args.page:
93
+ page_filename = args.page.lower().replace(' ', '-')
94
+ print(f" ๐Ÿ“„ design-system/{project_slug}/pages/{page_filename}.md (Page Overrides)")
95
+ print("")
96
+ print(f"๐Ÿ“– Usage: When building a page, check design-system/{project_slug}/pages/[page].md first.")
97
+ print(f" If exists, its rules override MASTER.md. Otherwise, use MASTER.md.")
98
+ print("=" * 60)
99
+ # Stack search
100
+ elif args.stack:
101
+ result = search_stack(args.query, args.stack, args.max_results)
102
+ if args.json:
103
+ import json
104
+ print(json.dumps(result, indent=2, ensure_ascii=False))
105
+ else:
106
+ print(format_output(result))
107
+ # Domain search
108
+ else:
109
+ result = search(args.query, args.domain, args.max_results)
110
+ if args.json:
111
+ import json
112
+ print(json.dumps(result, indent=2, ensure_ascii=False))
113
+ else:
114
+ print(format_output(result))
package/README.md CHANGED
@@ -18,7 +18,7 @@ Open-source AI agent scaffolding by **Royal Solution** โ€” use it in your own pr
18
18
  <a href="https://www.npmjs.com/package/class-ai-agent"><img src="https://img.shields.io/npm/v/class-ai-agent?label=npm&logo=npm&style=flat-square" alt="npm version" /></a>
19
19
  <img src="https://img.shields.io/badge/node-%3E%3D16.7-339933?logo=node.js&logoColor=white&style=flat-square" alt="Node.js 16.7+" />
20
20
  <img src="https://img.shields.io/badge/license-MIT-blue?style=flat-square" alt="License MIT" />
21
- <img src="https://img.shields.io/badge/version-1.2.1-blue?style=flat-square" alt="Version" />
21
+ <img src="https://img.shields.io/badge/version-1.2.3-blue?style=flat-square" alt="Version" />
22
22
  </p>
23
23
 
24
24
  </div>
@@ -104,7 +104,7 @@ What is inside:
104
104
  - **10 specialized agents** (markdown personas under `agents/`)
105
105
  - **13 mandatory topic rules** (plus **`cursor-overview.mdc`** under `.cursor/rules/`)
106
106
  - **9 workflow prompts** under `commands/`
107
- - **5 skills** (TDD, code review, incremental implementation, deploy, security review)
107
+ - **6 skills** (TDD, code review, incremental implementation, deploy, security review, UI/UX Pro Max)
108
108
  - **4 reference checklists** (security, testing, performance, accessibility)
109
109
 
110
110
  Keep **`.claude/`** and **`.cursor/`** in sync when you change standards.
@@ -170,6 +170,10 @@ Same ideas as `.claude/` for `commands/`, `agents/`, `skills/`, `references/`. D
170
170
  โ””โ”€โ”€ references/
171
171
  ```
172
172
 
173
+ ### Skill notes
174
+
175
+ - **`ui-ux-pro-max/`**: A UI/UX-oriented skill bundle (includes datasets under `data/` and helper scripts under `scripts/`) to support design-system decisions and UX guidelines.
176
+
173
177
  ---
174
178
 
175
179
  ## Specialized Agents
@@ -313,16 +317,4 @@ That advances **`patch`** (e.g. `1.2.0` โ†’ `1.2.1`). Use **`npm version minor`*
313
317
  ## Credits
314
318
 
315
319
  - **[Royal Solution](https://codewebkhongkho.com/portfolios)** โ€” project and scaffolding.
316
- - **[Code Web Khong Kho](https://codewebkhongkho.com/portfolios)** โ€” documentation, community, and templates ยท [Facebook](https://www.facebook.com/codewebkhongkho) ยท [TikTok](https://www.tiktok.com/@code.web.khng.kh).
317
320
  - Upstream inspiration: [fdhhhdjd/Class-AI-Agent](https://github.com/fdhhhdjd/Class-AI-Agent), [addyosmani/agent-skills](https://github.com/addyosmani/agent-skills).
318
- - Practices informed by *Software Engineering at Google* and Clean Code principles.
319
-
320
- <div align="center">
321
-
322
- <img src="https://res.cloudinary.com/ecommerce2021/image/upload/v1768626951/dev_efjbzw.jpg" alt="Code Web Khong Kho" width="80" style="border-radius: 50%" />
323
-
324
- **Code Web Khong Kho**
325
-
326
- <sub>Made with care ยท <a href="https://www.facebook.com/codewebkhongkho">Facebook</a> ยท <a href="https://codewebkhongkho.com/portfolios">Website</a></sub>
327
-
328
- </div>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "class-ai-agent",
3
- "version": "1.2.1",
3
+ "version": "1.2.3",
4
4
  "description": "Production-grade AI agent configuration for Claude Code & Cursor",
5
5
  "license": "MIT",
6
6
  "repository": {