ui-ux-master 1.1.0 → 1.2.1

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.
package/README.md CHANGED
@@ -1,6 +1,15 @@
1
- # UI/UX Master
1
+ # UI/UX Master 🎨✨
2
2
 
3
- The one-stop UI/UX skill for AI coding agents.
3
+ [![npm version](https://img.shields.io/npm/v/ui-ux-master?logo=npm&label=npm)](https://www.npmjs.com/package/ui-ux-master)
4
+ [![npm downloads](https://img.shields.io/npm/dm/ui-ux-master?logo=npm&label=downloads)](https://www.npmjs.com/package/ui-ux-master)
5
+ [![License: MIT](https://img.shields.io/npm/l/ui-ux-master)](https://github.com/Seance1723/UI-UX-Skills/blob/main/LICENSE)
6
+ [![GitHub stars](https://img.shields.io/github/stars/Seance1723/UI-UX-Skills?style=flat&logo=github)](https://github.com/Seance1723/UI-UX-Skills/stargazers)
7
+ [![Last commit](https://img.shields.io/github/last-commit/Seance1723/UI-UX-Skills?logo=github)](https://github.com/Seance1723/UI-UX-Skills/commits/main)
8
+ [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](http://makeapullrequest.com)
9
+
10
+ **The ultimate UI/UX skill for AI coding agents.** Turn your AI into a Senior Product Designer, UX Researcher, and Frontend Lead in seconds.
11
+
12
+ Author: Rupak Biswas.
4
13
 
5
14
  Use it with a normal prompt plus one trigger:
6
15
 
@@ -16,6 +25,15 @@ Most AI UI prompts produce pretty screens but miss the hard parts: research assu
16
25
 
17
26
  UI/UX Master is built to make agents behave like a senior product designer, UX researcher, accessibility reviewer, design-system lead, and frontend handoff partner in one workflow.
18
27
 
28
+ ## 🚀 Supercharge Your AI Workflow
29
+
30
+ AI agents are great at writing code, but they often struggle with **Information Architecture**, **Accessibility (WCAG)**, and **Design Systems**. `ui-ux-master` bridges this gap.
31
+
32
+ By installing this tool, you instantly give **Claude**, **Cursor**, **Windsurf**, **Codex**, **Gemini**, **Antigravity**, and universal/custom-instruction agents the ability to:
33
+ - 🧠 **Think like a designer:** Understand user flows and journey maps before coding.
34
+ - ♿ **Audit for accessibility:** Automatically check for WCAG 2.2 AA compliance and ARIA patterns.
35
+ - 🧩 **Enforce design systems:** Keep your brand colors, typography, and spacing consistent.
36
+
19
37
  ## What Makes It Different
20
38
 
21
39
  | Common open-source prompt/skill | UI/UX Master |
@@ -28,6 +46,17 @@ UI/UX Master is built to make agents behave like a senior product designer, UX r
28
46
  | Weak accessibility coverage | WCAG 2.2 AA plus advanced ARIA/widget patterns and test matrix |
29
47
  | No deployment validation | Release validator, npm package metadata, tests, and deployment zip builder |
30
48
  | No product-risk coverage | Ethics, privacy, dark-pattern, high-risk domain, AI-interface, and inclusive-design checks |
49
+ | Hidden from AI tooling | Ships `llms.txt`, machine-readable manifest, system prompt add-ons, and a local MCP server for automatic discovery |
50
+
51
+ ## AI Discoverability
52
+
53
+ UI/UX Master is now designed for both humans and AI systems to discover:
54
+
55
+ - `llms.txt` gives agents a concise map of the package.
56
+ - `ai-discovery/ui-ux-master.manifest.json` provides a machine-readable manifest.
57
+ - `system-prompts/` contains full, compact, and MCP-focused system prompt add-ons.
58
+ - `ui-ux-master-mcp` exposes the package through a local MCP server with tools, resources, and prompts.
59
+ - Project installs copy these discovery assets into `.ui-ux-master/` so no-save `npx` installs remain usable after the npm cache disappears.
31
60
 
32
61
  ## Capabilities
33
62
 
@@ -81,6 +110,25 @@ Dry run:
81
110
  npx ui-ux-master install --project --dry-run
82
111
  ```
83
112
 
113
+ ## Package
114
+
115
+ | Channel | Package | Purpose |
116
+ |---|---|---|
117
+ | npmjs | [`ui-ux-master`](https://www.npmjs.com/package/ui-ux-master) | Primary public package for normal installs and `npx` usage |
118
+ | GitHub | [`Seance1723/UI-UX-Skills`](https://github.com/Seance1723/UI-UX-Skills) | Source, issues, releases, workflows, and open-source collaboration |
119
+ | GitHub Packages | Optional scoped mirror | Use only if you want the repository Packages section to show a package |
120
+
121
+ The canonical npm package is intentionally unscoped as `ui-ux-master`. GitHub Packages requires npm packages to be scoped, so a GitHub Packages mirror should use `@seance1723/ui-ux-master` while the public npmjs package remains `ui-ux-master`.
122
+
123
+ Package entrypoints:
124
+
125
+ - `ui-ux-master` - CLI installer and project integration tool.
126
+ - `ui-ux-master-mcp` - local MCP server for tools, resources, and prompts.
127
+ - `import { assets, bins, trigger } from "ui-ux-master"` - lightweight ESM metadata API.
128
+ - `require("ui-ux-master")` - CommonJS metadata API.
129
+
130
+ Package metadata is connected to GitHub through `repository`, `homepage`, `bugs`, license, funding, exports, engines, and npm provenance-ready publish settings in `package.json`.
131
+
84
132
  ## Supported Agents
85
133
 
86
134
  | Agent | Install target | Trigger |
@@ -92,9 +140,43 @@ npx ui-ux-master install --project --dry-run
92
140
  | Gemini CLI | `GEMINI.md` marked section | type `/ui-ux-master` |
93
141
  | Cursor | `.cursor/rules/ui-ux-master.mdc` | type `/ui-ux-master` |
94
142
  | Other agents | `agent-templates/universal/ui-ux-master-trigger.md` | copy trigger into instruction file |
143
+ | MCP clients | `ui-ux-master-mcp` | discover tools/resources/prompts automatically |
95
144
 
96
145
  See `docs/slash-command-compatibility.md` for details.
97
146
 
147
+ ## System Prompt Add-ons
148
+
149
+ Copy one of these into any AI custom-instructions field when the agent does not support project rules:
150
+
151
+ - `system-prompts/ui-ux-master-system-add-on.md` — full add-on.
152
+ - `system-prompts/ui-ux-master-compact.md` — compact add-on.
153
+ - `system-prompts/ui-ux-master-mcp-add-on.md` — MCP-focused add-on.
154
+
155
+ ## MCP Server
156
+
157
+ Run the local MCP server:
158
+
159
+ ```bash
160
+ ui-ux-master-mcp
161
+ # or without global install
162
+ npx -y --package ui-ux-master ui-ux-master-mcp
163
+ ```
164
+
165
+ MCP client config:
166
+
167
+ ```json
168
+ {
169
+ "mcpServers": {
170
+ "ui-ux-master": {
171
+ "command": "npx",
172
+ "args": ["-y", "--package", "ui-ux-master", "ui-ux-master-mcp"]
173
+ }
174
+ }
175
+ }
176
+ ```
177
+
178
+ See `docs/mcp-server.md` for tools, resources, prompts, and Hermes config.
179
+
98
180
  ## Usage Examples
99
181
 
100
182
  ```text
@@ -126,21 +208,42 @@ ui-ux-master install --project --agents claude,codex,windsurf,antigravity,gemini
126
208
  ui-ux-master install --project --dry-run
127
209
  ui-ux-master doctor
128
210
  ui-ux-master where
211
+ ui-ux-master mcp
212
+ ui-ux-master-mcp
129
213
  ui-ux-master uninstall --project
130
214
  ```
131
215
 
132
216
  ## Package Structure
133
217
 
134
218
  - `SKILL.md` — main orchestration skill.
219
+ - `index.mjs`, `index.cjs`, `index.d.ts` — ESM, CommonJS, and TypeScript metadata entrypoints.
135
220
  - `references/` — advanced playbooks and standards-aligned checklists.
136
221
  - `templates/` — briefs, audits, component specs, design-system specs, and project UI/UX memory template.
137
222
  - `agent-templates/` — Claude, Codex, Windsurf, Antigravity, Gemini, Cursor, and universal `/ui-ux-master` activation rules.
138
- - `docs/` — cross-agent slash-command compatibility docs.
223
+ - `docs/` — cross-agent slash-command compatibility docs and MCP server docs.
224
+ - `system-prompts/` — full, compact, and MCP-focused system prompt add-ons.
225
+ - `ai-discovery/` — machine-readable discovery manifest.
226
+ - `llms.txt` — AI-readable package map.
139
227
  - `bin/ui-ux-master.mjs` — npm CLI installer.
228
+ - `bin/ui-ux-master-mcp.mjs` — local MCP server.
140
229
  - `scripts/validate_skill.py` — dependency-free release validator.
141
230
  - `scripts/build_deployment_zip.py` — clean deployment zip builder.
142
231
  - `tests/` — npm installer and package smoke tests.
143
232
 
233
+ ## GitHub Repository Setup
234
+
235
+ Recommended About section:
236
+
237
+ - Description: `Opt-in UI/UX master skill, CLI, and MCP server for AI coding agents. Accessibility, design systems, UX research, and frontend handoff in one workflow.`
238
+ - Website: `https://www.npmjs.com/package/ui-ux-master`
239
+ - Enable releases and issues. Enable discussions when you are ready to support community questions.
240
+
241
+ Recommended GitHub topics:
242
+
243
+ `ai-agent`, `ai-coding`, `ui-ux`, `ux-research`, `product-design`, `design-system`, `accessibility`, `wcag`, `mcp`, `model-context-protocol`, `claude-code`, `codex`, `windsurf`, `cursor`, `gemini-cli`, `npm-package`, `cli`, `prompt-engineering`, `frontend`, `llms-txt`
244
+
245
+ For publishing and registry details, see `docs/package-publishing.md`.
246
+
144
247
  ## Validation and Testing
145
248
 
146
249
  Run from this folder:
@@ -175,6 +278,7 @@ UI/UX Master is designed to outperform narrow UI prompt packs and simple design
175
278
  5. Project memory: durable brand/design consistency via `.ui-ux-memory.md`.
176
279
  6. Release engineering: npm packaging, CLI installer, validation, tests, and deployment zip.
177
280
  7. Advanced risk coverage: ethics, privacy, dark patterns, localization, platform conventions, high-risk domains, and AI UX transparency.
281
+ 8. AI discoverability: `llms.txt`, manifest, system prompt add-ons, and local MCP server.
178
282
 
179
283
  ## Deployment Readiness Checklist
180
284
 
@@ -183,6 +287,8 @@ UI/UX Master is designed to outperform narrow UI prompt packs and simple design
183
287
  - [ ] `npm pack --dry-run` contains only intended files.
184
288
  - [ ] `ui-ux-master install --project --dry-run` works.
185
289
  - [ ] Agent templates contain `/ui-ux-master` and do not include local absolute paths.
290
+ - [ ] System prompt add-ons and MCP docs are included and mention `/ui-ux-master`.
291
+ - [ ] MCP smoke test returns `tools/list` and `resources/list` successfully.
186
292
  - [ ] No `node_modules`, `__pycache__`, `.pyc`, graphify cache, coverage, logs, secrets, or local credentials are included.
187
293
 
188
294
  ## Known Limitations
package/SKILL.md CHANGED
@@ -1,8 +1,8 @@
1
1
  ---
2
2
  name: ui-ux-master
3
3
  description: "Use when an agent must design, audit, improve, prototype, specify, or hand off any UI/UX work end-to-end. Provides one-stop UX strategy, research, IA, flows, wireframes, visual design, design systems, accessibility, usability testing, conversion, and engineering handoff workflows."
4
- version: 1.1.0
5
- author: Hermes Agent
4
+ version: 1.2.1
5
+ author: Rupak Biswas
6
6
  license: MIT
7
7
  platforms: [linux, macos, windows]
8
8
  metadata:
@@ -19,15 +19,26 @@ This is a one-stop UI/UX skill for agents. Use it whenever the user asks for any
19
19
 
20
20
  The job is not only to make screens look good. The job is to solve the user's goal with a usable, accessible, coherent, implementable interface. Always connect design choices to user needs, product goals, content, system constraints, and measurable outcomes.
21
21
 
22
- ## Cross-Agent Activation
22
+ ## Cross-Agent Activation
23
+
24
+ This skill is opt-in. In Codex, Claude, Windsurf, Antigravity, Gemini, Cursor, and other agents, activate it only when the user includes `/ui-ux-master` in the prompt or invokes the installed native slash command. If the user does not mention `/ui-ux-master`, do not apply this skill automatically.
25
+
26
+ When activated, the user can write naturally, for example: `/ui-ux-master audit this checkout flow` or `/ui-ux-master design a premium SaaS landing page`. Treat the rest of the prompt as the task and follow this SKILL.md plus the referenced files.
23
27
 
24
- This skill is opt-in. In Codex, Claude, Windsurf, Antigravity, Gemini, Cursor, and other agents, activate it only when the user includes `/ui-ux-master` in the prompt or invokes the installed native slash command. If the user does not mention `/ui-ux-master`, do not apply this skill automatically.
28
+ ## AI Discovery and MCP
25
29
 
26
- When activated, the user can write naturally, for example: `/ui-ux-master audit this checkout flow` or `/ui-ux-master design a premium SaaS landing page`. Treat the rest of the prompt as the task and follow this SKILL.md plus the referenced files.
30
+ This package exposes the workflow through human-readable instructions and machine-readable discovery assets:
27
31
 
28
- ## Core Operating Rule
32
+ - `llms.txt` gives AI agents a short map of the package.
33
+ - `ai-discovery/ui-ux-master.manifest.json` describes activation, entrypoints, tools, resources, prompts, and supported agents.
34
+ - `system-prompts/` contains full, compact, and MCP-focused system prompt add-ons.
35
+ - `bin/ui-ux-master-mcp.mjs` runs a local read-only MCP server that exposes UI/UX Master tools, resources, and prompts.
29
36
 
30
- Do not jump directly to visuals. Work in this order unless the user explicitly asks for a narrow task:
37
+ Use MCP and system prompt add-ons only as discovery/activation layers. The workflow remains opt-in and should still require `/ui-ux-master` unless the user explicitly asks to use UI/UX Master.
38
+
39
+ ## Core Operating Rule
40
+
41
+ Do not jump directly to visuals. Work in this order unless the user explicitly asks for a narrow task:
31
42
 
32
43
  1. Check for existing UI/UX memory and branding first: `.ui-ux-memory.md`, design tokens, CSS variables, theme files, existing components, fonts, color scheme, and representative screens.
33
44
  2. If memory exists, follow it as the design baseline. If no memory exists, create one for the application using `templates/ui-ux-memory.md` after inspecting existing branding or asking minimum high-value questions for a fresh project.
@@ -693,22 +704,29 @@ Use the supporting files in this skill folder when useful:
693
704
  - `references/ui-ux-frontend-implementation-rules.md` — mandatory frontend implementation rules so agents do not miss stack inspection, states, accessibility, responsiveness, tokens, QA, or handoff.
694
705
  - `references/wcag-aa-quick-reference.md` — practical WCAG 2.2 AA reference for agents.
695
706
  - `references/design-system-playbook.md` — how to create or extend a design system.
696
- - `references/top-100-brand-website-analysis.md` — top global brand website patterns and reusable frontend methods.
697
- - `references/ux-research-methods.md` — research planning, method selection, evidence confidence, and ethical research rules.
698
- - `references/usability-heuristics.md` — heuristic review, cognitive rules, and severity scoring.
699
- - `references/platform-guidelines.md` — web, iOS, Android/Material, Windows, desktop, kiosk, email, TV, and cross-platform rules.
700
- - `references/content-design-and-i18n.md` — UX writing, microcopy, localization, RTL, and content handoff.
701
- - `references/ux-measurement-quality-gates.md` — task success metrics, UX measurement, accessibility gates, and definition of done.
702
- - `references/ethical-inclusive-design.md` — dark-pattern avoidance, privacy UX, inclusive design, high-risk and AI interface rules.
703
- - `references/service-design-journey-mapping.md` — journey maps, service blueprints, support handoff, and omnichannel checks.
704
- - `references/data-visualization-dashboard-ux.md` — dashboard, table, chart, data-grid, and alerting UX rules.
705
- - `references/accessibility-advanced-patterns.md` — complex widget accessibility and screen-reader test matrix.
706
- - `references/ui-ux-curriculum-and-standards.md` — basic-to-advanced UI/UX curriculum and standards map.
707
- - `references/competitive-landscape.md` — competitor gaps and strategy for staying ahead.
707
+ - `references/top-100-brand-website-analysis.md` — top global brand website patterns and reusable frontend methods.
708
+ - `references/ux-research-methods.md` — research planning, method selection, evidence confidence, and ethical research rules.
709
+ - `references/usability-heuristics.md` — heuristic review, cognitive rules, and severity scoring.
710
+ - `references/platform-guidelines.md` — web, iOS, Android/Material, Windows, desktop, kiosk, email, TV, and cross-platform rules.
711
+ - `references/content-design-and-i18n.md` — UX writing, microcopy, localization, RTL, and content handoff.
712
+ - `references/ux-measurement-quality-gates.md` — task success metrics, UX measurement, accessibility gates, and definition of done.
713
+ - `references/ethical-inclusive-design.md` — dark-pattern avoidance, privacy UX, inclusive design, high-risk and AI interface rules.
714
+ - `references/service-design-journey-mapping.md` — journey maps, service blueprints, support handoff, and omnichannel checks.
715
+ - `references/data-visualization-dashboard-ux.md` — dashboard, table, chart, data-grid, and alerting UX rules.
716
+ - `references/accessibility-advanced-patterns.md` — complex widget accessibility and screen-reader test matrix.
717
+ - `references/ui-ux-curriculum-and-standards.md` — basic-to-advanced UI/UX curriculum and standards map.
718
+ - `references/competitive-landscape.md` — competitor gaps and strategy for staying ahead.
708
719
  - `docs/slash-command-compatibility.md` — cross-agent `/ui-ux-master` trigger compatibility.
720
+ - `docs/mcp-server.md` — MCP tools, resources, prompts, client configs, and smoke testing.
721
+ - `llms.txt` — AI-readable package map for discovery by agents and indexing tools.
722
+ - `ai-discovery/ui-ux-master.manifest.json` — machine-readable manifest for activation, entrypoints, MCP, and capabilities.
723
+ - `system-prompts/ui-ux-master-system-add-on.md` — full system prompt add-on.
724
+ - `system-prompts/ui-ux-master-compact.md` — compact system prompt add-on.
725
+ - `system-prompts/ui-ux-master-mcp-add-on.md` — MCP-focused system prompt add-on.
709
726
  - `agent-templates/` — Claude, Codex, Windsurf, Antigravity, Gemini, Cursor, and universal installer templates.
710
727
  - `bin/ui-ux-master.mjs` — npm CLI installer.
711
- - `templates/ui-ux-brief.md` — intake and requirements template.
728
+ - `bin/ui-ux-master-mcp.mjs` — local read-only MCP server.
729
+ - `templates/ui-ux-brief.md` — intake and requirements template.
712
730
  - `templates/ui-ux-memory.md` — project UI/UX memory file template to copy into an application root as `.ui-ux-memory.md`.
713
731
  - `templates/ui-ux-audit-report.md` — audit output template.
714
732
  - `templates/component-spec.md` — component handoff template.
@@ -0,0 +1,84 @@
1
+ {
2
+ "schema_version": "1.0",
3
+ "name": "ui-ux-master",
4
+ "title": "UI/UX Master",
5
+ "version": "1.2.0",
6
+ "author": "Rupak Biswas",
7
+ "description": "One-stop UI/UX master skill for AI agents with opt-in /ui-ux-master activation, system prompt add-ons, project-local skill assets, and local MCP discovery.",
8
+ "activation": {
9
+ "trigger": "/ui-ux-master",
10
+ "mode": "opt-in-only",
11
+ "do_not_auto_apply_without_trigger": true
12
+ },
13
+ "entrypoints": {
14
+ "skill": "SKILL.md",
15
+ "readme": "README.md",
16
+ "llms": "llms.txt",
17
+ "mcp_server_bin": "ui-ux-master-mcp",
18
+ "cli_bin": "ui-ux-master"
19
+ },
20
+ "system_prompt_addons": [
21
+ "system-prompts/ui-ux-master-system-add-on.md",
22
+ "system-prompts/ui-ux-master-compact.md",
23
+ "system-prompts/ui-ux-master-mcp-add-on.md"
24
+ ],
25
+ "mcp": {
26
+ "server_name": "ui-ux-master",
27
+ "transport": "stdio",
28
+ "command": "npx",
29
+ "args": ["-y", "--package", "ui-ux-master", "ui-ux-master-mcp"],
30
+ "tools": [
31
+ "get_skill",
32
+ "list_assets",
33
+ "get_asset",
34
+ "generate_system_prompt",
35
+ "create_memory_template",
36
+ "install_instructions"
37
+ ],
38
+ "resources": [
39
+ "ui-ux-master://skill",
40
+ "ui-ux-master://readme",
41
+ "ui-ux-master://llms",
42
+ "ui-ux-master://manifest",
43
+ "ui-ux-master://system-prompt",
44
+ "ui-ux-master://compact-prompt",
45
+ "ui-ux-master://mcp-prompt",
46
+ "ui-ux-master://mcp-docs",
47
+ "ui-ux-master://checklist",
48
+ "ui-ux-master://memory-template"
49
+ ],
50
+ "prompts": [
51
+ "ui-ux-master",
52
+ "ui-ux-audit",
53
+ "ui-ux-redesign",
54
+ "ui-ux-design-system",
55
+ "ui-ux-accessibility-review"
56
+ ]
57
+ },
58
+ "supported_agents": [
59
+ "Claude Code",
60
+ "Codex",
61
+ "Windsurf",
62
+ "Antigravity",
63
+ "Gemini CLI",
64
+ "Cursor",
65
+ "MCP clients",
66
+ "Universal agents"
67
+ ],
68
+ "capabilities": [
69
+ "UX strategy",
70
+ "UX research planning",
71
+ "information architecture",
72
+ "user flows",
73
+ "wireframes",
74
+ "visual design direction",
75
+ "design systems",
76
+ "accessibility",
77
+ "responsive design",
78
+ "content design",
79
+ "localization",
80
+ "ethical UX",
81
+ "frontend implementation handoff",
82
+ "QA and acceptance criteria"
83
+ ]
84
+ }
@@ -0,0 +1,243 @@
1
+ #!/usr/bin/env node
2
+ import fs from 'node:fs';
3
+ import path from 'node:path';
4
+ import readline from 'node:readline';
5
+ import { fileURLToPath } from 'node:url';
6
+
7
+ const __filename = fileURLToPath(import.meta.url);
8
+ const packageRoot = path.resolve(path.dirname(__filename), '..');
9
+ const protocolVersion = '2024-11-05';
10
+
11
+ const assetMap = {
12
+ skill: 'SKILL.md',
13
+ readme: 'README.md',
14
+ llms: 'llms.txt',
15
+ manifest: 'ai-discovery/ui-ux-master.manifest.json',
16
+ system_prompt: 'system-prompts/ui-ux-master-system-add-on.md',
17
+ compact_prompt: 'system-prompts/ui-ux-master-compact.md',
18
+ mcp_prompt: 'system-prompts/ui-ux-master-mcp-add-on.md',
19
+ mcp_docs: 'docs/mcp-server.md',
20
+ slash_docs: 'docs/slash-command-compatibility.md',
21
+ memory_workflow: 'references/ui-ux-memory-workflow.md',
22
+ frontend_rules: 'references/ui-ux-frontend-implementation-rules.md',
23
+ complete_checklist: 'references/ui-ux-complete-checklist.md',
24
+ wcag: 'references/wcag-aa-quick-reference.md',
25
+ accessibility_patterns: 'references/accessibility-advanced-patterns.md',
26
+ design_system_playbook: 'references/design-system-playbook.md',
27
+ memory_template: 'templates/ui-ux-memory.md',
28
+ };
29
+
30
+ const resourceMap = {
31
+ 'ui-ux-master://skill': 'SKILL.md',
32
+ 'ui-ux-master://readme': 'README.md',
33
+ 'ui-ux-master://llms': 'llms.txt',
34
+ 'ui-ux-master://manifest': 'ai-discovery/ui-ux-master.manifest.json',
35
+ 'ui-ux-master://system-prompt': 'system-prompts/ui-ux-master-system-add-on.md',
36
+ 'ui-ux-master://compact-prompt': 'system-prompts/ui-ux-master-compact.md',
37
+ 'ui-ux-master://mcp-prompt': 'system-prompts/ui-ux-master-mcp-add-on.md',
38
+ 'ui-ux-master://mcp-docs': 'docs/mcp-server.md',
39
+ 'ui-ux-master://checklist': 'references/ui-ux-complete-checklist.md',
40
+ 'ui-ux-master://memory-template': 'templates/ui-ux-memory.md',
41
+ };
42
+
43
+ function readRel(rel) {
44
+ const full = path.resolve(packageRoot, rel);
45
+ if (!full.startsWith(packageRoot)) throw new Error('Path escapes package root');
46
+ return fs.readFileSync(full, 'utf8');
47
+ }
48
+
49
+ function textContent(text) {
50
+ return [{ type: 'text', text }];
51
+ }
52
+
53
+ function jsonText(obj) {
54
+ return textContent(JSON.stringify(obj, null, 2));
55
+ }
56
+
57
+ function tool(name, description, properties = {}, required = []) {
58
+ return {
59
+ name,
60
+ description,
61
+ inputSchema: {
62
+ type: 'object',
63
+ properties,
64
+ required,
65
+ additionalProperties: false,
66
+ },
67
+ };
68
+ }
69
+
70
+ function listTools() {
71
+ return [
72
+ tool('get_skill', 'Return the main UI/UX Master SKILL.md content.', {}, []),
73
+ tool('list_assets', 'List discoverable UI/UX Master assets, references, prompts, and resources.', {}, []),
74
+ tool('get_asset', 'Return a named package asset such as skill, readme, system_prompt, complete_checklist, or memory_template.', {
75
+ name: { type: 'string', description: `Asset name. Allowed: ${Object.keys(assetMap).join(', ')}` },
76
+ }, ['name']),
77
+ tool('generate_system_prompt', 'Generate a system prompt add-on for an AI agent.', {
78
+ mode: { type: 'string', enum: ['full', 'compact', 'mcp'], default: 'full' },
79
+ agent: { type: 'string', description: 'Optional target agent name such as Claude, Codex, Windsurf, Cursor, Gemini, Antigravity, or universal.' },
80
+ }, []),
81
+ tool('create_memory_template', 'Return a project .ui-ux-memory.md template with optional project name inserted.', {
82
+ projectName: { type: 'string', description: 'Optional project/product name.' },
83
+ }, []),
84
+ tool('install_instructions', 'Return install instructions for npm, project agent rules, or MCP clients.', {
85
+ target: { type: 'string', enum: ['npm', 'project', 'global', 'mcp', 'claude-desktop', 'hermes', 'cursor', 'codex', 'windsurf', 'gemini', 'antigravity', 'universal'], default: 'project' },
86
+ }, []),
87
+ ];
88
+ }
89
+
90
+ function callTool(name, args = {}) {
91
+ switch (name) {
92
+ case 'get_skill':
93
+ return { content: textContent(readRel('SKILL.md')) };
94
+ case 'list_assets':
95
+ return { content: jsonText({ assets: assetMap, resources: Object.keys(resourceMap), prompts: listPrompts().map(p => p.name), tools: listTools().map(t => t.name) }) };
96
+ case 'get_asset': {
97
+ const rel = assetMap[args.name];
98
+ if (!rel) throw new Error(`Unknown asset '${args.name}'. Use list_assets first.`);
99
+ return { content: textContent(readRel(rel)) };
100
+ }
101
+ case 'generate_system_prompt': {
102
+ const mode = args.mode || 'full';
103
+ const rel = mode === 'compact' ? assetMap.compact_prompt : mode === 'mcp' ? assetMap.mcp_prompt : assetMap.system_prompt;
104
+ const agentLine = args.agent ? `\n\nTarget agent: ${args.agent}. Keep the /ui-ux-master opt-in rule and use that agent's instruction format when applying this add-on.\n` : '';
105
+ return { content: textContent(readRel(rel) + agentLine) };
106
+ }
107
+ case 'create_memory_template': {
108
+ let text = readRel('templates/ui-ux-memory.md');
109
+ if (args.projectName) text = text.replace('# UI/UX Memory', `# UI/UX Memory — ${args.projectName}`);
110
+ return { content: textContent(text) };
111
+ }
112
+ case 'install_instructions':
113
+ return { content: textContent(installInstructions(args.target || 'project')) };
114
+ default:
115
+ throw new Error(`Unknown tool '${name}'`);
116
+ }
117
+ }
118
+
119
+ function installInstructions(target) {
120
+ const common = 'After install, activate with: /ui-ux-master <your normal UI/UX request>';
121
+ const map = {
122
+ npm: 'npm install -g ui-ux-master\nui-ux-master install --global',
123
+ project: 'npm install --save-dev ui-ux-master\nnpx ui-ux-master install --project',
124
+ global: 'npm install -g ui-ux-master\nui-ux-master install --global',
125
+ mcp: 'npx -y --package ui-ux-master ui-ux-master-mcp\n# or after install: ui-ux-master-mcp',
126
+ hermes: 'mcp_servers:\n ui_ux_master:\n command: "npx"\n args: ["-y", "--package", "ui-ux-master", "ui-ux-master-mcp"]',
127
+ 'claude-desktop': '{\n "mcpServers": {\n "ui-ux-master": {\n "command": "npx",\n "args": ["-y", "--package", "ui-ux-master", "ui-ux-master-mcp"]\n }\n }\n}',
128
+ cursor: 'npx ui-ux-master install --project --agents cursor',
129
+ codex: 'npx ui-ux-master install --project --agents codex',
130
+ windsurf: 'npx ui-ux-master install --project --agents windsurf',
131
+ gemini: 'npx ui-ux-master install --project --agents gemini',
132
+ antigravity: 'npx ui-ux-master install --project --agents antigravity',
133
+ universal: 'Copy system-prompts/ui-ux-master-system-add-on.md into the agent custom instructions, or run npx ui-ux-master install --project --agents universal',
134
+ };
135
+ return `${map[target] || map.project}\n\n${common}`;
136
+ }
137
+
138
+ function listResources() {
139
+ return Object.entries(resourceMap).map(([uri, rel]) => ({
140
+ uri,
141
+ name: path.basename(rel),
142
+ description: `UI/UX Master asset: ${rel}`,
143
+ mimeType: rel.endsWith('.json') ? 'application/json' : 'text/markdown',
144
+ }));
145
+ }
146
+
147
+ function readResource(uri) {
148
+ const rel = resourceMap[uri];
149
+ if (!rel) throw new Error(`Unknown resource '${uri}'`);
150
+ return { contents: [{ uri, mimeType: rel.endsWith('.json') ? 'application/json' : 'text/markdown', text: readRel(rel) }] };
151
+ }
152
+
153
+ function listPrompts() {
154
+ return [
155
+ { name: 'ui-ux-master', description: 'Activate the full UI/UX Master workflow for a normal user task.', arguments: [{ name: 'task', description: 'The user UI/UX request.', required: true }] },
156
+ { name: 'ui-ux-audit', description: 'Audit a screen, flow, app, or URL for UX, UI, accessibility, and handoff issues.', arguments: [{ name: 'target', description: 'What to audit.', required: true }] },
157
+ { name: 'ui-ux-redesign', description: 'Redesign a product area while preserving or intentionally evolving brand conventions.', arguments: [{ name: 'target', description: 'What to redesign.', required: true }] },
158
+ { name: 'ui-ux-design-system', description: 'Create or extend a design system with tokens, components, governance, and QA.', arguments: [{ name: 'scope', description: 'Product/component scope.', required: true }] },
159
+ { name: 'ui-ux-accessibility-review', description: 'Run a WCAG-focused accessibility and interaction review.', arguments: [{ name: 'target', description: 'Screen, component, or flow.', required: true }] },
160
+ ];
161
+ }
162
+
163
+ function getPrompt(name, args = {}) {
164
+ const task = args.task || args.target || args.scope || 'the requested UI/UX work';
165
+ const map = {
166
+ 'ui-ux-master': `/ui-ux-master ${task}\n\nUse the full UI/UX Master workflow. Check UI/UX memory first. Produce implementation-ready output.`,
167
+ 'ui-ux-audit': `/ui-ux-master audit ${task} for UX clarity, accessibility, responsive behavior, content, trust, conversion, states, and implementation quality. Return prioritized findings and fixes.`,
168
+ 'ui-ux-redesign': `/ui-ux-master redesign ${task}. Preserve existing brand/tokens/components unless a redesign is requested. Include IA, flow, layout, states, accessibility, responsive rules, copy, and developer handoff.`,
169
+ 'ui-ux-design-system': `/ui-ux-master create or extend a design system for ${task}. Include tokens, components, variants, states, accessibility, governance, examples, QA, and acceptance criteria.`,
170
+ 'ui-ux-accessibility-review': `/ui-ux-master review ${task} for WCAG 2.2 AA, keyboard, focus, semantics, screen reader behavior, contrast, motion, forms, error recovery, and test coverage.`,
171
+ };
172
+ if (!map[name]) throw new Error(`Unknown prompt '${name}'`);
173
+ return { messages: [{ role: 'user', content: { type: 'text', text: map[name] } }] };
174
+ }
175
+
176
+ function ok(id, result) {
177
+ process.stdout.write(JSON.stringify({ jsonrpc: '2.0', id, result }) + '\n');
178
+ }
179
+
180
+ function err(id, error, code = -32603) {
181
+ process.stdout.write(JSON.stringify({ jsonrpc: '2.0', id, error: { code, message: error?.message || String(error) } }) + '\n');
182
+ }
183
+
184
+ function handle(message) {
185
+ const { id, method, params = {} } = message;
186
+ try {
187
+ if (method === 'initialize') {
188
+ ok(id, {
189
+ protocolVersion,
190
+ capabilities: { tools: {}, resources: {}, prompts: {} },
191
+ serverInfo: { name: 'ui-ux-master', version: readPackageVersion() },
192
+ });
193
+ } else if (method === 'notifications/initialized') {
194
+ // no response for notifications
195
+ } else if (method === 'ping') {
196
+ ok(id, {});
197
+ } else if (method === 'tools/list') {
198
+ ok(id, { tools: listTools() });
199
+ } else if (method === 'tools/call') {
200
+ ok(id, callTool(params.name, params.arguments || {}));
201
+ } else if (method === 'resources/list') {
202
+ ok(id, { resources: listResources() });
203
+ } else if (method === 'resources/read') {
204
+ ok(id, readResource(params.uri));
205
+ } else if (method === 'prompts/list') {
206
+ ok(id, { prompts: listPrompts() });
207
+ } else if (method === 'prompts/get') {
208
+ ok(id, getPrompt(params.name, params.arguments || {}));
209
+ } else {
210
+ err(id, new Error(`Method not found: ${method}`), -32601);
211
+ }
212
+ } catch (e) {
213
+ err(id, e);
214
+ }
215
+ }
216
+
217
+ function readPackageVersion() {
218
+ try {
219
+ return JSON.parse(readRel('package.json')).version || '0.0.0';
220
+ } catch {
221
+ return '0.0.0';
222
+ }
223
+ }
224
+
225
+ function printHelp() {
226
+ console.log(`UI/UX Master MCP Server\n\nRun over stdio for MCP clients:\n ui-ux-master-mcp\n\nExample client config:\n{\n "mcpServers": {\n "ui-ux-master": {\n "command": "npx",\n "args": ["-y", "--package", "ui-ux-master", "ui-ux-master-mcp"]\n }\n }\n}`);
227
+ }
228
+
229
+ if (process.argv.includes('--help') || process.argv.includes('-h')) {
230
+ printHelp();
231
+ process.exit(0);
232
+ }
233
+
234
+ const rl = readline.createInterface({ input: process.stdin, crlfDelay: Infinity });
235
+ rl.on('line', (line) => {
236
+ const trimmed = line.trim();
237
+ if (!trimmed) return;
238
+ try {
239
+ handle(JSON.parse(trimmed));
240
+ } catch (e) {
241
+ err(null, e);
242
+ }
243
+ });
@@ -81,8 +81,8 @@ function wanted(opts, name) {
81
81
 
82
82
  function copyProjectSkillAssets(root, dryRun) {
83
83
  const dest = path.join(root, '.ui-ux-master');
84
- const files = ['SKILL.md', 'README.md', 'LICENSE', 'package.json'];
85
- const dirs = ['references', 'templates', 'docs'];
84
+ const files = ['SKILL.md', 'README.md', 'LICENSE', 'package.json', 'llms.txt'];
85
+ const dirs = ['references', 'templates', 'docs', 'system-prompts', 'ai-discovery'];
86
86
  for (const file of files) {
87
87
  writeFile(path.join(dest, file), read(file), dryRun);
88
88
  }
@@ -161,7 +161,7 @@ function doctor(opts) {
161
161
  console.log(`target root: ${root}`);
162
162
  console.log(`node: ${process.version}`);
163
163
  console.log(`trigger: /ui-ux-master`);
164
- const required = ['SKILL.md', 'README.md', 'references/ui-ux-complete-checklist.md', 'agent-templates/universal/ui-ux-master-trigger.md'];
164
+ const required = ['SKILL.md', 'README.md', 'llms.txt', 'references/ui-ux-complete-checklist.md', 'agent-templates/universal/ui-ux-master-trigger.md', 'system-prompts/ui-ux-master-system-add-on.md', 'docs/mcp-server.md', 'bin/ui-ux-master-mcp.mjs'];
165
165
  let ok = true;
166
166
  for (const rel of required) {
167
167
  const exists = fs.existsSync(path.join(packageRoot, rel));
@@ -172,7 +172,7 @@ function doctor(opts) {
172
172
  }
173
173
 
174
174
  function help() {
175
- console.log(`UI/UX Master\n\nUsage:\n ui-ux-master install [--project|--global] [--agents claude,codex,windsurf,antigravity,gemini,cursor,universal] [--dir path] [--dry-run]\n ui-ux-master uninstall [--project] [--dir path] [--dry-run]\n ui-ux-master doctor [--dir path]\n ui-ux-master where\n\nAfter install, use: /ui-ux-master <your normal UI/UX prompt>`);
175
+ console.log(`UI/UX Master\n\nUsage:\n ui-ux-master install [--project|--global] [--agents claude,codex,windsurf,antigravity,gemini,cursor,universal] [--dir path] [--dry-run]\n ui-ux-master uninstall [--project] [--dir path] [--dry-run]\n ui-ux-master doctor [--dir path]\n ui-ux-master where\n ui-ux-master mcp\n ui-ux-master-mcp\n\nAfter install, use: /ui-ux-master <your normal UI/UX prompt>\nMCP: npx -y --package ui-ux-master ui-ux-master-mcp`);
176
176
  }
177
177
 
178
178
  const opts = parseArgs(process.argv.slice(2));
@@ -185,6 +185,8 @@ if (opts.postinstall) {
185
185
  uninstallProject(findProjectRoot(opts.dir || process.cwd()), opts);
186
186
  } else if (opts.command === 'doctor') {
187
187
  doctor(opts);
188
+ } else if (opts.command === 'mcp' || opts.command === 'ui-ux-master-mcp') {
189
+ await import('./ui-ux-master-mcp.mjs');
188
190
  } else if (opts.command === 'where') {
189
191
  console.log(packageRoot);
190
192
  } else {