feat: reorganize codebase with single source of truth + merge prompts into styles (#116)

BREAKING CHANGES:
- Moved canonical data/scripts to src/ui-ux-pro-max/
- Removed duplicate folders (.codex/, .gemini/, .trae/, .codebuddy/, .continue/, skills/, .qoder/)
- CLI now uses template system instead of copying pre-built folders

New features:
- Merged prompts.csv into styles.csv with 4 new columns:
  - AI Prompt Keywords
  - CSS/Technical Keywords
  - Implementation Checklist
  - Design System Variables
- All 67 styles now have complete prompt data
- Added Astro stack (53 guidelines)
- Added 10 new 2025 UI trend styles

CLI changes:
- New template rendering system (cli/src/utils/template.ts)
- Reduced cli/assets from ~34MB to ~564KB
- Assets now contain only: data/, scripts/, templates/

File structure:
- src/ui-ux-pro-max/ - Single source of truth
- .claude/skills/ - Symlinks to src/ for development
- .shared/ - Symlink to src/ui-ux-pro-max/

Bumped CLI version: 2.1.3 → 2.2.0

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Viet Tran
2026-01-22 22:05:41 +07:00
committed by GitHub
parent 89dd73abc9
commit b2a05eceeb
454 changed files with 1722 additions and 41812 deletions

View File

@@ -49,6 +49,9 @@ export function detectAIType(cwd: string = process.cwd()): DetectionResult {
if (existsSync(join(cwd, '.continue'))) {
detected.push('continue');
}
if (existsSync(join(cwd, '.codebuddy'))) {
detected.push('codebuddy');
}
// Suggest based on what's detected
let suggested: AIType | null = null;
@@ -70,7 +73,7 @@ export function getAITypeDescription(aiType: AIType): string {
case 'windsurf':
return 'Windsurf (.windsurf/workflows/ + .shared/)';
case 'antigravity':
return 'Antigravity (.agent/workflows/ + .shared/)';
return 'Antigravity (.agent/skills/)';
case 'copilot':
return 'GitHub Copilot (.github/prompts/ + .shared/)';
case 'kiro':
@@ -84,11 +87,13 @@ export function getAITypeDescription(aiType: AIType): string {
case 'gemini':
return 'Gemini CLI (.gemini/skills/ + .shared/)';
case 'trae':
return 'Trae (.trae/skills/ + .shared/)';
return 'Trae (.trae/skills/)';
case 'opencode':
return 'OpenCode (.opencode/skills/ + .shared/)';
return 'OpenCode (.opencode/skills/)';
case 'continue':
return 'Continue (.continue/skills/)';
case 'codebuddy':
return 'CodeBuddy (.codebuddy/skills/)';
case 'all':
return 'All AI assistants';
}