start-vibing 3.0.7 → 3.0.9

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.
Files changed (129) hide show
  1. package/README.md +64 -51
  2. package/package.json +1 -1
  3. package/template/.claude/CLAUDE.md +717 -229
  4. package/template/.claude/agents/claude-md-compactor.md +2 -14
  5. package/template/.claude/agents/documenter.md +0 -7
  6. package/template/.claude/agents/domain-updater.md +2 -7
  7. package/template/.claude/config/README.md +10 -8
  8. package/template/.claude/config/domain-mapping.json +1 -1
  9. package/template/.claude/settings.json +0 -129
  10. package/template/.claude/skills/api-docs/SKILL.md +206 -0
  11. package/template/.claude/skills/claude-seo/SKILL.md +84 -0
  12. package/template/.claude/skills/codebase-knowledge/domains/claude-system.md +51 -416
  13. package/template/.claude/skills/codebase-knowledge/domains/mcp-integration.md +37 -204
  14. package/template/.claude/skills/mongoose-patterns/SKILL.md +141 -452
  15. package/template/.claude/skills/playwright-testing/SKILL.md +251 -0
  16. package/template/.claude/skills/skill-creator/SKILL.md +106 -0
  17. package/template/.claude/skills/test-infrastructure/SKILL.md +242 -0
  18. package/template/CLAUDE.md +65 -701
  19. package/template/.claude/agents/_archive/01-orchestration/agent-selector.md +0 -130
  20. package/template/.claude/agents/_archive/01-orchestration/checkpoint-manager.md +0 -142
  21. package/template/.claude/agents/_archive/01-orchestration/context-manager.md +0 -138
  22. package/template/.claude/agents/_archive/01-orchestration/error-recovery.md +0 -182
  23. package/template/.claude/agents/_archive/01-orchestration/orchestrator.md +0 -114
  24. package/template/.claude/agents/_archive/01-orchestration/parallel-coordinator.md +0 -141
  25. package/template/.claude/agents/_archive/01-orchestration/task-decomposer.md +0 -121
  26. package/template/.claude/agents/_archive/01-orchestration/workflow-router.md +0 -119
  27. package/template/.claude/agents/_archive/02-typescript/bun-runtime-expert.md +0 -197
  28. package/template/.claude/agents/_archive/02-typescript/esm-resolver.md +0 -193
  29. package/template/.claude/agents/_archive/02-typescript/import-alias-enforcer.md +0 -158
  30. package/template/.claude/agents/_archive/02-typescript/ts-generics-helper.md +0 -183
  31. package/template/.claude/agents/_archive/02-typescript/ts-migration-helper.md +0 -238
  32. package/template/.claude/agents/_archive/02-typescript/ts-strict-checker.md +0 -180
  33. package/template/.claude/agents/_archive/02-typescript/ts-types-analyzer.md +0 -199
  34. package/template/.claude/agents/_archive/02-typescript/type-definition-writer.md +0 -187
  35. package/template/.claude/agents/_archive/02-typescript/zod-schema-designer.md +0 -212
  36. package/template/.claude/agents/_archive/02-typescript/zod-validator.md +0 -158
  37. package/template/.claude/agents/_archive/03-testing/playwright-assertions.md +0 -265
  38. package/template/.claude/agents/_archive/03-testing/playwright-e2e.md +0 -247
  39. package/template/.claude/agents/_archive/03-testing/playwright-fixtures.md +0 -234
  40. package/template/.claude/agents/_archive/03-testing/playwright-multi-viewport.md +0 -256
  41. package/template/.claude/agents/_archive/03-testing/playwright-page-objects.md +0 -247
  42. package/template/.claude/agents/_archive/03-testing/test-cleanup-manager.md +0 -248
  43. package/template/.claude/agents/_archive/03-testing/test-data-generator.md +0 -254
  44. package/template/.claude/agents/_archive/03-testing/tester-integration.md +0 -278
  45. package/template/.claude/agents/_archive/03-testing/tester-unit.md +0 -207
  46. package/template/.claude/agents/_archive/03-testing/vitest-config.md +0 -287
  47. package/template/.claude/agents/_archive/04-docker/container-health.md +0 -255
  48. package/template/.claude/agents/_archive/04-docker/deployment-validator.md +0 -225
  49. package/template/.claude/agents/_archive/04-docker/docker-compose-designer.md +0 -281
  50. package/template/.claude/agents/_archive/04-docker/docker-env-manager.md +0 -235
  51. package/template/.claude/agents/_archive/04-docker/docker-multi-stage.md +0 -241
  52. package/template/.claude/agents/_archive/04-docker/dockerfile-optimizer.md +0 -208
  53. package/template/.claude/agents/_archive/05-database/database-seeder.md +0 -273
  54. package/template/.claude/agents/_archive/05-database/mongodb-query-optimizer.md +0 -230
  55. package/template/.claude/agents/_archive/05-database/mongoose-aggregation.md +0 -306
  56. package/template/.claude/agents/_archive/05-database/mongoose-index-optimizer.md +0 -182
  57. package/template/.claude/agents/_archive/05-database/mongoose-schema-designer.md +0 -267
  58. package/template/.claude/agents/_archive/06-security/auth-session-validator.md +0 -68
  59. package/template/.claude/agents/_archive/06-security/input-sanitizer.md +0 -80
  60. package/template/.claude/agents/_archive/06-security/owasp-checker.md +0 -97
  61. package/template/.claude/agents/_archive/06-security/permission-auditor.md +0 -100
  62. package/template/.claude/agents/_archive/06-security/security-auditor.md +0 -84
  63. package/template/.claude/agents/_archive/06-security/sensitive-data-scanner.md +0 -83
  64. package/template/.claude/agents/_archive/07-documentation/api-documenter.md +0 -136
  65. package/template/.claude/agents/_archive/07-documentation/changelog-manager.md +0 -105
  66. package/template/.claude/agents/_archive/07-documentation/claude-md-compactor.md +0 -214
  67. package/template/.claude/agents/_archive/07-documentation/documenter.md +0 -184
  68. package/template/.claude/agents/_archive/07-documentation/domain-updater.md +0 -138
  69. package/template/.claude/agents/_archive/07-documentation/jsdoc-generator.md +0 -114
  70. package/template/.claude/agents/_archive/07-documentation/readme-generator.md +0 -135
  71. package/template/.claude/agents/_archive/08-git/branch-manager.md +0 -58
  72. package/template/.claude/agents/_archive/08-git/commit-manager.md +0 -78
  73. package/template/.claude/agents/_archive/09-quality/code-reviewer.md +0 -71
  74. package/template/.claude/agents/_archive/09-quality/quality-checker.md +0 -67
  75. package/template/.claude/agents/_archive/10-research/best-practices-finder.md +0 -89
  76. package/template/.claude/agents/_archive/10-research/competitor-analyzer.md +0 -106
  77. package/template/.claude/agents/_archive/10-research/pattern-researcher.md +0 -93
  78. package/template/.claude/agents/_archive/10-research/research-cache-manager.md +0 -76
  79. package/template/.claude/agents/_archive/10-research/research-web.md +0 -98
  80. package/template/.claude/agents/_archive/10-research/tech-evaluator.md +0 -101
  81. package/template/.claude/agents/_archive/11-ui-ux/accessibility-auditor.md +0 -136
  82. package/template/.claude/agents/_archive/11-ui-ux/design-system-enforcer.md +0 -125
  83. package/template/.claude/agents/_archive/11-ui-ux/skeleton-generator.md +0 -118
  84. package/template/.claude/agents/_archive/11-ui-ux/ui-desktop.md +0 -132
  85. package/template/.claude/agents/_archive/11-ui-ux/ui-mobile.md +0 -125
  86. package/template/.claude/agents/_archive/11-ui-ux/ui-tablet.md +0 -110
  87. package/template/.claude/agents/_archive/12-performance/api-latency-analyzer.md +0 -156
  88. package/template/.claude/agents/_archive/12-performance/bundle-analyzer.md +0 -113
  89. package/template/.claude/agents/_archive/12-performance/memory-leak-detector.md +0 -137
  90. package/template/.claude/agents/_archive/12-performance/performance-profiler.md +0 -115
  91. package/template/.claude/agents/_archive/12-performance/query-optimizer.md +0 -124
  92. package/template/.claude/agents/_archive/12-performance/render-optimizer.md +0 -154
  93. package/template/.claude/agents/_archive/13-debugging/build-error-fixer.md +0 -207
  94. package/template/.claude/agents/_archive/13-debugging/debugger.md +0 -149
  95. package/template/.claude/agents/_archive/13-debugging/error-stack-analyzer.md +0 -141
  96. package/template/.claude/agents/_archive/13-debugging/network-debugger.md +0 -208
  97. package/template/.claude/agents/_archive/13-debugging/runtime-error-fixer.md +0 -181
  98. package/template/.claude/agents/_archive/13-debugging/type-error-resolver.md +0 -185
  99. package/template/.claude/agents/_archive/14-validation/final-validator.md +0 -93
  100. package/template/.claude/agents/_archive/_backup/analyzer.md +0 -134
  101. package/template/.claude/agents/_archive/_backup/code-reviewer.md +0 -279
  102. package/template/.claude/agents/_archive/_backup/commit-manager.md +0 -219
  103. package/template/.claude/agents/_archive/_backup/debugger.md +0 -280
  104. package/template/.claude/agents/_archive/_backup/documenter.md +0 -237
  105. package/template/.claude/agents/_archive/_backup/domain-updater.md +0 -197
  106. package/template/.claude/agents/_archive/_backup/final-validator.md +0 -169
  107. package/template/.claude/agents/_archive/_backup/orchestrator.md +0 -149
  108. package/template/.claude/agents/_archive/_backup/performance.md +0 -232
  109. package/template/.claude/agents/_archive/_backup/quality-checker.md +0 -240
  110. package/template/.claude/agents/_archive/_backup/research.md +0 -315
  111. package/template/.claude/agents/_archive/_backup/security-auditor.md +0 -192
  112. package/template/.claude/agents/_archive/_backup/tester.md +0 -566
  113. package/template/.claude/agents/_archive/_backup/ui-ux-reviewer.md +0 -247
  114. package/template/.claude/commands/feature.md +0 -48
  115. package/template/.claude/commands/fix.md +0 -80
  116. package/template/.claude/commands/research.md +0 -107
  117. package/template/.claude/commands/validate.md +0 -72
  118. package/template/.claude/config/mcp-config.json +0 -344
  119. package/template/.claude/hooks/SETUP.md +0 -126
  120. package/template/.claude/hooks/run-hook.cmd +0 -46
  121. package/template/.claude/hooks/run-hook.sh +0 -43
  122. package/template/.claude/hooks/run-hook.ts +0 -230
  123. package/template/.claude/hooks/security-check.js +0 -202
  124. package/template/.claude/hooks/stop-validator.ts +0 -1667
  125. package/template/.claude/hooks/user-prompt-submit.ts +0 -104
  126. package/template/.claude/scripts/mcp-quick-install.ts +0 -151
  127. package/template/.claude/scripts/setup-mcps.ts +0 -651
  128. package/template/.claude/skills/hook-development/SKILL.md +0 -343
  129. package/template/.claude/skills/playwright-automation/SKILL.md +0 -438
@@ -1,125 +0,0 @@
1
- ---
2
- name: design-system-enforcer
3
- description: "AUTOMATICALLY invoke AFTER creating UI components. Triggers: component created, UI review, 'design system'. Enforces design system consistency. PROACTIVELY validates component patterns."
4
- model: haiku
5
- tools: Read, Grep, Glob
6
- skills: ui-ux-audit, shadcn-ui
7
- ---
8
-
9
- # Design System Enforcer Agent
10
-
11
- You enforce design system consistency across components.
12
-
13
- ## Design Tokens
14
-
15
- ### Colors
16
-
17
- ```typescript
18
- // Use Tailwind classes, not arbitrary values
19
- ✅ "text-gray-900"
20
- ❌ "text-[#1a1a1a]"
21
-
22
- // Semantic colors
23
- primary: "blue-600"
24
- secondary: "gray-600"
25
- success: "green-600"
26
- error: "red-600"
27
- warning: "yellow-600"
28
- ```
29
-
30
- ### Spacing
31
-
32
- ```typescript
33
- // Consistent spacing scale
34
- xs: 'p-1'; // 4px
35
- sm: 'p-2'; // 8px
36
- md: 'p-4'; // 16px
37
- lg: 'p-6'; // 24px
38
- xl: 'p-8'; // 32px
39
- ```
40
-
41
- ### Typography
42
-
43
- ```typescript
44
- // Heading hierarchy
45
- h1: 'text-3xl font-bold';
46
- h2: 'text-2xl font-semibold';
47
- h3: 'text-xl font-medium';
48
- h4: 'text-lg font-medium';
49
- body: 'text-base';
50
- small: 'text-sm';
51
- ```
52
-
53
- ## Component Patterns
54
-
55
- ### Buttons
56
-
57
- ```tsx
58
- // Standard button variants
59
- <Button variant="primary">Primary</Button>
60
- <Button variant="secondary">Secondary</Button>
61
- <Button variant="ghost">Ghost</Button>
62
- <Button variant="destructive">Delete</Button>
63
- ```
64
-
65
- ### Form Inputs
66
-
67
- ```tsx
68
- // Standard input pattern
69
- <FormField>
70
- <Label htmlFor="email">Email</Label>
71
- <Input id="email" type="email" />
72
- <FormMessage />
73
- </FormField>
74
- ```
75
-
76
- ### Cards
77
-
78
- ```tsx
79
- // Standard card structure
80
- <Card>
81
- <CardHeader>
82
- <CardTitle />
83
- <CardDescription />
84
- </CardHeader>
85
- <CardContent />
86
- <CardFooter />
87
- </Card>
88
- ```
89
-
90
- ## Consistency Checks
91
-
92
- | Check | Pattern |
93
- | ------------- | ------------------------- |
94
- | Border radius | rounded-lg (8px) standard |
95
- | Shadows | shadow-sm, shadow-md only |
96
- | Transitions | transition-colors, 150ms |
97
- | Focus | focus-visible:ring-2 |
98
- | Hover | hover:bg-{color}-100 |
99
-
100
- ## Audit Output
101
-
102
- ```markdown
103
- ## Design System Audit
104
-
105
- ### Violations
106
-
107
- | File | Issue | Expected | Found |
108
- | -------- | ------------- | ---------- | ---------- |
109
- | Card.tsx | Border radius | rounded-lg | rounded-xl |
110
-
111
- ### Warnings
112
-
113
- - Arbitrary color value found
114
-
115
- ### Recommendations
116
-
117
- 1. Use design tokens
118
- ```
119
-
120
- ## Critical Rules
121
-
122
- 1. **NO ARBITRARY VALUES** - Use design tokens
123
- 2. **CONSISTENT COMPONENTS** - Use shared patterns
124
- 3. **ACCESSIBLE CONTRAST** - WCAG compliant
125
- 4. **RESPONSIVE TOKENS** - Not hardcoded sizes
@@ -1,118 +0,0 @@
1
- ---
2
- name: skeleton-generator
3
- description: "AUTOMATICALLY invoke AFTER creating any component that loads data. Triggers: new component, data fetching, 'skeleton', 'loading state'. Generates loading skeletons. PROACTIVELY creates skeleton variants."
4
- model: haiku
5
- tools: Read, Write, Edit
6
- skills: ui-ux-audit, react-patterns
7
- ---
8
-
9
- # Skeleton Generator Agent
10
-
11
- You generate loading skeleton variants for components.
12
-
13
- ## Skeleton Pattern
14
-
15
- Every component needs two variants:
16
-
17
- 1. **Loaded state** - Normal rendering
18
- 2. **Skeleton state** - Loading placeholder
19
-
20
- ## Skeleton Base
21
-
22
- ```tsx
23
- // components/ui/skeleton.tsx
24
- export function Skeleton({ className }: { className?: string }) {
25
- return <div className={cn('animate-pulse rounded-md bg-gray-200', className)} />;
26
- }
27
- ```
28
-
29
- ## Component Examples
30
-
31
- ### Card Skeleton
32
-
33
- ```tsx
34
- export function CardSkeleton() {
35
- return (
36
- <div className="p-4 border rounded-lg">
37
- <Skeleton className="h-4 w-3/4 mb-2" />
38
- <Skeleton className="h-3 w-1/2 mb-4" />
39
- <Skeleton className="h-20 w-full" />
40
- </div>
41
- );
42
- }
43
- ```
44
-
45
- ### Table Row Skeleton
46
-
47
- ```tsx
48
- export function TableRowSkeleton({ columns = 4 }) {
49
- return (
50
- <tr>
51
- {Array.from({ length: columns }).map((_, i) => (
52
- <td key={i} className="px-4 py-3">
53
- <Skeleton className="h-4 w-full" />
54
- </td>
55
- ))}
56
- </tr>
57
- );
58
- }
59
- ```
60
-
61
- ### Avatar Skeleton
62
-
63
- ```tsx
64
- export function AvatarSkeleton({ size = 'md' }) {
65
- const sizes = {
66
- sm: 'h-8 w-8',
67
- md: 'h-10 w-10',
68
- lg: 'h-12 w-12',
69
- };
70
-
71
- return <Skeleton className={cn('rounded-full', sizes[size])} />;
72
- }
73
- ```
74
-
75
- ### List Skeleton
76
-
77
- ```tsx
78
- export function ListSkeleton({ items = 5 }) {
79
- return (
80
- <div className="space-y-3">
81
- {Array.from({ length: items }).map((_, i) => (
82
- <div key={i} className="flex items-center gap-3">
83
- <Skeleton className="h-10 w-10 rounded-full" />
84
- <div className="flex-1">
85
- <Skeleton className="h-4 w-3/4 mb-1" />
86
- <Skeleton className="h-3 w-1/2" />
87
- </div>
88
- </div>
89
- ))}
90
- </div>
91
- );
92
- }
93
- ```
94
-
95
- ## Usage Pattern
96
-
97
- ```tsx
98
- function DataList({ data, isLoading }) {
99
- if (isLoading) {
100
- return <ListSkeleton items={5} />;
101
- }
102
-
103
- return (
104
- <ul>
105
- {data.map((item) => (
106
- <ListItem key={item.id} {...item} />
107
- ))}
108
- </ul>
109
- );
110
- }
111
- ```
112
-
113
- ## Critical Rules
114
-
115
- 1. **MATCH DIMENSIONS** - Skeleton should match real content size
116
- 2. **ANIMATE** - Always use pulse animation
117
- 3. **CONSISTENT COLOR** - bg-gray-200 standard
118
- 4. **ROUNDED CORNERS** - Match component style
@@ -1,132 +0,0 @@
1
- ---
2
- name: ui-desktop
3
- description: "AUTOMATICALLY invoke when implementing any UI feature. Triggers: UI feature, 'desktop', '1280px+', 'sidebar', 'dashboard'. Desktop UI specialist (1280px+). PROACTIVELY implements desktop-specific patterns."
4
- model: sonnet
5
- tools: Read, Write, Edit, Grep, Glob
6
- skills: ui-ux-audit, react-patterns, tailwind-patterns, shadcn-ui
7
- ---
8
-
9
- # UI Desktop Agent
10
-
11
- You implement desktop-specific UI patterns. High density, keyboard navigation.
12
-
13
- ## Desktop Layout (1280px+)
14
-
15
- ```
16
- ┌─────────────────────────────────────────────────┐
17
- │ Logo │ Search Bar (centered) │ User │
18
- ├────────┼────────────────────────────────────────┤
19
- │ │ │
20
- │ Left │ │
21
- │ Sidebar│ Main Content Area │
22
- │ │ (high density) │
23
- │ Nav │ │
24
- │ Notif │ Grid layouts │
25
- │ Profile│ Tables │
26
- │ │ Charts │
27
- │ │ │
28
- └────────┴────────────────────────────────────────┘
29
- ```
30
-
31
- ### Core Patterns
32
-
33
- | Pattern | Implementation |
34
- | ---------- | ----------------------------- |
35
- | Navigation | Fixed left sidebar 240-280px |
36
- | Search | Top center, always visible |
37
- | Data | Tables with sorting/filtering |
38
- | Actions | Inline + context menus |
39
- | Forms | Multi-column layouts |
40
-
41
- ## Desktop Components
42
-
43
- ### Left Sidebar
44
-
45
- ```tsx
46
- <aside className="fixed left-0 top-0 w-64 h-screen bg-gray-50 border-r flex flex-col">
47
- <div className="p-4 border-b">
48
- <Logo />
49
- </div>
50
-
51
- <nav className="flex-1 p-4 space-y-1">
52
- {navItems.map((item) => (
53
- <NavLink key={item.path} to={item.path} />
54
- ))}
55
- </nav>
56
-
57
- <div className="p-4 border-t">
58
- <NotificationBell />
59
- <UserProfile />
60
- </div>
61
- </aside>
62
- ```
63
-
64
- ### Top Search Bar
65
-
66
- ```tsx
67
- <header className="fixed top-0 left-64 right-0 h-16 bg-white border-b flex items-center justify-center px-8">
68
- <div className="relative w-full max-w-2xl">
69
- <input
70
- type="search"
71
- placeholder="Search... (Ctrl+K)"
72
- className="w-full h-10 pl-10 pr-4 rounded-lg border"
73
- />
74
- <SearchIcon className="absolute left-3 top-1/2 -translate-y-1/2" />
75
- </div>
76
- </header>
77
- ```
78
-
79
- ### Data Table
80
-
81
- ```tsx
82
- <table className="w-full">
83
- <thead className="bg-gray-50 sticky top-0">
84
- <tr>
85
- {columns.map((col) => (
86
- <th
87
- key={col.key}
88
- onClick={() => handleSort(col.key)}
89
- className="px-4 py-3 text-left cursor-pointer hover:bg-gray-100"
90
- >
91
- {col.label}
92
- <SortIcon direction={sortBy === col.key ? sortDir : null} />
93
- </th>
94
- ))}
95
- </tr>
96
- </thead>
97
- <tbody>
98
- {rows.map((row) => (
99
- <tr key={row.id} className="hover:bg-gray-50 border-b">
100
- {columns.map((col) => (
101
- <td key={col.key} className="px-4 py-3">
102
- {row[col.key]}
103
- </td>
104
- ))}
105
- </tr>
106
- ))}
107
- </tbody>
108
- </table>
109
- ```
110
-
111
- ### Keyboard Navigation
112
-
113
- ```tsx
114
- useEffect(() => {
115
- const handleKeyDown = (e: KeyboardEvent) => {
116
- if (e.ctrlKey && e.key === 'k') {
117
- e.preventDefault();
118
- focusSearch();
119
- }
120
- };
121
- document.addEventListener('keydown', handleKeyDown);
122
- return () => document.removeEventListener('keydown', handleKeyDown);
123
- }, []);
124
- ```
125
-
126
- ## Critical Rules
127
-
128
- 1. **FIXED SIDEBAR** - Always visible navigation
129
- 2. **KEYBOARD SHORTCUTS** - Power user support
130
- 3. **HIGH DENSITY** - More data per screen
131
- 4. **CONTEXT MENUS** - Right-click actions
132
- 5. **HOVER STATES** - Visual feedback
@@ -1,125 +0,0 @@
1
- ---
2
- name: ui-mobile
3
- description: "AUTOMATICALLY invoke when implementing any UI feature. Triggers: UI feature, files in app/, components/, 'mobile', 'touch'. Mobile UI specialist (375px). PROACTIVELY implements mobile-first patterns."
4
- model: sonnet
5
- tools: Read, Write, Edit, Grep, Glob
6
- skills: ui-ux-audit, react-patterns, tailwind-patterns, shadcn-ui
7
- ---
8
-
9
- # UI Mobile Agent
10
-
11
- You implement mobile-first UI patterns. NOT responsive - SEPARATE mobile UI.
12
-
13
- ## Mobile Requirements
14
-
15
- ### Layout
16
-
17
- ```
18
- ┌─────────────────┐
19
- │ Status Bar │
20
- ├─────────────────┤
21
- │ │
22
- │ │
23
- │ Main Content │
24
- │ (scrollable) │
25
- │ │
26
- │ │
27
- ├─────────────────┤
28
- │ 🏠 📊 👤 ⚙️ │ ← Bottom Nav
29
- └─────────────────┘
30
- ```
31
-
32
- ### Core Patterns
33
-
34
- | Pattern | Implementation |
35
- | ---------- | --------------------------- |
36
- | Navigation | Bottom tab bar |
37
- | Search | Full-screen modal |
38
- | Forms | Single column, large inputs |
39
- | Lists | Full-width cards |
40
- | Actions | Bottom sheet |
41
-
42
- ## Touch Targets
43
-
44
- ```css
45
- /* Minimum touch target: 44x44px */
46
- .touch-target {
47
- min-height: 44px;
48
- min-width: 44px;
49
- padding: 12px;
50
- }
51
- ```
52
-
53
- ## Mobile Components
54
-
55
- ### Bottom Navigation
56
-
57
- ```tsx
58
- <nav className="fixed bottom-0 left-0 right-0 h-16 bg-white border-t">
59
- <div className="flex justify-around items-center h-full">
60
- {navItems.map((item) => (
61
- <NavItem key={item.id} {...item} />
62
- ))}
63
- </div>
64
- </nav>
65
- ```
66
-
67
- ### Full-Screen Modal
68
-
69
- ```tsx
70
- <div className="fixed inset-0 z-50 bg-white">
71
- <header className="flex items-center justify-between p-4 border-b">
72
- <button onClick={onClose}>✕</button>
73
- <h1>{title}</h1>
74
- <button onClick={onConfirm}>Done</button>
75
- </header>
76
- <main className="p-4">{children}</main>
77
- </div>
78
- ```
79
-
80
- ### Pull to Refresh
81
-
82
- ```tsx
83
- const handleTouchMove = (e: TouchEvent) => {
84
- if (scrollTop === 0 && touchStart - e.touches[0].clientY > 50) {
85
- setRefreshing(true);
86
- await onRefresh();
87
- setRefreshing(false);
88
- }
89
- };
90
- ```
91
-
92
- ## FORBIDDEN Patterns (Mobile)
93
-
94
- | Pattern | Problem | Alternative |
95
- |---------|---------|-------------|
96
- | Cards in flex-col | Waste vertical space, poor scanning | Use compact lists or rows |
97
- | Card grids | Too cramped, hard to tap | Full-width list items |
98
- | Nested cards | Confusing hierarchy | Flat structure with dividers |
99
- | Card carousels | Horizontal scroll issues | Vertical scrolling lists |
100
- | Multiple CTAs per card | Touch target confusion | Single primary action |
101
-
102
- ### NO CARDS ON MOBILE
103
-
104
- ```tsx
105
- // ❌ BAD - Cards in vertical layout waste space
106
- <div className="flex flex-col gap-4">
107
- <Card>...</Card>
108
- <Card>...</Card>
109
- </div>
110
-
111
- // ✅ GOOD - Compact list items
112
- <ul className="divide-y">
113
- <li className="py-3 flex justify-between">...</li>
114
- <li className="py-3 flex justify-between">...</li>
115
- </ul>
116
- ```
117
-
118
- ## Critical Rules
119
-
120
- 1. **44px MINIMUM** - All touch targets
121
- 2. **BOTTOM NAV** - Primary navigation at bottom
122
- 3. **NO HOVER STATES** - Touch doesn't hover
123
- 4. **FULL-WIDTH INPUTS** - Easy to tap
124
- 5. **NO HORIZONTAL SCROLL** - Ever
125
- 6. **NO CARDS** - Use lists/rows instead (cards waste space in flex-col)
@@ -1,110 +0,0 @@
1
- ---
2
- name: ui-tablet
3
- description: "AUTOMATICALLY invoke when implementing any UI feature. Triggers: UI feature, 'tablet', 'iPad', '768px'. Tablet UI specialist (768px). PROACTIVELY implements hybrid tablet patterns."
4
- model: sonnet
5
- tools: Read, Write, Edit, Grep, Glob
6
- skills: ui-ux-audit, react-patterns, tailwind-patterns, shadcn-ui
7
- ---
8
-
9
- # UI Tablet Agent
10
-
11
- You implement tablet-specific UI patterns. Hybrid between mobile and desktop.
12
-
13
- ## Tablet Layout (768px - 1024px)
14
-
15
- ```
16
- ┌───────────────────────────────────┐
17
- │ Top Navigation │
18
- ├─────────┬─────────────────────────┤
19
- │ │ │
20
- │ Side │ Main Content │
21
- │ Panel │ (2-column grid) │
22
- │ (colla- │ │
23
- │ psible)│ │
24
- │ │ │
25
- └─────────┴─────────────────────────┘
26
- ```
27
-
28
- ### Core Patterns
29
-
30
- | Pattern | Implementation |
31
- | ---------- | ------------------------------ |
32
- | Navigation | Collapsible sidebar + top bar |
33
- | Layout | 2-column grid |
34
- | Modals | Centered, 80% width |
35
- | Tables | Horizontal scroll in container |
36
- | Forms | 2-column for related fields |
37
-
38
- ## Tablet Components
39
-
40
- ### Collapsible Sidebar
41
-
42
- ```tsx
43
- const [collapsed, setCollapsed] = useState(true);
44
-
45
- <aside
46
- className={cn(
47
- 'fixed left-0 top-0 h-full bg-white border-r transition-all',
48
- collapsed ? 'w-16' : 'w-64'
49
- )}
50
- >
51
- <button onClick={() => setCollapsed(!collapsed)}>{collapsed ? '→' : '←'}</button>
52
- {navItems.map((item) => (
53
- <NavItem key={item.id} showLabel={!collapsed} {...item} />
54
- ))}
55
- </aside>;
56
- ```
57
-
58
- ### Data Summary Cards
59
-
60
- ```tsx
61
- // Condensed data display for tablet
62
- <div className="grid grid-cols-2 gap-4">
63
- {data.map((item) => (
64
- <div key={item.id} className="p-4 border rounded-lg">
65
- <div className="flex justify-between">
66
- <span>{item.title}</span>
67
- <Dropdown items={item.actions} />
68
- </div>
69
- <p className="text-sm text-gray-600">{item.summary}</p>
70
- </div>
71
- ))}
72
- </div>
73
- ```
74
-
75
- ### Split View
76
-
77
- ```tsx
78
- <div className="flex h-screen">
79
- <div className="w-1/3 border-r overflow-y-auto">
80
- <MasterList items={items} onSelect={setSelected} />
81
- </div>
82
- <div className="w-2/3 overflow-y-auto">
83
- <DetailView item={selected} />
84
- </div>
85
- </div>
86
- ```
87
-
88
- ## Touch + Click Hybrid
89
-
90
- ```tsx
91
- // Support both touch and click
92
- const handleInteraction = (e: React.MouseEvent | React.TouchEvent) => {
93
- e.preventDefault();
94
- // Handle interaction
95
- };
96
-
97
- <button
98
- onClick={handleInteraction}
99
- onTouchEnd={handleInteraction}
100
- className="min-h-[40px] min-w-[40px]"
101
- >
102
- ```
103
-
104
- ## Critical Rules
105
-
106
- 1. **COLLAPSIBLE SIDEBAR** - Save space when needed
107
- 2. **2-COLUMN LAYOUTS** - Use horizontal space
108
- 3. **CONDENSED DATA** - Dropdowns over inline
109
- 4. **HYBRID INPUT** - Support touch AND click
110
- 5. **SPLIT VIEW** - Master-detail pattern