@votruongdanh/ai-agent-skills 3.2.1 → 3.3.2
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.
- package/.kiro/skills/_scripts/.ai-memory-template.md +55 -55
- package/.kiro/skills/_scripts/checklist.md +35 -34
- package/.kiro/skills/_scripts/memory-compact.md +142 -0
- package/.kiro/skills/_scripts/memory-dedupe.md +26 -26
- package/.kiro/skills/_scripts/pre-deploy.md +42 -42
- package/.kiro/skills/_scripts/verify-all.md +28 -28
- package/.kiro/skills/agents/SKILL.md +85 -85
- package/.kiro/skills/agents/agents/backend-specialist.md +29 -29
- package/.kiro/skills/agents/agents/database-architect.md +28 -28
- package/.kiro/skills/agents/agents/debugger.md +29 -29
- package/.kiro/skills/agents/agents/devops-engineer.md +30 -30
- package/.kiro/skills/agents/agents/documentation-writer.md +29 -29
- package/.kiro/skills/agents/agents/frontend-specialist.md +30 -30
- package/.kiro/skills/agents/agents/orchestrator.md +36 -36
- package/.kiro/skills/agents/agents/performance-optimizer.md +29 -29
- package/.kiro/skills/agents/agents/project-planner.md +30 -30
- package/.kiro/skills/agents/agents/security-auditor.md +30 -30
- package/.kiro/skills/agents/agents/test-engineer.md +29 -29
- package/.kiro/skills/brainstorm/SKILL.md +66 -66
- package/.kiro/skills/clean/SKILL.md +90 -90
- package/.kiro/skills/create/SKILL.md +63 -63
- package/.kiro/skills/debug/SKILL.md +71 -71
- package/.kiro/skills/deploy/SKILL.md +66 -66
- package/.kiro/skills/enhance/SKILL.md +58 -58
- package/.kiro/skills/explain/SKILL.md +69 -69
- package/.kiro/skills/instructions.md +95 -93
- package/.kiro/skills/integrate/SKILL.md +50 -50
- package/.kiro/skills/motion-ui/SKILL.md +492 -0
- package/.kiro/skills/orchestrate/SKILL.md +73 -73
- package/.kiro/skills/plan/SKILL.md +69 -69
- package/.kiro/skills/preview/SKILL.md +55 -55
- package/.kiro/skills/status/SKILL.md +57 -57
- package/.kiro/skills/test/SKILL.md +58 -58
- package/.kiro/skills/ui-ux-pro-max/SKILL.md +65 -65
- package/LICENSE +21 -21
- package/README.md +212 -208
- package/bin/cli.js +876 -876
- package/bin/install-skills.ps1 +30 -30
- package/index.js +23 -23
- package/lib/skill-bundle.js +741 -725
- package/package.json +62 -62
- package/scripts/render-targets.js +22 -22
|
@@ -0,0 +1,492 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: motion-ui
|
|
3
|
+
description: "Advanced Motion UI (AMUI) — Create clean, modern UI with subtle Framer Motion micro-interactions, clear states (idle/loading/success/error), consistent styling via design tokens, and smooth animations. Use when the user wants motion-rich, polished UI with micro-interactions. Triggers: motion, animation, framer motion, micro-interaction, smooth ui, amui, chuyển động, hiệu ứng mượt."
|
|
4
|
+
agents: [frontend-specialist]
|
|
5
|
+
related-skills: [create, ui-ux-pro-max, enhance]
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Memory Protocol
|
|
9
|
+
**START**: Read `.ai-memory.md` from project root. Check design tokens, motion patterns, component library, animation conventions, and accessibility settings (prefers-reduced-motion).
|
|
10
|
+
**END**: Update `.ai-memory.md` using **Memory Compaction Rules** with: motion patterns used, components created, animation decisions, and accessibility notes.
|
|
11
|
+
|
|
12
|
+
## Goal
|
|
13
|
+
Create a clean, modern UI with subtle Framer Motion micro-interactions, clear states (idle/loading/success/error), and consistent styling via CSS variables/tokens. Motion should be purposeful, smooth, and enhance user experience without being distracting.
|
|
14
|
+
|
|
15
|
+
## Design Philosophy (AMUI Principles)
|
|
16
|
+
|
|
17
|
+
### 1. Clarity-First
|
|
18
|
+
- States are always clear: idle / hover / active / loading / success / error / disabled
|
|
19
|
+
- Visual feedback for every interaction
|
|
20
|
+
- No ambiguous UI states
|
|
21
|
+
|
|
22
|
+
### 2. Motion with Purpose
|
|
23
|
+
Animation is not decoration, but serves to:
|
|
24
|
+
- Guide user attention
|
|
25
|
+
- Show system response
|
|
26
|
+
- Reduce jarring/abrupt UI changes
|
|
27
|
+
- Provide feedback and context
|
|
28
|
+
|
|
29
|
+
### 3. Subtle Micro-Interactions
|
|
30
|
+
- Hover: scale 1.01–1.02
|
|
31
|
+
- Tap/Active: scale 0.97–0.98
|
|
32
|
+
- No excessive bounce or dramatic effects
|
|
33
|
+
- Keep it elegant and professional
|
|
34
|
+
|
|
35
|
+
### 4. Immediate Feedback
|
|
36
|
+
- Validation shows instantly
|
|
37
|
+
- Submit actions show loading state
|
|
38
|
+
- Success shows with green check animation
|
|
39
|
+
- Errors show with alert animation
|
|
40
|
+
|
|
41
|
+
### 5. Brand Ambient Layer (Optional)
|
|
42
|
+
- Gradient backgrounds with blur orbs
|
|
43
|
+
- Dot grid patterns
|
|
44
|
+
- Subtle noise textures
|
|
45
|
+
- Use sparingly for auth/landing/empty states
|
|
46
|
+
|
|
47
|
+
## Technical Stack
|
|
48
|
+
|
|
49
|
+
### Required
|
|
50
|
+
- **Framer Motion** (`motion`, `AnimatePresence`) for smooth transitions
|
|
51
|
+
- **CSS Variables** for design tokens (colors, spacing, timing)
|
|
52
|
+
- **Tailwind CSS** or global CSS for styling
|
|
53
|
+
|
|
54
|
+
### Recommended
|
|
55
|
+
- **Lucide Icons** for clean, consistent iconography
|
|
56
|
+
- **TypeScript** for type-safe components
|
|
57
|
+
|
|
58
|
+
## Design Tokens System
|
|
59
|
+
|
|
60
|
+
### Surface Colors
|
|
61
|
+
```css
|
|
62
|
+
--c-bg: /* main background */
|
|
63
|
+
--c-surface: /* card/panel background */
|
|
64
|
+
--c-surface-2: /* hover surface */
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
### Border Colors
|
|
68
|
+
```css
|
|
69
|
+
--c-border: /* default border */
|
|
70
|
+
--c-border-strong: /* focus/active border */
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
### Text Colors
|
|
74
|
+
```css
|
|
75
|
+
--c-text-1: /* primary text */
|
|
76
|
+
--c-text-2: /* secondary text */
|
|
77
|
+
--c-text-3: /* muted text */
|
|
78
|
+
--c-text-4: /* disabled text */
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
### Semantic Colors
|
|
82
|
+
```css
|
|
83
|
+
--c-success: /* success text/icon */
|
|
84
|
+
--c-success-bg: /* success background */
|
|
85
|
+
--c-success-bd: /* success border */
|
|
86
|
+
|
|
87
|
+
--c-danger: /* error text/icon */
|
|
88
|
+
--c-danger-bg: /* error background */
|
|
89
|
+
--c-danger-bd: /* error border */
|
|
90
|
+
|
|
91
|
+
--c-warning: /* warning text/icon */
|
|
92
|
+
--c-warning-bg: /* warning background */
|
|
93
|
+
--c-warning-bd: /* warning border */
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
### Motion Timing
|
|
97
|
+
```css
|
|
98
|
+
--t-fast: 120ms;
|
|
99
|
+
--t-med: 180ms;
|
|
100
|
+
--t-slow: 260ms;
|
|
101
|
+
--ease-smooth: cubic-bezier(0.2, 0.8, 0.2, 1);
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
## Motion Rules
|
|
105
|
+
|
|
106
|
+
### Durations & Easing
|
|
107
|
+
- **Small transitions** (hover, focus): 120–180ms
|
|
108
|
+
- **Enter/exit animations**: 180–240ms
|
|
109
|
+
- **Page/section transitions**: 240–320ms
|
|
110
|
+
- **Easing**: `easeOut` for enter, `easeIn` for exit
|
|
111
|
+
|
|
112
|
+
### Pattern 1: Fade + Slide (Standard Entry)
|
|
113
|
+
```jsx
|
|
114
|
+
// Enter animation
|
|
115
|
+
initial={{ opacity: 0, y: 8 }}
|
|
116
|
+
animate={{ opacity: 1, y: 0 }}
|
|
117
|
+
transition={{ duration: 0.24, ease: "easeOut" }}
|
|
118
|
+
|
|
119
|
+
// Exit animation
|
|
120
|
+
exit={{ opacity: 0, y: -10 }}
|
|
121
|
+
transition={{ duration: 0.18, ease: "easeIn" }}
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
### Pattern 2: Layout Shift Prevention
|
|
125
|
+
- Use `AnimatePresence` for conditional rendering
|
|
126
|
+
- Use `layout` prop for smooth layout changes
|
|
127
|
+
- Animate height changes smoothly (0 → auto)
|
|
128
|
+
- Prevent layout jumps during loading states
|
|
129
|
+
|
|
130
|
+
### Pattern 3: Button Micro-Interactions
|
|
131
|
+
```jsx
|
|
132
|
+
<motion.button
|
|
133
|
+
whileHover={{ scale: loading ? 1 : 1.015 }}
|
|
134
|
+
whileTap={{ scale: loading ? 1 : 0.975 }}
|
|
135
|
+
transition={{ duration: 0.12 }}
|
|
136
|
+
>
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
**Rules:**
|
|
140
|
+
- Disabled buttons: no scale, reduced opacity, cursor not-allowed
|
|
141
|
+
- Loading buttons: maintain width, show spinner, disable interactions
|
|
142
|
+
|
|
143
|
+
## State System
|
|
144
|
+
|
|
145
|
+
### Form States
|
|
146
|
+
1. **idle** — Initial state, ready for input
|
|
147
|
+
2. **editing** — User is interacting
|
|
148
|
+
3. **submitting** — Loading, processing request
|
|
149
|
+
4. **success** — Action completed successfully
|
|
150
|
+
5. **error** — Action failed, show error message
|
|
151
|
+
|
|
152
|
+
**Display Rules:**
|
|
153
|
+
- `submitting`: disable inputs + button, show spinner, text "Processing..."
|
|
154
|
+
- `error`: show alert with icon + message, animate expand/collapse
|
|
155
|
+
- `success`: show green check icon panel, animate scale-in, auto-redirect
|
|
156
|
+
|
|
157
|
+
### Input Validation States
|
|
158
|
+
1. **default** — No validation shown
|
|
159
|
+
2. **focus** — User is typing
|
|
160
|
+
3. **valid** — Input passes validation (optional green border/check)
|
|
161
|
+
4. **invalid** — Input fails validation (red border + error message)
|
|
162
|
+
|
|
163
|
+
**UX Rules:**
|
|
164
|
+
- Only show "invalid" after user interaction (touched) or submit attempt
|
|
165
|
+
- Show "valid" state subtly (optional)
|
|
166
|
+
- Error messages animate in/out smoothly
|
|
167
|
+
|
|
168
|
+
## Component Patterns
|
|
169
|
+
|
|
170
|
+
### 1. AMUI Button
|
|
171
|
+
**Required Features:**
|
|
172
|
+
- 3 sizes: sm / md / lg
|
|
173
|
+
- 5 states: default / hover / active / loading / disabled
|
|
174
|
+
- Optional: leftIcon / rightIcon
|
|
175
|
+
- Motion: whileHover scale 1.015, whileTap scale 0.975
|
|
176
|
+
|
|
177
|
+
**Loading Behavior:**
|
|
178
|
+
- Set `aria-busy="true"`
|
|
179
|
+
- Disable click events
|
|
180
|
+
- Show spinner + text
|
|
181
|
+
- Maintain button width (no layout jump)
|
|
182
|
+
|
|
183
|
+
### 2. AMUI Input
|
|
184
|
+
**Required Features:**
|
|
185
|
+
- Label + optional hint text
|
|
186
|
+
- Error message with animation
|
|
187
|
+
- Optional left/right icons
|
|
188
|
+
- Focus ring (subtle, using tokens)
|
|
189
|
+
- Validation states
|
|
190
|
+
|
|
191
|
+
**Animation:**
|
|
192
|
+
- Error message: expand/collapse with height + opacity
|
|
193
|
+
- Focus ring: fade in/out
|
|
194
|
+
|
|
195
|
+
### 3. AMUI Alert / Toast
|
|
196
|
+
**Variants:**
|
|
197
|
+
- **Success**: light green bg + green border + check icon
|
|
198
|
+
- **Error**: light red bg + red border + alert icon
|
|
199
|
+
- **Warning**: light yellow bg + yellow border + warning icon
|
|
200
|
+
- **Info**: light blue bg + blue border + info icon
|
|
201
|
+
|
|
202
|
+
**Animation:**
|
|
203
|
+
- Enter: opacity 0→1, y 8→0
|
|
204
|
+
- Exit: opacity 1→0, y 0→-10
|
|
205
|
+
- Use `AnimatePresence` for mount/unmount
|
|
206
|
+
|
|
207
|
+
### 4. AMUI Success Check View
|
|
208
|
+
**Pattern:**
|
|
209
|
+
When action succeeds, transition entire panel to:
|
|
210
|
+
- Large check icon in circle
|
|
211
|
+
- "Success" heading
|
|
212
|
+
- Optional subtext
|
|
213
|
+
- Scale-in animation (0.98 → 1) + fade-in
|
|
214
|
+
|
|
215
|
+
**Example Use Cases:**
|
|
216
|
+
- Login success
|
|
217
|
+
- Form submission success
|
|
218
|
+
- Payment confirmation
|
|
219
|
+
- Account creation
|
|
220
|
+
|
|
221
|
+
### 5. AMUI Card / Panel
|
|
222
|
+
**Features:**
|
|
223
|
+
- Subtle shadow
|
|
224
|
+
- Border using tokens
|
|
225
|
+
- Hover state (optional lift effect)
|
|
226
|
+
- Smooth transitions
|
|
227
|
+
|
|
228
|
+
### 6. AMUI Modal / Dialog
|
|
229
|
+
**Animation:**
|
|
230
|
+
- Backdrop: fade in/out
|
|
231
|
+
- Content: fade + scale (0.95 → 1)
|
|
232
|
+
- Use `AnimatePresence` for mount/unmount
|
|
233
|
+
|
|
234
|
+
## Ambient Background Layer
|
|
235
|
+
|
|
236
|
+
### When to Use
|
|
237
|
+
- Auth pages (login, register)
|
|
238
|
+
- Onboarding flows
|
|
239
|
+
- Empty states
|
|
240
|
+
- Dashboard landing pages
|
|
241
|
+
|
|
242
|
+
### When NOT to Use
|
|
243
|
+
- Dense data tables
|
|
244
|
+
- Forms with lots of inputs
|
|
245
|
+
- Content-heavy pages
|
|
246
|
+
|
|
247
|
+
### Implementation
|
|
248
|
+
```jsx
|
|
249
|
+
<div className="ambient-bg">
|
|
250
|
+
{/* Gradient base */}
|
|
251
|
+
<div className="gradient-layer" />
|
|
252
|
+
|
|
253
|
+
{/* Blur orbs */}
|
|
254
|
+
<motion.div
|
|
255
|
+
className="orb orb-1"
|
|
256
|
+
animate={{
|
|
257
|
+
scale: [1, 1.1, 1],
|
|
258
|
+
opacity: [0.3, 0.5, 0.3]
|
|
259
|
+
}}
|
|
260
|
+
transition={{
|
|
261
|
+
duration: 8,
|
|
262
|
+
repeat: Infinity,
|
|
263
|
+
ease: "easeInOut"
|
|
264
|
+
}}
|
|
265
|
+
/>
|
|
266
|
+
|
|
267
|
+
{/* Optional: dot grid */}
|
|
268
|
+
<div className="dot-grid" />
|
|
269
|
+
</div>
|
|
270
|
+
```
|
|
271
|
+
|
|
272
|
+
**Rules:**
|
|
273
|
+
- Large blur radius (100px+)
|
|
274
|
+
- Low opacity (0.2–0.5)
|
|
275
|
+
- Slow animation (7–12s)
|
|
276
|
+
- `pointer-events: none`
|
|
277
|
+
- Don't cause eye strain
|
|
278
|
+
|
|
279
|
+
## Accessibility Requirements
|
|
280
|
+
|
|
281
|
+
### Motion
|
|
282
|
+
- Respect `prefers-reduced-motion` media query
|
|
283
|
+
- Disable/reduce animations when user prefers reduced motion
|
|
284
|
+
```css
|
|
285
|
+
@media (prefers-reduced-motion: reduce) {
|
|
286
|
+
* {
|
|
287
|
+
animation-duration: 0.01ms !important;
|
|
288
|
+
transition-duration: 0.01ms !important;
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
```
|
|
292
|
+
|
|
293
|
+
### Buttons
|
|
294
|
+
- `aria-busy` when loading
|
|
295
|
+
- `disabled` attribute when disabled
|
|
296
|
+
- Clear focus-visible ring
|
|
297
|
+
- Keyboard accessible
|
|
298
|
+
|
|
299
|
+
### Alerts
|
|
300
|
+
- Use `role="alert"` for error/success messages
|
|
301
|
+
- Ensure screen readers announce state changes
|
|
302
|
+
|
|
303
|
+
### Color Contrast
|
|
304
|
+
- Text on backgrounds must meet WCAG AA (4.5:1 for normal text)
|
|
305
|
+
- Test gradients and ambient backgrounds for contrast
|
|
306
|
+
|
|
307
|
+
## Agent Routing
|
|
308
|
+
- Primary → read `.kiro/skills/agents/agents/frontend-specialist.md` and apply its knowledge
|
|
309
|
+
- For accessibility → apply WCAG knowledge from frontend-specialist
|
|
310
|
+
- For performance → ensure animations don't cause jank
|
|
311
|
+
|
|
312
|
+
## Socratic Gate
|
|
313
|
+
Before implementing Motion UI, verify:
|
|
314
|
+
1. What component/page needs motion UI? (button, form, modal, page?)
|
|
315
|
+
2. What states need to be shown? (loading, success, error?)
|
|
316
|
+
3. Are there existing design tokens or should we create them?
|
|
317
|
+
4. Should we use ambient background layer?
|
|
318
|
+
If any answer is unclear, ASK before proceeding.
|
|
319
|
+
|
|
320
|
+
## Workflow
|
|
321
|
+
1. **Read Memory** — Load `.ai-memory.md` for design tokens and motion patterns.
|
|
322
|
+
2. Identify the component/page to implement.
|
|
323
|
+
3. Set up design tokens if not present (CSS variables).
|
|
324
|
+
4. Implement component with all required states.
|
|
325
|
+
5. Add Framer Motion animations following AMUI patterns.
|
|
326
|
+
6. Ensure accessibility (aria attributes, focus management, reduced motion).
|
|
327
|
+
7. Test all states: idle, hover, active, loading, success, error, disabled.
|
|
328
|
+
8. **Quality Gate** — Read `.kiro/skills/_scripts/checklist.md` for verification.
|
|
329
|
+
9. **Update Memory** — Save motion patterns and tokens to `.ai-memory.md`.
|
|
330
|
+
|
|
331
|
+
## Checklist
|
|
332
|
+
- [ ] Component/page identified
|
|
333
|
+
- [ ] Design tokens defined (colors, timing, easing)
|
|
334
|
+
- [ ] All states implemented (idle/hover/active/loading/success/error/disabled)
|
|
335
|
+
- [ ] Framer Motion animations added (fade, slide, scale)
|
|
336
|
+
- [ ] Micro-interactions on buttons (whileHover, whileTap)
|
|
337
|
+
- [ ] AnimatePresence for conditional UI
|
|
338
|
+
- [ ] Layout shift prevention (stable widths, smooth height changes)
|
|
339
|
+
- [ ] Accessibility: aria attributes, focus management
|
|
340
|
+
- [ ] prefers-reduced-motion support
|
|
341
|
+
- [ ] Color contrast verified (WCAG AA)
|
|
342
|
+
- [ ] Memory file updated
|
|
343
|
+
|
|
344
|
+
## Rules
|
|
345
|
+
- Motion should enhance, not distract.
|
|
346
|
+
- Keep animations subtle and purposeful.
|
|
347
|
+
- Always provide immediate visual feedback.
|
|
348
|
+
- Maintain layout stability (no jumps during loading).
|
|
349
|
+
- Respect user motion preferences.
|
|
350
|
+
- Use design tokens consistently.
|
|
351
|
+
- Test all interactive states.
|
|
352
|
+
- Always read and update the memory file.
|
|
353
|
+
|
|
354
|
+
## Quality Gate
|
|
355
|
+
After completing, read `.kiro/skills/_scripts/checklist.md` for cross-cutting quality checks.
|
|
356
|
+
|
|
357
|
+
## Related Skills
|
|
358
|
+
- `/create` → read `.kiro/skills/create/SKILL.md` — Create new motion UI components
|
|
359
|
+
- `/ui-ux-pro-max` → read `.kiro/skills/ui-ux-pro-max/SKILL.md` — Advanced UI/UX improvements
|
|
360
|
+
- `/enhance` → read `.kiro/skills/enhance/SKILL.md` — Improve existing components with motion
|
|
361
|
+
|
|
362
|
+
## Example: AMUI Button Component
|
|
363
|
+
|
|
364
|
+
```tsx
|
|
365
|
+
import { motion } from 'framer-motion';
|
|
366
|
+
import { Loader2 } from 'lucide-react';
|
|
367
|
+
|
|
368
|
+
interface AMUIButtonProps {
|
|
369
|
+
children: React.ReactNode;
|
|
370
|
+
variant?: 'primary' | 'secondary' | 'ghost';
|
|
371
|
+
size?: 'sm' | 'md' | 'lg';
|
|
372
|
+
loading?: boolean;
|
|
373
|
+
disabled?: boolean;
|
|
374
|
+
leftIcon?: React.ReactNode;
|
|
375
|
+
rightIcon?: React.ReactNode;
|
|
376
|
+
onClick?: () => void;
|
|
377
|
+
}
|
|
378
|
+
|
|
379
|
+
export function AMUIButton({
|
|
380
|
+
children,
|
|
381
|
+
variant = 'primary',
|
|
382
|
+
size = 'md',
|
|
383
|
+
loading = false,
|
|
384
|
+
disabled = false,
|
|
385
|
+
leftIcon,
|
|
386
|
+
rightIcon,
|
|
387
|
+
onClick,
|
|
388
|
+
}: AMUIButtonProps) {
|
|
389
|
+
const isDisabled = disabled || loading;
|
|
390
|
+
|
|
391
|
+
return (
|
|
392
|
+
<motion.button
|
|
393
|
+
className={`amui-btn amui-btn-${variant} amui-btn-${size}`}
|
|
394
|
+
onClick={onClick}
|
|
395
|
+
disabled={isDisabled}
|
|
396
|
+
aria-busy={loading}
|
|
397
|
+
whileHover={{ scale: isDisabled ? 1 : 1.015 }}
|
|
398
|
+
whileTap={{ scale: isDisabled ? 1 : 0.975 }}
|
|
399
|
+
transition={{ duration: 0.12 }}
|
|
400
|
+
>
|
|
401
|
+
{loading && <Loader2 className="amui-btn-spinner" />}
|
|
402
|
+
{!loading && leftIcon && <span className="amui-btn-icon-left">{leftIcon}</span>}
|
|
403
|
+
<span className="amui-btn-text">{children}</span>
|
|
404
|
+
{!loading && rightIcon && <span className="amui-btn-icon-right">{rightIcon}</span>}
|
|
405
|
+
</motion.button>
|
|
406
|
+
);
|
|
407
|
+
}
|
|
408
|
+
```
|
|
409
|
+
|
|
410
|
+
## Example: AMUI Success View
|
|
411
|
+
|
|
412
|
+
```tsx
|
|
413
|
+
import { motion } from 'framer-motion';
|
|
414
|
+
import { CheckCircle } from 'lucide-react';
|
|
415
|
+
|
|
416
|
+
interface AMUISuccessViewProps {
|
|
417
|
+
title?: string;
|
|
418
|
+
message?: string;
|
|
419
|
+
}
|
|
420
|
+
|
|
421
|
+
export function AMUISuccessView({
|
|
422
|
+
title = 'Success!',
|
|
423
|
+
message
|
|
424
|
+
}: AMUISuccessViewProps) {
|
|
425
|
+
return (
|
|
426
|
+
<motion.div
|
|
427
|
+
className="amui-success-view"
|
|
428
|
+
initial={{ opacity: 0, scale: 0.98 }}
|
|
429
|
+
animate={{ opacity: 1, scale: 1 }}
|
|
430
|
+
transition={{ duration: 0.24, ease: 'easeOut' }}
|
|
431
|
+
>
|
|
432
|
+
<motion.div
|
|
433
|
+
className="amui-success-icon"
|
|
434
|
+
initial={{ scale: 0 }}
|
|
435
|
+
animate={{ scale: 1 }}
|
|
436
|
+
transition={{
|
|
437
|
+
duration: 0.3,
|
|
438
|
+
delay: 0.1,
|
|
439
|
+
type: 'spring',
|
|
440
|
+
stiffness: 200
|
|
441
|
+
}}
|
|
442
|
+
>
|
|
443
|
+
<CheckCircle size={48} />
|
|
444
|
+
</motion.div>
|
|
445
|
+
<h2 className="amui-success-title">{title}</h2>
|
|
446
|
+
{message && <p className="amui-success-message">{message}</p>}
|
|
447
|
+
</motion.div>
|
|
448
|
+
);
|
|
449
|
+
}
|
|
450
|
+
```
|
|
451
|
+
|
|
452
|
+
## Example: AMUI Alert with Animation
|
|
453
|
+
|
|
454
|
+
```tsx
|
|
455
|
+
import { motion, AnimatePresence } from 'framer-motion';
|
|
456
|
+
import { AlertCircle, CheckCircle, Info, AlertTriangle } from 'lucide-react';
|
|
457
|
+
|
|
458
|
+
interface AMUIAlertProps {
|
|
459
|
+
type: 'success' | 'error' | 'warning' | 'info';
|
|
460
|
+
message: string;
|
|
461
|
+
visible: boolean;
|
|
462
|
+
}
|
|
463
|
+
|
|
464
|
+
const icons = {
|
|
465
|
+
success: CheckCircle,
|
|
466
|
+
error: AlertCircle,
|
|
467
|
+
warning: AlertTriangle,
|
|
468
|
+
info: Info,
|
|
469
|
+
};
|
|
470
|
+
|
|
471
|
+
export function AMUIAlert({ type, message, visible }: AMUIAlertProps) {
|
|
472
|
+
const Icon = icons[type];
|
|
473
|
+
|
|
474
|
+
return (
|
|
475
|
+
<AnimatePresence>
|
|
476
|
+
{visible && (
|
|
477
|
+
<motion.div
|
|
478
|
+
className={`amui-alert amui-alert-${type}`}
|
|
479
|
+
role="alert"
|
|
480
|
+
initial={{ opacity: 0, height: 0, y: -10 }}
|
|
481
|
+
animate={{ opacity: 1, height: 'auto', y: 0 }}
|
|
482
|
+
exit={{ opacity: 0, height: 0, y: -10 }}
|
|
483
|
+
transition={{ duration: 0.2 }}
|
|
484
|
+
>
|
|
485
|
+
<Icon className="amui-alert-icon" size={20} />
|
|
486
|
+
<span className="amui-alert-message">{message}</span>
|
|
487
|
+
</motion.div>
|
|
488
|
+
)}
|
|
489
|
+
</AnimatePresence>
|
|
490
|
+
);
|
|
491
|
+
}
|
|
492
|
+
```
|
|
@@ -1,73 +1,73 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: orchestrate
|
|
3
|
-
description: "Coordinate multi-step plans across multiple roles, files, systems, or parallel workstreams. Use when the user has a complex request spanning multiple domains or needing decomposition. Triggers: orchestrate, coordinate, multi-step, full-stack, tổng hợp, làm nhiều bước."
|
|
4
|
-
agents: [orchestrator, project-planner]
|
|
5
|
-
related-skills: [plan, create, deploy, test]
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
## Memory Protocol
|
|
9
|
-
**START**: Read `.ai-memory.md` from project root. Check project architecture, team structure, past orchestration plans, ongoing tasks, and blockers.
|
|
10
|
-
**END**: Update `.ai-memory.md` using **Memory Compaction Rules** with: workstreams, assignments, dependencies, execution order, and blockers/risks.
|
|
11
|
-
|
|
12
|
-
## Goal
|
|
13
|
-
Break a complex request into a coordinated execution plan with clear agent assignments.
|
|
14
|
-
|
|
15
|
-
## Agent Routing
|
|
16
|
-
- Primary coordinator → read `.kiro/skills/agents/agents/orchestrator.md` and apply its knowledge
|
|
17
|
-
- For planning phases → read `.kiro/skills/agents/agents/project-planner.md` and apply its knowledge
|
|
18
|
-
- For each workstream, read the most relevant agent file:
|
|
19
|
-
- Frontend tasks → read `.kiro/skills/agents/agents/frontend-specialist.md`
|
|
20
|
-
- Backend tasks → read `.kiro/skills/agents/agents/backend-specialist.md`
|
|
21
|
-
- Database tasks → read `.kiro/skills/agents/agents/database-architect.md`
|
|
22
|
-
- Testing → read `.kiro/skills/agents/agents/test-engineer.md`
|
|
23
|
-
- Security review → read `.kiro/skills/agents/agents/security-auditor.md`
|
|
24
|
-
- Deployment → read `.kiro/skills/agents/agents/devops-engineer.md`
|
|
25
|
-
|
|
26
|
-
## Socratic Gate
|
|
27
|
-
Before orchestrating, verify:
|
|
28
|
-
1. What is the full objective? (end-to-end scope)
|
|
29
|
-
2. How many domains are involved? (frontend, backend, DB, infra?)
|
|
30
|
-
3. Are there hard dependencies or deadlines?
|
|
31
|
-
If any answer is unclear, ASK before proceeding.
|
|
32
|
-
|
|
33
|
-
## Workflow
|
|
34
|
-
1. **Read Memory** — Load `.ai-memory.md` for project context and history.
|
|
35
|
-
2. Decompose the objective into workstreams.
|
|
36
|
-
3. Assign each workstream to the appropriate agent/role.
|
|
37
|
-
4. Identify dependencies, blockers, and the critical path.
|
|
38
|
-
5. Define parallelizable tasks and merge points.
|
|
39
|
-
6. Produce an execution order with clear handoffs.
|
|
40
|
-
7. **Quality Gate** — Read `.kiro/skills/_scripts/checklist.md` and verify each workstream output before merge.
|
|
41
|
-
8. **Update Memory** — Save orchestration plan to `.ai-memory.md`.
|
|
42
|
-
|
|
43
|
-
## Output format
|
|
44
|
-
- Objective
|
|
45
|
-
- Workstreams (with assigned agents)
|
|
46
|
-
- Dependencies and critical path
|
|
47
|
-
- Execution order (sequential + parallel)
|
|
48
|
-
- Risks and mitigations
|
|
49
|
-
- Done criteria for each workstream
|
|
50
|
-
|
|
51
|
-
## Checklist
|
|
52
|
-
- [ ] Objective clearly defined
|
|
53
|
-
- [ ] Workstreams decomposed
|
|
54
|
-
- [ ] Agents assigned to each workstream
|
|
55
|
-
- [ ] Dependencies mapped
|
|
56
|
-
- [ ] Critical path identified
|
|
57
|
-
- [ ] Parallel tasks defined
|
|
58
|
-
- [ ] Handoff points clear
|
|
59
|
-
- [ ] Done criteria set
|
|
60
|
-
- [ ] Memory file updated
|
|
61
|
-
|
|
62
|
-
## Rules
|
|
63
|
-
- Keep plans realistic for the current project.
|
|
64
|
-
- Surface unknowns early.
|
|
65
|
-
- Favor visible checkpoints over long hidden work.
|
|
66
|
-
- Control scope: each workstream must state minimal files to touch; ASK before allowing wide-impact changes.
|
|
67
|
-
- Always read and update the memory file.
|
|
68
|
-
|
|
69
|
-
## Related Skills
|
|
70
|
-
- `/plan` → read `.kiro/skills/plan/SKILL.md` — Detailed planning for individual workstreams
|
|
71
|
-
- `/create` → read `.kiro/skills/create/SKILL.md` — Execute creation tasks
|
|
72
|
-
- `/deploy` → read `.kiro/skills/deploy/SKILL.md` — Deploy completed work
|
|
73
|
-
- `/test` → read `.kiro/skills/test/SKILL.md` — Validate each workstream
|
|
1
|
+
---
|
|
2
|
+
name: orchestrate
|
|
3
|
+
description: "Coordinate multi-step plans across multiple roles, files, systems, or parallel workstreams. Use when the user has a complex request spanning multiple domains or needing decomposition. Triggers: orchestrate, coordinate, multi-step, full-stack, tổng hợp, làm nhiều bước."
|
|
4
|
+
agents: [orchestrator, project-planner]
|
|
5
|
+
related-skills: [plan, create, deploy, test]
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Memory Protocol
|
|
9
|
+
**START**: Read `.ai-memory.md` from project root. Check project architecture, team structure, past orchestration plans, ongoing tasks, and blockers.
|
|
10
|
+
**END**: Update `.ai-memory.md` using **Memory Compaction Rules** with: workstreams, assignments, dependencies, execution order, and blockers/risks.
|
|
11
|
+
|
|
12
|
+
## Goal
|
|
13
|
+
Break a complex request into a coordinated execution plan with clear agent assignments.
|
|
14
|
+
|
|
15
|
+
## Agent Routing
|
|
16
|
+
- Primary coordinator → read `.kiro/skills/agents/agents/orchestrator.md` and apply its knowledge
|
|
17
|
+
- For planning phases → read `.kiro/skills/agents/agents/project-planner.md` and apply its knowledge
|
|
18
|
+
- For each workstream, read the most relevant agent file:
|
|
19
|
+
- Frontend tasks → read `.kiro/skills/agents/agents/frontend-specialist.md`
|
|
20
|
+
- Backend tasks → read `.kiro/skills/agents/agents/backend-specialist.md`
|
|
21
|
+
- Database tasks → read `.kiro/skills/agents/agents/database-architect.md`
|
|
22
|
+
- Testing → read `.kiro/skills/agents/agents/test-engineer.md`
|
|
23
|
+
- Security review → read `.kiro/skills/agents/agents/security-auditor.md`
|
|
24
|
+
- Deployment → read `.kiro/skills/agents/agents/devops-engineer.md`
|
|
25
|
+
|
|
26
|
+
## Socratic Gate
|
|
27
|
+
Before orchestrating, verify:
|
|
28
|
+
1. What is the full objective? (end-to-end scope)
|
|
29
|
+
2. How many domains are involved? (frontend, backend, DB, infra?)
|
|
30
|
+
3. Are there hard dependencies or deadlines?
|
|
31
|
+
If any answer is unclear, ASK before proceeding.
|
|
32
|
+
|
|
33
|
+
## Workflow
|
|
34
|
+
1. **Read Memory** — Load `.ai-memory.md` for project context and history.
|
|
35
|
+
2. Decompose the objective into workstreams.
|
|
36
|
+
3. Assign each workstream to the appropriate agent/role.
|
|
37
|
+
4. Identify dependencies, blockers, and the critical path.
|
|
38
|
+
5. Define parallelizable tasks and merge points.
|
|
39
|
+
6. Produce an execution order with clear handoffs.
|
|
40
|
+
7. **Quality Gate** — Read `.kiro/skills/_scripts/checklist.md` and verify each workstream output before merge.
|
|
41
|
+
8. **Update Memory** — Save orchestration plan to `.ai-memory.md`.
|
|
42
|
+
|
|
43
|
+
## Output format
|
|
44
|
+
- Objective
|
|
45
|
+
- Workstreams (with assigned agents)
|
|
46
|
+
- Dependencies and critical path
|
|
47
|
+
- Execution order (sequential + parallel)
|
|
48
|
+
- Risks and mitigations
|
|
49
|
+
- Done criteria for each workstream
|
|
50
|
+
|
|
51
|
+
## Checklist
|
|
52
|
+
- [ ] Objective clearly defined
|
|
53
|
+
- [ ] Workstreams decomposed
|
|
54
|
+
- [ ] Agents assigned to each workstream
|
|
55
|
+
- [ ] Dependencies mapped
|
|
56
|
+
- [ ] Critical path identified
|
|
57
|
+
- [ ] Parallel tasks defined
|
|
58
|
+
- [ ] Handoff points clear
|
|
59
|
+
- [ ] Done criteria set
|
|
60
|
+
- [ ] Memory file updated
|
|
61
|
+
|
|
62
|
+
## Rules
|
|
63
|
+
- Keep plans realistic for the current project.
|
|
64
|
+
- Surface unknowns early.
|
|
65
|
+
- Favor visible checkpoints over long hidden work.
|
|
66
|
+
- Control scope: each workstream must state minimal files to touch; ASK before allowing wide-impact changes.
|
|
67
|
+
- Always read and update the memory file.
|
|
68
|
+
|
|
69
|
+
## Related Skills
|
|
70
|
+
- `/plan` → read `.kiro/skills/plan/SKILL.md` — Detailed planning for individual workstreams
|
|
71
|
+
- `/create` → read `.kiro/skills/create/SKILL.md` — Execute creation tasks
|
|
72
|
+
- `/deploy` → read `.kiro/skills/deploy/SKILL.md` — Deploy completed work
|
|
73
|
+
- `/test` → read `.kiro/skills/test/SKILL.md` — Validate each workstream
|