feat: add ZCode platform support (#504)

Add ZCode as a first-class install target so the skill can be installed
with `uipro init --ai zcode` (workspace) or `uipro init --ai zcode --global`
(~/.zcode/skills/), and removed via `uipro uninstall` auto-detection.

- new platform config src/ui-ux-pro-max/templates/platforms/zcode.json
  (synced to cli/assets via sync:assets)
- register 'zcode' in AIType union, AI_TYPES, AI_FOLDERS, AI_TO_PLATFORM
- detect .zcode workspace directories and describe the platform in CLI prompts
- cover zcode in the dry-run and template-script-paths e2e specs
- document ZCode in README install/usage sections

Co-authored-by: Dmso <22094486+dmsobtl@users.noreply.github.com>
This commit is contained in:
Dmso
2026-09-26 17:00:18 +07:00
committed by GitHub
co-authored by Dmso
parent dcc40ff513
commit d62fe62f88
8 changed files with 69 additions and 4 deletions
+4 -2
View File
@@ -288,6 +288,7 @@ uipro init --ai kilocode # KiloCode
uipro init --ai warp # Warp
uipro init --ai augment # Augment
uipro init --ai codewhale # CodeWhale
uipro init --ai zcode # ZCode
uipro init --ai universal # Universal / Agent Standard (.agents/skills/)
uipro init --ai all # All assistants
```
@@ -299,6 +300,7 @@ The npm package is `ui-ux-pro-max-cli`; it still installs the `uipro` command. O
```bash
uipro init --ai claude --global # Install to ~/.claude/skills/
uipro init --ai cursor --global # Install to ~/.cursor/skills/
uipro init --ai zcode --global # Install to ~/.zcode/skills/
uipro init --ai universal --global # Install to ~/.agents/skills/
```
@@ -331,7 +333,7 @@ If it is missing, install it yourself from [python.org](https://www.python.org/d
### Skill Mode (Auto-activate)
**Supported:** Claude Code, Cursor, Windsurf, Antigravity, Codex CLI, Continue, Gemini CLI, OpenCode, Qoder, CodeBuddy, Droid (Factory), KiloCode, Warp, Augment, CodeWhale
**Supported:** Claude Code, Cursor, Windsurf, Antigravity, Codex CLI, Continue, Gemini CLI, OpenCode, Qoder, CodeBuddy, Droid (Factory), KiloCode, Warp, Augment, CodeWhale, ZCode
The skill activates automatically when you request UI/UX work. Just chat naturally:
@@ -396,7 +398,7 @@ Just mention your preferred stack in the prompt, or let it default to HTML + Tai
For direct access to the design system generator:
> Note: If you installed via Continue, replace `.claude/skills/` with `.continue/skills/` in the commands below. For Droid (Factory), use `.factory/skills/`.
> Note: If you installed via Continue, replace `.claude/skills/` with `.continue/skills/` in the commands below. For Droid (Factory), use `.factory/skills/`. For ZCode, use `.zcode/skills/`.
```bash
# Generate design system with ASCII output
+21
View File
@@ -0,0 +1,21 @@
{
"platform": "zcode",
"displayName": "ZCode",
"installType": "full",
"folderStructure": {
"root": ".zcode",
"skillPath": "skills/ui-ux-pro-max",
"filename": "SKILL.md"
},
"scriptPath": "skills/ui-ux-pro-max/scripts/search.py",
"frontmatter": {
"name": "ui-ux-pro-max",
"description": "UI/UX design intelligence for web, mobile, and desktop. This skill should be used when designing, building, reviewing, or fixing interfaces, including pages, components, design systems, accessibility, interaction, responsive layout, typography, color, charts, and stack-specific UI implementation. Searchable local data: 79 searchable styles (50 active), 192 product palettes and reasoning profiles, 74 font pairings, 119 UX guidelines, 105 icons, 17 GSAP presets, 25 chart types, and 22 stacks."
},
"sections": {
"quickReference": false
},
"title": "ui-ux-pro-max",
"description": "UI/UX design intelligence for web, mobile, and desktop. This skill should be used when designing, building, reviewing, or fixing interfaces, including pages, components, design systems, accessibility, interaction, responsive layout, typography, color, charts, and stack-specific UI implementation. Searchable local data: 79 searchable styles (50 active), 192 product palettes and reasoning profiles, 74 font pairings, 119 UX guidelines, 105 icons, 17 GSAP presets, 25 chart types, and 22 stacks.",
"skillOrWorkflow": "Skill"
}
+3 -2
View File
@@ -1,4 +1,4 @@
export type AIType = 'claude' | 'cursor' | 'windsurf' | 'antigravity' | 'copilot' | 'kiro' | 'roocode' | 'codex' | 'qoder' | 'gemini' | 'trae' | 'opencode' | 'continue' | 'codebuddy' | 'droid' | 'kilocode' | 'warp' | 'augment' | 'codewhale' | 'universal' | 'all';
export type AIType = 'claude' | 'cursor' | 'windsurf' | 'antigravity' | 'copilot' | 'kiro' | 'roocode' | 'codex' | 'qoder' | 'gemini' | 'trae' | 'opencode' | 'continue' | 'codebuddy' | 'droid' | 'kilocode' | 'warp' | 'augment' | 'codewhale' | 'zcode' | 'universal' | 'all';
export type ConcreteAIType = Exclude<AIType, 'all'>;
export type InstallType = 'full' | 'reference';
@@ -43,7 +43,7 @@ export interface PlatformConfig {
skillOrWorkflow: string;
}
export const AI_TYPES: AIType[] = ['claude', 'cursor', 'windsurf', 'antigravity', 'copilot', 'roocode', 'kiro', 'codex', 'qoder', 'gemini', 'trae', 'opencode', 'continue', 'codebuddy', 'droid', 'kilocode', 'warp', 'augment', 'codewhale', 'universal', 'all'];
export const AI_TYPES: AIType[] = ['claude', 'cursor', 'windsurf', 'antigravity', 'copilot', 'roocode', 'kiro', 'codex', 'qoder', 'gemini', 'trae', 'opencode', 'continue', 'codebuddy', 'droid', 'kilocode', 'warp', 'augment', 'codewhale', 'zcode', 'universal', 'all'];
// Legacy folder mapping for backward compatibility with ZIP-based installs.
// Note: .shared is included for platforms that used ZIP installs. Post-ZIP platforms
@@ -68,5 +68,6 @@ export const AI_FOLDERS: Record<ConcreteAIType, string[]> = {
warp: ['.warp', '.shared'],
augment: ['.augment', '.shared'],
codewhale: ['.codewhale', '.shared'],
zcode: ['.zcode', '.shared'],
universal: ['.agents', '.shared'],
};
+5
View File
@@ -71,6 +71,9 @@ export function detectAIType(cwd: string = process.cwd()): DetectionResult {
if (existsSync(join(cwd, '.codewhale'))) {
detected.push('codewhale');
}
if (existsSync(join(cwd, '.zcode'))) {
detected.push('zcode');
}
// Suggest based on what's detected
let suggested: AIType | null = null;
@@ -130,6 +133,8 @@ export function getAITypeDescription(aiType: AIType): string {
return 'Augment (.augment/skills/)';
case 'codewhale':
return 'CodeWhale (.codewhale/skills/)';
case 'zcode':
return 'ZCode (.zcode/skills/)';
case 'universal':
return 'Universal (.agents/skills/)';
case 'all':
+1
View File
@@ -54,6 +54,7 @@ const AI_TO_PLATFORM: Record<string, string> = {
warp: 'warp',
augment: 'augment',
codewhale: 'codewhale',
zcode: 'zcode',
universal: 'universal',
};
+13
View File
@@ -30,6 +30,19 @@ test('dry-run plan writes nothing to the target directory', async () => {
expect(await readdir(scratch)).toEqual(before);
});
test('dry-run plan supports the zcode platform layout', async () => {
const scratch = await mkdtemp(join(tmpdir(), 'uipro-dry-run-zcode-'));
const actions = await planPlatformInstallActions(scratch, 'zcode');
const joined = actions.join('\n');
expect(joined).toContain(
join(scratch, '.zcode', 'skills', 'ui-ux-pro-max', 'SKILL.md')
);
expect(joined).toContain('Would copy data + scripts:');
expect(joined).toContain('Would copy 6 sub-skills (');
});
test('dry-run plan for all platforms covers every unique layout', async () => {
const scratch = await mkdtemp(join(tmpdir(), 'uipro-dry-run-all-'));
@@ -7,6 +7,7 @@ const cases = [
['copilot', '.github/prompts/ui-ux-pro-max/scripts/search.py'],
['kiro', '.kiro/steering/ui-ux-pro-max/scripts/search.py'],
['droid', '.factory/skills/ui-ux-pro-max/scripts/search.py'],
['zcode', '.zcode/skills/ui-ux-pro-max/scripts/search.py'],
] as const;
const SEARCH_COMMAND_COUNT = 17;
@@ -0,0 +1,21 @@
{
"platform": "zcode",
"displayName": "ZCode",
"installType": "full",
"folderStructure": {
"root": ".zcode",
"skillPath": "skills/ui-ux-pro-max",
"filename": "SKILL.md"
},
"scriptPath": "skills/ui-ux-pro-max/scripts/search.py",
"frontmatter": {
"name": "ui-ux-pro-max",
"description": "UI/UX design intelligence for web, mobile, and desktop. This skill should be used when designing, building, reviewing, or fixing interfaces, including pages, components, design systems, accessibility, interaction, responsive layout, typography, color, charts, and stack-specific UI implementation. Searchable local data: 79 searchable styles (50 active), 192 product palettes and reasoning profiles, 74 font pairings, 119 UX guidelines, 105 icons, 17 GSAP presets, 25 chart types, and 22 stacks."
},
"sections": {
"quickReference": false
},
"title": "ui-ux-pro-max",
"description": "UI/UX design intelligence for web, mobile, and desktop. This skill should be used when designing, building, reviewing, or fixing interfaces, including pages, components, design systems, accessibility, interaction, responsive layout, typography, color, charts, and stack-specific UI implementation. Searchable local data: 79 searchable styles (50 active), 192 product palettes and reasoning profiles, 74 font pairings, 119 UX guidelines, 105 icons, 17 GSAP presets, 25 chart types, and 22 stacks.",
"skillOrWorkflow": "Skill"
}