diff --git a/README.md b/README.md
old mode 100644
new mode 100755
index 256ff2a..e2b4129
--- a/README.md
+++ b/README.md
@@ -154,7 +154,7 @@ Each rule includes:
- **161 Color Palettes** - Industry-specific palettes aligned 1:1 with the 161 product types
- **57 Font Pairings** - Curated typography combinations with Google Fonts imports
- **25 Chart Types** - Recommendations for dashboards and analytics
-- **13 Tech Stacks** - React, Next.js, Astro, Vue, Nuxt.js, Nuxt UI, Svelte, SwiftUI, React Native, Flutter, HTML+Tailwind, shadcn/ui, Jetpack Compose
+- **15 Tech Stacks** - React, Next.js, Astro, Vue, Nuxt.js, Nuxt UI, Svelte, SwiftUI, React Native, Flutter, HTML+Tailwind, shadcn/ui, Jetpack Compose, Angular, Laravel
- **99 UX Guidelines** - Best practices, anti-patterns, and accessibility rules
- **161 Reasoning Rules** - Industry-specific design system generation (NEW in v2.0)
@@ -287,15 +287,28 @@ uipro init --ai opencode # OpenCode
uipro init --ai continue # Continue
uipro init --ai codebuddy # CodeBuddy
uipro init --ai droid # Droid (Factory)
+uipro init --ai kilocode # KiloCode
+uipro init --ai warp # Warp
+uipro init --ai augment # Augment
uipro init --ai all # All assistants
```
+### Global Install (Available for All Projects)
+
+```bash
+uipro init --ai claude --global # Install to ~/.claude/skills/
+uipro init --ai cursor --global # Install to ~/.cursor/skills/
+```
+
### Other CLI Commands
```bash
uipro versions # List available versions
uipro update # Update to latest version
uipro init --offline # Skip GitHub download, use bundled assets
+uipro uninstall # Remove skill (auto-detect platform)
+uipro uninstall --ai claude # Remove specific platform
+uipro uninstall --global # Remove from global install
```
## Prerequisites
@@ -320,7 +333,7 @@ winget install Python.Python.3.12
### Skill Mode (Auto-activate)
-**Supported:** Claude Code, Cursor, Windsurf, Antigravity, Codex CLI, Continue, Gemini CLI, OpenCode, Qoder, CodeBuddy, Droid (Factory)
+**Supported:** Claude Code, Cursor, Windsurf, Antigravity, Codex CLI, Continue, Gemini CLI, OpenCode, Qoder, CodeBuddy, Droid (Factory), KiloCode, Warp, Augment
The skill activates automatically when you request UI/UX work. Just chat naturally:
@@ -332,7 +345,7 @@ Build a landing page for my SaaS product
### Workflow Mode (Slash Command)
-**Supported:** Kiro, GitHub Copilot, Roo Code
+**Supported:** Kiro, GitHub Copilot, Roo Code, KiloCode
Use the slash command to invoke the skill:
@@ -371,6 +384,8 @@ The skill provides stack-specific guidelines for:
| **Web (HTML)** | HTML + Tailwind (default) |
| **React Ecosystem** | React, Next.js, shadcn/ui |
| **Vue Ecosystem** | Vue, Nuxt.js, Nuxt UI |
+| **Angular** | Angular |
+| **PHP** | Laravel (Blade, Livewire, Inertia.js) |
| **Other Web** | Svelte, Astro |
| **iOS** | SwiftUI |
| **Android** | Jetpack Compose |
diff --git a/cli/assets/data/stacks/angular.csv b/cli/assets/data/stacks/angular.csv
new file mode 100644
index 0000000..75cb670
--- /dev/null
+++ b/cli/assets/data/stacks/angular.csv
@@ -0,0 +1,51 @@
+No,Category,Guideline,Description,Do,Don't,Code Good,Code Bad,Severity,Docs URL
+1,Components,Use standalone components,Angular 17+ default; no NgModule needed,Standalone components for all new code,NgModule-based components for new projects,"@Component({ standalone: true imports: [CommonModule] })","@NgModule({ declarations: [MyComp] })",High,https://angular.dev/guide/components/importing
+2,Components,Use signals for state,Signals are Angular's reactive primitive for fine-grained reactivity,Signals for component state over class properties,Mutable class properties without signals,"count = signal(0); increment() { this.count.update(v => v + 1) }","count = 0; increment() { this.count++ }",High,https://angular.dev/guide/signals
+3,Components,Use @if/@for/@switch control flow,Built-in control flow syntax replaces *ngIf/*ngFor directives,@if and @for in templates,*ngIf and *ngFor structural directives,"@if (isLoggedIn) {
None
@endforelse,,High,https://laravel.com/docs/blade#blade-directives +7,Blade Templates,Escape output with {{ }},Use double curly braces for XSS-safe output,{{ }} for all user-supplied or dynamic text,{!! !!} for untrusted data,{{ $user->name }},{!! $user->name !!},High,https://laravel.com/docs/blade#displaying-data +8,Blade Templates,Use @vite for asset loading,Vite integration handles cache busting and HMR automatically,@vite(['resources/css/app.css' 'resources/js/app.js']),Manual script/link tags with hardcoded paths,@vite(['resources/css/app.css' 'resources/js/app.js']),,High,https://laravel.com/docs/vite +9,Livewire,Bind inputs with wire:model,Two-way data binding keeps component state in sync,wire:model for all form inputs managed by Livewire,Manual JavaScript listeners syncing to component,,,High,https://livewire.laravel.com/docs/properties +10,Livewire,Use wire:model.live for real-time validation,Validate on input rather than only on submit,wire:model.live + #[Validate] for instant feedback,Only validate on form submit, with #[Validate('email')], with validate() on submit only,Medium,https://livewire.laravel.com/docs/validation +11,Livewire,Use wire:click for actions,Bind UI events to component methods cleanly,wire:click for buttons and interactive elements,JavaScript fetch calls replicating Livewire actions,,,High,https://livewire.laravel.com/docs/actions +12,Livewire,Use lifecycle hooks appropriately,mount() for init; updated() for reactive side effects,mount() for initialization updatedFoo() for property changes,Heavy logic in render() or __construct(),public function mount(): void { $this->items = Item::all(); },public function render(): View { $this->items = Item::all(); },Medium,https://livewire.laravel.com/docs/lifecycle-hooks +13,Livewire,Use lazy loading for heavy components,Defer render of expensive components until visible,wire:init or lazy attribute on components,Load all Livewire components on page load,