Compare commits
2 Commits
v2.2.1
...
fix/self-c
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
28fb9373bd | ||
|
|
3eb7d99d67 |
56
README.md
56
README.md
@@ -311,7 +311,7 @@ winget install Python.Python.3.12
|
|||||||
|
|
||||||
### Skill Mode (Auto-activate)
|
### Skill Mode (Auto-activate)
|
||||||
|
|
||||||
**Supported:** Claude Code, Windsurf, Antigravity, Codex CLI, Continue, Gemini CLI, OpenCode, Qoder, CodeBuddy
|
**Supported:** Claude Code, Cursor, Windsurf, Antigravity, Codex CLI, Continue, Gemini CLI, OpenCode, Qoder, CodeBuddy
|
||||||
|
|
||||||
The skill activates automatically when you request UI/UX work. Just chat naturally:
|
The skill activates automatically when you request UI/UX work. Just chat naturally:
|
||||||
|
|
||||||
@@ -323,7 +323,7 @@ Build a landing page for my SaaS product
|
|||||||
|
|
||||||
### Workflow Mode (Slash Command)
|
### Workflow Mode (Slash Command)
|
||||||
|
|
||||||
**Supported:** Cursor, Kiro, GitHub Copilot, Roo Code
|
**Supported:** Kiro, GitHub Copilot, Roo Code
|
||||||
|
|
||||||
Use the slash command to invoke the skill:
|
Use the slash command to invoke the skill:
|
||||||
|
|
||||||
@@ -427,6 +427,58 @@ If not, use the Master rules exclusively.
|
|||||||
Now, generate the code...
|
Now, generate the code...
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Architecture & Contributing
|
||||||
|
|
||||||
|
### For Users
|
||||||
|
|
||||||
|
The codebase has been restructured to use a **template-based generation system**. All platform-specific files (`.cursor/`, `.windsurf/`, `.kiro/`, etc.) are now generated dynamically by the CLI.
|
||||||
|
|
||||||
|
**Always use the CLI to install:**
|
||||||
|
|
||||||
|
```bash
|
||||||
|
npm install -g uipro-cli
|
||||||
|
uipro init --ai <platform>
|
||||||
|
```
|
||||||
|
|
||||||
|
This ensures you get the latest templates and correct file structure for your AI assistant.
|
||||||
|
|
||||||
|
### For Contributors
|
||||||
|
|
||||||
|
If you want to contribute to this project:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 1. Clone the repository
|
||||||
|
git clone https://github.com/nextlevelbuilder/ui-ux-pro-max-skill.git
|
||||||
|
cd ui-ux-pro-max-skill
|
||||||
|
|
||||||
|
# 2. Understand the structure
|
||||||
|
src/ui-ux-pro-max/ # Source of truth (data, scripts, templates)
|
||||||
|
cli/ # CLI installer (generates files from templates)
|
||||||
|
.claude/ # Local dev/test for Claude Code skill
|
||||||
|
|
||||||
|
# 3. Make changes in src/ui-ux-pro-max/
|
||||||
|
# - data/*.csv → Database files
|
||||||
|
# - scripts/*.py → Search engine & design system
|
||||||
|
# - templates/ → Platform-specific templates
|
||||||
|
|
||||||
|
# 4. Sync to CLI and test locally
|
||||||
|
cp -r src/ui-ux-pro-max/data/* cli/assets/data/
|
||||||
|
cp -r src/ui-ux-pro-max/scripts/* cli/assets/scripts/
|
||||||
|
cp -r src/ui-ux-pro-max/templates/* cli/assets/templates/
|
||||||
|
|
||||||
|
# 5. Build and test CLI
|
||||||
|
cd cli && bun run build
|
||||||
|
node dist/index.js init --ai claude --offline # Test in a temp folder
|
||||||
|
|
||||||
|
# 6. Create PR (never push directly to main)
|
||||||
|
git checkout -b feat/your-feature
|
||||||
|
git commit -m "feat: description"
|
||||||
|
git push -u origin feat/your-feature
|
||||||
|
gh pr create
|
||||||
|
```
|
||||||
|
|
||||||
|
See [CLAUDE.md](CLAUDE.md) for detailed development guidelines.
|
||||||
|
|
||||||
## Star History
|
## Star History
|
||||||
|
|
||||||
[](https://star-history.com/#nextlevelbuilder/ui-ux-pro-max-skill&Date)
|
[](https://star-history.com/#nextlevelbuilder/ui-ux-pro-max-skill&Date)
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
{
|
{
|
||||||
"platform": "copilot",
|
"platform": "copilot",
|
||||||
"displayName": "GitHub Copilot",
|
"displayName": "GitHub Copilot",
|
||||||
"installType": "reference",
|
"installType": "full",
|
||||||
"folderStructure": {
|
"folderStructure": {
|
||||||
"root": ".github",
|
"root": ".github",
|
||||||
"skillPath": "prompts",
|
"skillPath": "prompts/ui-ux-pro-max",
|
||||||
"filename": "ui-ux-pro-max.prompt.md"
|
"filename": "PROMPT.md"
|
||||||
},
|
},
|
||||||
"scriptPath": ".shared/ui-ux-pro-max/scripts/search.py",
|
"scriptPath": "prompts/ui-ux-pro-max/scripts/search.py",
|
||||||
"frontmatter": null,
|
"frontmatter": null,
|
||||||
"sections": {
|
"sections": {
|
||||||
"quickReference": false
|
"quickReference": false
|
||||||
|
|||||||
@@ -1,18 +1,18 @@
|
|||||||
{
|
{
|
||||||
"platform": "cursor",
|
"platform": "cursor",
|
||||||
"displayName": "Cursor",
|
"displayName": "Cursor",
|
||||||
"installType": "reference",
|
"installType": "full",
|
||||||
"folderStructure": {
|
"folderStructure": {
|
||||||
"root": ".cursor",
|
"root": ".cursor",
|
||||||
"skillPath": "commands",
|
"skillPath": "skills/ui-ux-pro-max",
|
||||||
"filename": "ui-ux-pro-max.md"
|
"filename": "SKILL.md"
|
||||||
},
|
},
|
||||||
"scriptPath": ".shared/ui-ux-pro-max/scripts/search.py",
|
"scriptPath": "skills/ui-ux-pro-max/scripts/search.py",
|
||||||
"frontmatter": null,
|
"frontmatter": null,
|
||||||
"sections": {
|
"sections": {
|
||||||
"quickReference": false
|
"quickReference": false
|
||||||
},
|
},
|
||||||
"title": "ui-ux-pro-max",
|
"title": "ui-ux-pro-max",
|
||||||
"description": "Comprehensive design guide for web and mobile applications. Contains 67 styles, 96 color palettes, 57 font pairings, 99 UX guidelines, and 25 chart types across 13 technology stacks. Searchable database with priority-based recommendations.",
|
"description": "Comprehensive design guide for web and mobile applications. Contains 67 styles, 96 color palettes, 57 font pairings, 99 UX guidelines, and 25 chart types across 13 technology stacks. Searchable database with priority-based recommendations.",
|
||||||
"skillOrWorkflow": "Workflow"
|
"skillOrWorkflow": "Skill"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
{
|
{
|
||||||
"platform": "kiro",
|
"platform": "kiro",
|
||||||
"displayName": "Kiro",
|
"displayName": "Kiro",
|
||||||
"installType": "reference",
|
"installType": "full",
|
||||||
"folderStructure": {
|
"folderStructure": {
|
||||||
"root": ".kiro",
|
"root": ".kiro",
|
||||||
"skillPath": "steering",
|
"skillPath": "steering/ui-ux-pro-max",
|
||||||
"filename": "ui-ux-pro-max.md"
|
"filename": "SKILL.md"
|
||||||
},
|
},
|
||||||
"scriptPath": ".shared/ui-ux-pro-max/scripts/search.py",
|
"scriptPath": "steering/ui-ux-pro-max/scripts/search.py",
|
||||||
"frontmatter": null,
|
"frontmatter": null,
|
||||||
"sections": {
|
"sections": {
|
||||||
"quickReference": false
|
"quickReference": false
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
{
|
{
|
||||||
"platform": "qoder",
|
"platform": "qoder",
|
||||||
"displayName": "Qoder",
|
"displayName": "Qoder",
|
||||||
"installType": "reference",
|
"installType": "full",
|
||||||
"folderStructure": {
|
"folderStructure": {
|
||||||
"root": ".qoder",
|
"root": ".qoder",
|
||||||
"skillPath": "skills/ui-ux-pro-max",
|
"skillPath": "skills/ui-ux-pro-max",
|
||||||
"filename": "SKILL.md"
|
"filename": "SKILL.md"
|
||||||
},
|
},
|
||||||
"scriptPath": ".shared/ui-ux-pro-max/scripts/search.py",
|
"scriptPath": "skills/ui-ux-pro-max/scripts/search.py",
|
||||||
"frontmatter": {
|
"frontmatter": {
|
||||||
"name": "ui-ux-pro-max",
|
"name": "ui-ux-pro-max",
|
||||||
"description": "UI/UX design intelligence with searchable database"
|
"description": "UI/UX design intelligence with searchable database"
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
{
|
{
|
||||||
"platform": "roocode",
|
"platform": "roocode",
|
||||||
"displayName": "Roo Code",
|
"displayName": "Roo Code",
|
||||||
"installType": "reference",
|
"installType": "full",
|
||||||
"folderStructure": {
|
"folderStructure": {
|
||||||
"root": ".roo",
|
"root": ".roo",
|
||||||
"skillPath": "commands",
|
"skillPath": "skills/ui-ux-pro-max",
|
||||||
"filename": "ui-ux-pro-max.md"
|
"filename": "SKILL.md"
|
||||||
},
|
},
|
||||||
"scriptPath": ".shared/ui-ux-pro-max/scripts/search.py",
|
"scriptPath": "skills/ui-ux-pro-max/scripts/search.py",
|
||||||
"frontmatter": null,
|
"frontmatter": null,
|
||||||
"sections": {
|
"sections": {
|
||||||
"quickReference": false
|
"quickReference": false
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
{
|
{
|
||||||
"platform": "windsurf",
|
"platform": "windsurf",
|
||||||
"displayName": "Windsurf",
|
"displayName": "Windsurf",
|
||||||
"installType": "reference",
|
"installType": "full",
|
||||||
"folderStructure": {
|
"folderStructure": {
|
||||||
"root": ".windsurf",
|
"root": ".windsurf",
|
||||||
"skillPath": "skills",
|
"skillPath": "skills/ui-ux-pro-max",
|
||||||
"filename": "ui-ux-pro-max.md"
|
"filename": "SKILL.md"
|
||||||
},
|
},
|
||||||
"scriptPath": ".shared/ui-ux-pro-max/scripts/search.py",
|
"scriptPath": "skills/ui-ux-pro-max/scripts/search.py",
|
||||||
"frontmatter": null,
|
"frontmatter": null,
|
||||||
"sections": {
|
"sections": {
|
||||||
"quickReference": false
|
"quickReference": false
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "uipro-cli",
|
"name": "uipro-cli",
|
||||||
"version": "2.2.1",
|
"version": "2.2.2",
|
||||||
"description": "CLI to install UI/UX Pro Max skill for AI coding assistants",
|
"description": "CLI to install UI/UX Pro Max skill for AI coding assistants",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"bin": {
|
"bin": {
|
||||||
|
|||||||
@@ -69,23 +69,23 @@ export function getAITypeDescription(aiType: AIType): string {
|
|||||||
case 'claude':
|
case 'claude':
|
||||||
return 'Claude Code (.claude/skills/)';
|
return 'Claude Code (.claude/skills/)';
|
||||||
case 'cursor':
|
case 'cursor':
|
||||||
return 'Cursor (.cursor/commands/ + .shared/)';
|
return 'Cursor (.cursor/skills/)';
|
||||||
case 'windsurf':
|
case 'windsurf':
|
||||||
return 'Windsurf (.windsurf/skills/ + .shared/)';
|
return 'Windsurf (.windsurf/skills/)';
|
||||||
case 'antigravity':
|
case 'antigravity':
|
||||||
return 'Antigravity (.agent/skills/)';
|
return 'Antigravity (.agent/skills/)';
|
||||||
case 'copilot':
|
case 'copilot':
|
||||||
return 'GitHub Copilot (.github/prompts/ + .shared/)';
|
return 'GitHub Copilot (.github/prompts/)';
|
||||||
case 'kiro':
|
case 'kiro':
|
||||||
return 'Kiro (.kiro/steering/ + .shared/)';
|
return 'Kiro (.kiro/steering/)';
|
||||||
case 'codex':
|
case 'codex':
|
||||||
return 'Codex (.codex/skills/)';
|
return 'Codex (.codex/skills/)';
|
||||||
case 'roocode':
|
case 'roocode':
|
||||||
return 'RooCode (.roo/commands/ + .shared/)';
|
return 'RooCode (.roo/skills/)';
|
||||||
case 'qoder':
|
case 'qoder':
|
||||||
return 'Qoder (.qoder/rules/ + .shared/)';
|
return 'Qoder (.qoder/skills/)';
|
||||||
case 'gemini':
|
case 'gemini':
|
||||||
return 'Gemini CLI (.gemini/skills/ + .shared/)';
|
return 'Gemini CLI (.gemini/skills/)';
|
||||||
case 'trae':
|
case 'trae':
|
||||||
return 'Trae (.trae/skills/)';
|
return 'Trae (.trae/skills/)';
|
||||||
case 'opencode':
|
case 'opencode':
|
||||||
|
|||||||
@@ -164,24 +164,9 @@ async function copyDataAndScripts(targetSkillDir: string): Promise<void> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Ensure .shared folder exists with data and scripts
|
|
||||||
*/
|
|
||||||
async function ensureSharedExists(targetDir: string): Promise<boolean> {
|
|
||||||
const sharedDir = join(targetDir, '.shared', 'ui-ux-pro-max');
|
|
||||||
|
|
||||||
// Check if already exists
|
|
||||||
if (await exists(sharedDir)) {
|
|
||||||
return false; // Already exists, didn't create
|
|
||||||
}
|
|
||||||
|
|
||||||
await mkdir(sharedDir, { recursive: true });
|
|
||||||
await copyDataAndScripts(sharedDir);
|
|
||||||
return true; // Created new
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Generate platform files for a specific AI type
|
* Generate platform files for a specific AI type
|
||||||
|
* All platforms use self-contained installation with data and scripts
|
||||||
*/
|
*/
|
||||||
export async function generatePlatformFiles(
|
export async function generatePlatformFiles(
|
||||||
targetDir: string,
|
targetDir: string,
|
||||||
@@ -206,17 +191,8 @@ export async function generatePlatformFiles(
|
|||||||
await writeFile(skillFilePath, skillContent, 'utf-8');
|
await writeFile(skillFilePath, skillContent, 'utf-8');
|
||||||
createdFolders.push(config.folderStructure.root);
|
createdFolders.push(config.folderStructure.root);
|
||||||
|
|
||||||
// Handle data/scripts based on install type
|
// Copy data and scripts into the skill directory (self-contained)
|
||||||
if (config.installType === 'full') {
|
await copyDataAndScripts(skillDir);
|
||||||
// Full install: copy data and scripts into the skill directory
|
|
||||||
await copyDataAndScripts(skillDir);
|
|
||||||
} else {
|
|
||||||
// Reference install: ensure .shared exists
|
|
||||||
const createdShared = await ensureSharedExists(targetDir);
|
|
||||||
if (createdShared) {
|
|
||||||
createdFolders.push('.shared');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return createdFolders;
|
return createdFolders;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
{
|
{
|
||||||
"platform": "copilot",
|
"platform": "copilot",
|
||||||
"displayName": "GitHub Copilot",
|
"displayName": "GitHub Copilot",
|
||||||
"installType": "reference",
|
"installType": "full",
|
||||||
"folderStructure": {
|
"folderStructure": {
|
||||||
"root": ".github",
|
"root": ".github",
|
||||||
"skillPath": "prompts",
|
"skillPath": "prompts/ui-ux-pro-max",
|
||||||
"filename": "ui-ux-pro-max.prompt.md"
|
"filename": "PROMPT.md"
|
||||||
},
|
},
|
||||||
"scriptPath": ".shared/ui-ux-pro-max/scripts/search.py",
|
"scriptPath": "prompts/ui-ux-pro-max/scripts/search.py",
|
||||||
"frontmatter": null,
|
"frontmatter": null,
|
||||||
"sections": {
|
"sections": {
|
||||||
"quickReference": false
|
"quickReference": false
|
||||||
|
|||||||
@@ -1,18 +1,18 @@
|
|||||||
{
|
{
|
||||||
"platform": "cursor",
|
"platform": "cursor",
|
||||||
"displayName": "Cursor",
|
"displayName": "Cursor",
|
||||||
"installType": "reference",
|
"installType": "full",
|
||||||
"folderStructure": {
|
"folderStructure": {
|
||||||
"root": ".cursor",
|
"root": ".cursor",
|
||||||
"skillPath": "commands",
|
"skillPath": "skills/ui-ux-pro-max",
|
||||||
"filename": "ui-ux-pro-max.md"
|
"filename": "SKILL.md"
|
||||||
},
|
},
|
||||||
"scriptPath": ".shared/ui-ux-pro-max/scripts/search.py",
|
"scriptPath": "skills/ui-ux-pro-max/scripts/search.py",
|
||||||
"frontmatter": null,
|
"frontmatter": null,
|
||||||
"sections": {
|
"sections": {
|
||||||
"quickReference": false
|
"quickReference": false
|
||||||
},
|
},
|
||||||
"title": "ui-ux-pro-max",
|
"title": "ui-ux-pro-max",
|
||||||
"description": "Comprehensive design guide for web and mobile applications. Contains 67 styles, 96 color palettes, 57 font pairings, 99 UX guidelines, and 25 chart types across 13 technology stacks. Searchable database with priority-based recommendations.",
|
"description": "Comprehensive design guide for web and mobile applications. Contains 67 styles, 96 color palettes, 57 font pairings, 99 UX guidelines, and 25 chart types across 13 technology stacks. Searchable database with priority-based recommendations.",
|
||||||
"skillOrWorkflow": "Workflow"
|
"skillOrWorkflow": "Skill"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
{
|
{
|
||||||
"platform": "kiro",
|
"platform": "kiro",
|
||||||
"displayName": "Kiro",
|
"displayName": "Kiro",
|
||||||
"installType": "reference",
|
"installType": "full",
|
||||||
"folderStructure": {
|
"folderStructure": {
|
||||||
"root": ".kiro",
|
"root": ".kiro",
|
||||||
"skillPath": "steering",
|
"skillPath": "steering/ui-ux-pro-max",
|
||||||
"filename": "ui-ux-pro-max.md"
|
"filename": "SKILL.md"
|
||||||
},
|
},
|
||||||
"scriptPath": ".shared/ui-ux-pro-max/scripts/search.py",
|
"scriptPath": "steering/ui-ux-pro-max/scripts/search.py",
|
||||||
"frontmatter": null,
|
"frontmatter": null,
|
||||||
"sections": {
|
"sections": {
|
||||||
"quickReference": false
|
"quickReference": false
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
{
|
{
|
||||||
"platform": "qoder",
|
"platform": "qoder",
|
||||||
"displayName": "Qoder",
|
"displayName": "Qoder",
|
||||||
"installType": "reference",
|
"installType": "full",
|
||||||
"folderStructure": {
|
"folderStructure": {
|
||||||
"root": ".qoder",
|
"root": ".qoder",
|
||||||
"skillPath": "skills/ui-ux-pro-max",
|
"skillPath": "skills/ui-ux-pro-max",
|
||||||
"filename": "SKILL.md"
|
"filename": "SKILL.md"
|
||||||
},
|
},
|
||||||
"scriptPath": ".shared/ui-ux-pro-max/scripts/search.py",
|
"scriptPath": "skills/ui-ux-pro-max/scripts/search.py",
|
||||||
"frontmatter": {
|
"frontmatter": {
|
||||||
"name": "ui-ux-pro-max",
|
"name": "ui-ux-pro-max",
|
||||||
"description": "UI/UX design intelligence with searchable database"
|
"description": "UI/UX design intelligence with searchable database"
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
{
|
{
|
||||||
"platform": "roocode",
|
"platform": "roocode",
|
||||||
"displayName": "Roo Code",
|
"displayName": "Roo Code",
|
||||||
"installType": "reference",
|
"installType": "full",
|
||||||
"folderStructure": {
|
"folderStructure": {
|
||||||
"root": ".roo",
|
"root": ".roo",
|
||||||
"skillPath": "commands",
|
"skillPath": "skills/ui-ux-pro-max",
|
||||||
"filename": "ui-ux-pro-max.md"
|
"filename": "SKILL.md"
|
||||||
},
|
},
|
||||||
"scriptPath": ".shared/ui-ux-pro-max/scripts/search.py",
|
"scriptPath": "skills/ui-ux-pro-max/scripts/search.py",
|
||||||
"frontmatter": null,
|
"frontmatter": null,
|
||||||
"sections": {
|
"sections": {
|
||||||
"quickReference": false
|
"quickReference": false
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
{
|
{
|
||||||
"platform": "windsurf",
|
"platform": "windsurf",
|
||||||
"displayName": "Windsurf",
|
"displayName": "Windsurf",
|
||||||
"installType": "reference",
|
"installType": "full",
|
||||||
"folderStructure": {
|
"folderStructure": {
|
||||||
"root": ".windsurf",
|
"root": ".windsurf",
|
||||||
"skillPath": "skills",
|
"skillPath": "skills/ui-ux-pro-max",
|
||||||
"filename": "ui-ux-pro-max.md"
|
"filename": "SKILL.md"
|
||||||
},
|
},
|
||||||
"scriptPath": ".shared/ui-ux-pro-max/scripts/search.py",
|
"scriptPath": "skills/ui-ux-pro-max/scripts/search.py",
|
||||||
"frontmatter": null,
|
"frontmatter": null,
|
||||||
"sections": {
|
"sections": {
|
||||||
"quickReference": false
|
"quickReference": false
|
||||||
|
|||||||
Reference in New Issue
Block a user