ai-developer-skill-os 2.0.1 → 3.0.0
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/.agents/AGENTS.md +48 -0
- package/README.md +77 -130
- package/knowledge/frontend/react.md +27 -0
- package/package.json +1 -1
- package/skills/qk-access-policy/SKILL.md +40 -127
- package/skills/qk-ai-builder/SKILL.md +41 -33
- package/skills/qk-api-lifecycle/SKILL.md +62 -420
- package/skills/qk-bug-resolution/SKILL.md +65 -371
- package/skills/qk-context-loader/SKILL.md +47 -206
- package/skills/qk-data-lifecycle/SKILL.md +60 -135
- package/skills/qk-design-to-code/SKILL.md +46 -33
- package/skills/qk-docs/SKILL.md +52 -335
- package/skills/qk-documentation-system/SKILL.md +38 -33
- package/skills/qk-engineering-standard/SKILL.md +61 -171
- package/skills/qk-feature-delivery/SKILL.md +63 -432
- package/skills/qk-help/SKILL.md +37 -95
- package/skills/qk-orchestrator/SKILL.md +52 -272
- package/skills/qk-policy-engine/SKILL.md +52 -33
- package/skills/qk-production-release/SKILL.md +45 -127
- package/skills/qk-project-bootstrap/SKILL.md +43 -33
- package/skills/qk-project-health/SKILL.md +56 -650
- package/skills/qk-project-memory/SKILL.md +35 -33
- package/skills/qk-system-evolution/SKILL.md +63 -315
- package/skills/qk-ui-audit/SKILL.md +58 -152
- package/skills/qk-ui-system-builder/SKILL.md +40 -444
- package/skills/qk-validation-gate/SKILL.md +59 -33
- package/templates/bug-report.md +21 -0
- package/templates/design-report.md +21 -0
- package/templates/feature-report.md +20 -0
- package/templates/review-report.md +21 -0
|
@@ -1,444 +1,40 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: qk-ui-system-builder
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
1. **
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
# Design System Enforcer
|
|
44
|
-
|
|
45
|
-
> **Language rule:**
|
|
46
|
-
> Use English for: code, identifiers, file names, architecture terms, technical decisions.
|
|
47
|
-
> Use the user's language for: explanations, questions, summaries, and feedback.
|
|
48
|
-
> The user may write in any language — detect and match it automatically.
|
|
49
|
-
|
|
50
|
-
---
|
|
51
|
-
|
|
52
|
-
## Trigger
|
|
53
|
-
|
|
54
|
-
Activate this skill when:
|
|
55
|
-
- About to build UI screens or components
|
|
56
|
-
- Styling or layout work is required
|
|
57
|
-
- User asks to "make it look good" or "match the design"
|
|
58
|
-
- Integrating a third-party UI library (Tailwind, MUI, AntD, Shadcn)
|
|
59
|
-
|
|
60
|
-
---
|
|
61
|
-
|
|
62
|
-
## Scope
|
|
63
|
-
|
|
64
|
-
- ✅ Identify the UI library or design system in use
|
|
65
|
-
- ✅ Map standard HTML elements to project-specific components (e.g., `<button>` → `<Button>`)
|
|
66
|
-
- ✅ Enforce usage of design tokens (colors, spacing, typography) instead of hardcoded values
|
|
67
|
-
- ✅ Provide available component variants and props to downstream skills (`ui-builder`)
|
|
68
|
-
- ✅ Prevent generation of raw CSS/inline styles if utility classes or styled-components are standard
|
|
69
|
-
|
|
70
|
-
---
|
|
71
|
-
|
|
72
|
-
## Non-goals
|
|
73
|
-
|
|
74
|
-
- ❌ Do NOT create new base components if an equivalent already exists
|
|
75
|
-
- ❌ Do NOT introduce a new styling method (e.g., don't add Tailwind if project uses CSS Modules)
|
|
76
|
-
- ❌ Do NOT design full pages (delegate to `ui-builder`)
|
|
77
|
-
|
|
78
|
-
---
|
|
79
|
-
|
|
80
|
-
## Workflow
|
|
81
|
-
|
|
82
|
-
### Phase 1 — Detect Design System
|
|
83
|
-
|
|
84
|
-
Analyze dependencies and project files to identify:
|
|
85
|
-
1. **Component Library:** Shadcn UI, MUI, Ant Design, Chakra, Bootstrap, custom internal library?
|
|
86
|
-
2. **Styling Method:** Tailwind CSS, CSS Modules, Styled Components, Emotion, SCSS, Vanilla CSS?
|
|
87
|
-
3. **Location of Shared Components:** Usually `src/components/ui/`, `src/shared/components/`, or from an npm package.
|
|
88
|
-
4. **Design Tokens:** `tailwind.config.js`, `theme.ts`, `variables.scss`.
|
|
89
|
-
|
|
90
|
-
---
|
|
91
|
-
|
|
92
|
-
### Phase 2 — Component Mapping
|
|
93
|
-
|
|
94
|
-
Before `ui-builder` generates code, create a mapping table for required elements:
|
|
95
|
-
|
|
96
|
-
| Standard Element | Project Component | Source / Import Path |
|
|
97
|
-
|------------------|-------------------|----------------------|
|
|
98
|
-
| `<button>` | `<Button>` | `@/components/ui/button` |
|
|
99
|
-
| `<input type="text">` | `<Input>` | `@/components/ui/input` |
|
|
100
|
-
| `<div>` (Card) | `<Card>` | `@/components/ui/card` |
|
|
101
|
-
| `<h1>` | `<Typography variant="h1">` | `@mui/material` |
|
|
102
|
-
|
|
103
|
-
---
|
|
104
|
-
|
|
105
|
-
### Phase 3 — Token Extraction
|
|
106
|
-
|
|
107
|
-
Identify available tokens for spacing, colors, and typography to avoid hardcoding:
|
|
108
|
-
- *Instead of:* `margin-top: 16px; color: #3b82f6;`
|
|
109
|
-
- *Use:* `mt-4 text-blue-500` (Tailwind) or `theme.spacing(2)` (MUI) or `var(--primary-color)`.
|
|
110
|
-
|
|
111
|
-
---
|
|
112
|
-
|
|
113
|
-
### Phase 4 — Rule Enforcement
|
|
114
|
-
|
|
115
|
-
Pass strict instructions to `ui-builder` or `component-generator`:
|
|
116
|
-
- "You MUST use `<Button>` instead of `<button>`."
|
|
117
|
-
- "You MUST use Tailwind classes for all styling. No inline `style={{}}` allowed."
|
|
118
|
-
|
|
119
|
-
---
|
|
120
|
-
|
|
121
|
-
## Decision Tree
|
|
122
|
-
|
|
123
|
-
```
|
|
124
|
-
Does the project use a component library (e.g., Shadcn, MUI)?
|
|
125
|
-
├── Yes → Is the required component available?
|
|
126
|
-
│ ├── Yes → Require its use
|
|
127
|
-
│ └── No → Instruct `component-generator` to create it following library style
|
|
128
|
-
└── No → Check if custom shared components exist
|
|
129
|
-
├── Yes → Map to custom shared components
|
|
130
|
-
└── No → Use raw HTML but enforce project's styling method (e.g., Tailwind)
|
|
131
|
-
|
|
132
|
-
Does the project use utility classes (Tailwind)?
|
|
133
|
-
├── Yes → Forbid inline styles or custom CSS files
|
|
134
|
-
└── No → Enforce existing CSS Modules / Styled Components patterns
|
|
135
|
-
```
|
|
136
|
-
|
|
137
|
-
---
|
|
138
|
-
|
|
139
|
-
## Output Format
|
|
140
|
-
|
|
141
|
-
```
|
|
142
|
-
🎨 Design System Rules
|
|
143
|
-
─────────────────────────────────────────────────
|
|
144
|
-
Library: [Shadcn / MUI / Tailwind / Custom / etc.]
|
|
145
|
-
Styling Method: [Tailwind / CSS Modules / Styled Components]
|
|
146
|
-
|
|
147
|
-
Component Mapping for this task:
|
|
148
|
-
✅ Button → `<Button>` from `@/components/ui/button`
|
|
149
|
-
✅ Input → `<Input>` from `@/components/ui/input`
|
|
150
|
-
✅ Layout → Flexbox with Tailwind (`flex flex-col gap-4`)
|
|
151
|
-
|
|
152
|
-
Styling Rules Enforced:
|
|
153
|
-
• No raw HTML `<button>` allowed
|
|
154
|
-
• No inline styles allowed
|
|
155
|
-
• Use primary color token for CTAs
|
|
156
|
-
|
|
157
|
-
🔗 Next Steps:
|
|
158
|
-
Passing these rules to `ui-builder` to generate the UI.
|
|
159
|
-
```
|
|
160
|
-
|
|
161
|
-
---
|
|
162
|
-
|
|
163
|
-
## Validation Checklist
|
|
164
|
-
|
|
165
|
-
- [ ] Design system and styling method correctly identified
|
|
166
|
-
- [ ] Mappings created for all necessary UI elements
|
|
167
|
-
- [ ] Design tokens (spacing/colors) prioritized over hardcoded values
|
|
168
|
-
- [ ] Strict enforcement rules passed to next skill
|
|
169
|
-
|
|
170
|
-
---
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
# UI Builder
|
|
175
|
-
|
|
176
|
-
> **Language rule:**
|
|
177
|
-
> Use English for: code, identifiers, file names, architecture terms, technical decisions.
|
|
178
|
-
> Use the user's language for: explanations, questions, summaries, and feedback.
|
|
179
|
-
> The user may write in any language — detect and match it automatically.
|
|
180
|
-
|
|
181
|
-
---
|
|
182
|
-
|
|
183
|
-
## Trigger
|
|
184
|
-
|
|
185
|
-
Activate this skill when:
|
|
186
|
-
- User wants to create a new page, screen, or view
|
|
187
|
-
- User provides a mockup, wireframe, or visual description
|
|
188
|
-
- User asks to "build a layout", "create a dashboard", "make the profile page"
|
|
189
|
-
- Refactoring a large, messy view into a structured layout
|
|
190
|
-
|
|
191
|
-
---
|
|
192
|
-
|
|
193
|
-
## Scope
|
|
194
|
-
|
|
195
|
-
- ✅ Translate requirements into a component hierarchy
|
|
196
|
-
- ✅ Build layouts using Grid, Flexbox, and project styling conventions
|
|
197
|
-
- ✅ Ensure responsive design (mobile-first or desktop-first based on project)
|
|
198
|
-
- ✅ Integrate existing shared components (Buttons, Cards, Inputs) via `design-system` rules
|
|
199
|
-
- ✅ Define placeholders for data and logic (to be filled by `api-integration` or `state-management`)
|
|
200
|
-
|
|
201
|
-
---
|
|
202
|
-
|
|
203
|
-
## Non-goals
|
|
204
|
-
|
|
205
|
-
- ❌ Do NOT build backend APIs
|
|
206
|
-
- ❌ Do NOT implement complex global state (delegate to `state-management`)
|
|
207
|
-
- ❌ Do NOT invent new core UI components if they already exist in the design system
|
|
208
|
-
- ❌ Do NOT write raw HTML (`<button>`) if a shared component (`<Button>`) exists
|
|
209
|
-
|
|
210
|
-
---
|
|
211
|
-
|
|
212
|
-
## Workflow
|
|
213
|
-
|
|
214
|
-
### Phase 1 — Requirement Analysis
|
|
215
|
-
|
|
216
|
-
1. Understand the goal: What screen are we building?
|
|
217
|
-
2. Identify major sections: Header, Sidebar, Main Content, Footer, Modals.
|
|
218
|
-
3. Identify data requirements: What data will populate this view? (Use mock data initially).
|
|
219
|
-
|
|
220
|
-
---
|
|
221
|
-
|
|
222
|
-
### Phase 2 — Component Hierarchy Planning
|
|
223
|
-
|
|
224
|
-
Break the screen down into smaller components.
|
|
225
|
-
**Rule of thumb:** If a section has complex logic or is reusable, it should be a separate component.
|
|
226
|
-
|
|
227
|
-
*Example:*
|
|
228
|
-
```text
|
|
229
|
-
UserProfilePage
|
|
230
|
-
├── ProfileHeader
|
|
231
|
-
│ ├── Avatar
|
|
232
|
-
│ └── UserStats
|
|
233
|
-
├── UserSettingsForm (delegate to form-builder)
|
|
234
|
-
└── UserActivityList
|
|
235
|
-
```
|
|
236
|
-
|
|
237
|
-
---
|
|
238
|
-
|
|
239
|
-
### Phase 3 — Design System Integration
|
|
240
|
-
|
|
241
|
-
*(Relies on output from `design-system` skill)*
|
|
242
|
-
Identify which existing components will be used for each part of the hierarchy.
|
|
243
|
-
|
|
244
|
-
- Buttons → `<Button>`
|
|
245
|
-
- Layouts → `<Container>`, `<Grid>`
|
|
246
|
-
- Typography → `<Typography variant="h2">` or Tailwind text classes
|
|
247
|
-
|
|
248
|
-
---
|
|
249
|
-
|
|
250
|
-
### Phase 4 — Implementation
|
|
251
|
-
|
|
252
|
-
Write the code.
|
|
253
|
-
1. Build the layout skeleton first (Flexbox/Grid).
|
|
254
|
-
2. Add static/mock data to visualize the structure.
|
|
255
|
-
3. Apply styling for layout, spacing, and typography.
|
|
256
|
-
4. Ensure responsive behavior (e.g., stack columns on mobile).
|
|
257
|
-
|
|
258
|
-
---
|
|
259
|
-
|
|
260
|
-
### Phase 5 — Validation
|
|
261
|
-
|
|
262
|
-
- [ ] Does it match the requirements?
|
|
263
|
-
- [ ] Is it responsive?
|
|
264
|
-
- [ ] Does it strictly use the design system?
|
|
265
|
-
- [ ] Is the code clean and well-structured (not one giant file)?
|
|
266
|
-
|
|
267
|
-
---
|
|
268
|
-
|
|
269
|
-
## Decision Tree
|
|
270
|
-
|
|
271
|
-
```
|
|
272
|
-
Is a section of the UI highly complex or forms a distinct logical unit?
|
|
273
|
-
├── Yes → Extract it into its own component file (e.g., `ProfileHeader.tsx`)
|
|
274
|
-
└── No → Keep it inline in the main layout file for now
|
|
275
|
-
|
|
276
|
-
Does a required base component (e.g., DatePicker) exist in the project?
|
|
277
|
-
├── Yes → Import and use it
|
|
278
|
-
└── No → Use a standard HTML fallback or instruct `component-generator` to build it later
|
|
279
|
-
|
|
280
|
-
Is the UI data-heavy (like a complex form or table)?
|
|
281
|
-
├── Yes → Delegate specific sections to `form-builder` or `table-crud-generator`
|
|
282
|
-
└── No → Build it fully within `ui-builder`
|
|
283
|
-
```
|
|
284
|
-
|
|
285
|
-
---
|
|
286
|
-
|
|
287
|
-
## Output Format
|
|
288
|
-
|
|
289
|
-
```
|
|
290
|
-
🎨 UI Builder Summary
|
|
291
|
-
─────────────────────────────────────────────────
|
|
292
|
-
Screen: [Name of the screen/view built]
|
|
293
|
-
|
|
294
|
-
Component Hierarchy:
|
|
295
|
-
[Tree showing parent and child components]
|
|
296
|
-
|
|
297
|
-
📁 Files Created/Modified:
|
|
298
|
-
✅ [path/to/Page.tsx]
|
|
299
|
-
✅ [path/to/SubComponent.tsx]
|
|
300
|
-
|
|
301
|
-
🛠️ Implementation Details:
|
|
302
|
-
- Responsive: [Yes - describe breakpoints used]
|
|
303
|
-
- Mock Data: [Added placeholders for API integration]
|
|
304
|
-
|
|
305
|
-
🔗 Next Steps:
|
|
306
|
-
→ Need to wire up API? Route to `api-integration`.
|
|
307
|
-
→ Need complex state? Route to `state-management`.
|
|
308
|
-
```
|
|
309
|
-
|
|
310
|
-
---
|
|
311
|
-
|
|
312
|
-
## Examples
|
|
313
|
-
|
|
314
|
-
See `examples/` folder.
|
|
315
|
-
|
|
316
|
-
---
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
# Component Generator
|
|
321
|
-
|
|
322
|
-
> **Language rule:**
|
|
323
|
-
> Use English for: code, identifiers, file names, architecture terms, technical decisions.
|
|
324
|
-
> Use the user's language for: explanations, questions, summaries, and feedback.
|
|
325
|
-
> The user may write in any language — detect and match it automatically.
|
|
326
|
-
|
|
327
|
-
---
|
|
328
|
-
|
|
329
|
-
## Trigger
|
|
330
|
-
|
|
331
|
-
Activate this skill when:
|
|
332
|
-
- User says "create a Card component", "make a reusable Button", "extract this into a component"
|
|
333
|
-
- A larger skill (`ui-builder`, `form-builder`) requires a new isolated UI piece to be built
|
|
334
|
-
- Refactoring a large component by splitting it into smaller, reusable parts
|
|
335
|
-
|
|
336
|
-
---
|
|
337
|
-
|
|
338
|
-
## Scope
|
|
339
|
-
|
|
340
|
-
- ✅ Generate a single, focused component (e.g., `UserCard`, `StatBadge`, `Dropdown`)
|
|
341
|
-
- ✅ Define strict, explicit types/interfaces for all props
|
|
342
|
-
- ✅ Implement component variants (e.g., `size`, `color`, `variant`) if needed
|
|
343
|
-
- ✅ Follow project styling rules (Tailwind, CSS Modules, Styled Components)
|
|
344
|
-
- ✅ Ensure accessibility (ARIA attributes, semantic HTML) where applicable
|
|
345
|
-
|
|
346
|
-
---
|
|
347
|
-
|
|
348
|
-
## Non-goals
|
|
349
|
-
|
|
350
|
-
- ❌ Do NOT build full pages or complex screens (delegate to `ui-builder`)
|
|
351
|
-
- ❌ Do NOT handle complex business logic or data fetching inside a dumb/presentational component
|
|
352
|
-
- ❌ Do NOT overwrite existing components without explicit instruction
|
|
353
|
-
|
|
354
|
-
---
|
|
355
|
-
|
|
356
|
-
## Workflow
|
|
357
|
-
|
|
358
|
-
### Phase 1 — Component Design
|
|
359
|
-
|
|
360
|
-
Determine:
|
|
361
|
-
1. **Name:** PascalCase (e.g., `ProductCard`).
|
|
362
|
-
2. **Responsibility:** What exactly does this component do? Keep it single-responsibility.
|
|
363
|
-
3. **Props:** What data does it need from its parent? What events does it emit?
|
|
364
|
-
|
|
365
|
-
---
|
|
366
|
-
|
|
367
|
-
### Phase 2 — API (Props) Definition
|
|
368
|
-
|
|
369
|
-
Draft the interface first.
|
|
370
|
-
- Make required props explicit.
|
|
371
|
-
- Use optional props (`?`) for variants or non-essential data.
|
|
372
|
-
- Avoid `any`.
|
|
373
|
-
|
|
374
|
-
*Example:*
|
|
375
|
-
```typescript
|
|
376
|
-
interface ProductCardProps {
|
|
377
|
-
id: string;
|
|
378
|
-
title: string;
|
|
379
|
-
price: number;
|
|
380
|
-
imageUrl?: string;
|
|
381
|
-
isAvailable?: boolean;
|
|
382
|
-
onAddToCart: (id: string) => void;
|
|
383
|
-
}
|
|
384
|
-
```
|
|
385
|
-
|
|
386
|
-
---
|
|
387
|
-
|
|
388
|
-
### Phase 3 — Implementation
|
|
389
|
-
|
|
390
|
-
Write the component code.
|
|
391
|
-
1. Use destructuring for props.
|
|
392
|
-
2. Apply styling based on `design-system` rules.
|
|
393
|
-
3. Handle empty/null states (e.g., if `imageUrl` is missing, show a placeholder).
|
|
394
|
-
4. Add basic interactivity (e.g., calling `onAddToCart` when clicked).
|
|
395
|
-
|
|
396
|
-
---
|
|
397
|
-
|
|
398
|
-
### Phase 4 — Validation
|
|
399
|
-
|
|
400
|
-
- [ ] Are all props typed correctly?
|
|
401
|
-
- [ ] Is it truly reusable (no hardcoded data)?
|
|
402
|
-
- [ ] Does it use project design tokens?
|
|
403
|
-
- [ ] Is it exported correctly according to project conventions (default vs. named export)?
|
|
404
|
-
|
|
405
|
-
---
|
|
406
|
-
|
|
407
|
-
## Decision Tree
|
|
408
|
-
|
|
409
|
-
```
|
|
410
|
-
Does the component need to manage its own state (e.g., an accordion opening/closing)?
|
|
411
|
-
├── Yes → Add local state (`useState`). Keep it minimal.
|
|
412
|
-
└── No → Make it a pure "dumb" component receiving props.
|
|
413
|
-
|
|
414
|
-
Are there multiple visual styles requested (e.g., primary, secondary, outline)?
|
|
415
|
-
├── Yes → Add a `variant` prop and map it to style classes.
|
|
416
|
-
└── No → Implement the single required style.
|
|
417
|
-
```
|
|
418
|
-
|
|
419
|
-
---
|
|
420
|
-
|
|
421
|
-
## Output Format
|
|
422
|
-
|
|
423
|
-
```
|
|
424
|
-
🧩 Component Generated
|
|
425
|
-
─────────────────────────────────────────────────
|
|
426
|
-
Name: [ComponentName]
|
|
427
|
-
Path: [path/to/Component.tsx]
|
|
428
|
-
|
|
429
|
-
Props Interface:
|
|
430
|
-
[List key props here briefly]
|
|
431
|
-
|
|
432
|
-
Features:
|
|
433
|
-
• [Feature 1, e.g., "Supports primary/secondary variants"]
|
|
434
|
-
• [Feature 2, e.g., "Fully typed with TypeScript"]
|
|
435
|
-
|
|
436
|
-
🔗 Next Steps:
|
|
437
|
-
Component is ready to be imported into your layout.
|
|
438
|
-
```
|
|
439
|
-
|
|
440
|
-
---
|
|
441
|
-
|
|
442
|
-
## Examples
|
|
443
|
-
|
|
444
|
-
See `examples/` folder.
|
|
1
|
+
---
|
|
2
|
+
name: qk-ui-system-builder
|
|
3
|
+
version: 3.0.0
|
|
4
|
+
updated: 2026-07-02
|
|
5
|
+
description: Build and maintain Design Systems, Token extraction, and shared UI libraries.
|
|
6
|
+
category: frontend
|
|
7
|
+
priority: medium
|
|
8
|
+
tags: [design-system, tokens, shared-components, storybook]
|
|
9
|
+
platforms: [claude-code, cursor, windsurf, gemini-cli]
|
|
10
|
+
trigger: User asks to create a shared component (Button, Input) or extract a color palette.
|
|
11
|
+
inputs: [UI Requirements]
|
|
12
|
+
outputs: [Shared Components, Design Tokens]
|
|
13
|
+
allowed_tools: [write_to_file, read_file]
|
|
14
|
+
pipeline: [analyze, implement, engineering-standard, validate, complete]
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
# 🛠️ qk-ui-system-builder - Standard Operating Procedure
|
|
18
|
+
|
|
19
|
+
> **Goal:** Đảm bảo tính Nhất quán Giao diện (Consistency). Quản lý Design Tokens và xây dựng thư viện Shared Components.
|
|
20
|
+
|
|
21
|
+
## 🔄 1. Chain of Thought (SOP)
|
|
22
|
+
1. **Analyze (Token Extraction):**
|
|
23
|
+
- Extract raw colors and typography into CSS Variables or Tailwind config.
|
|
24
|
+
2. **Implement (Component Factory):**
|
|
25
|
+
- Build foundational components (`<Button>`, `<TextInput>`) using generic polymorphic props if possible (e.g., `as="a"` or `as="button"`).
|
|
26
|
+
3. **Validate (Story/Documentation):**
|
|
27
|
+
- Ensure every variation (primary, secondary, disabled) is accounted for.
|
|
28
|
+
|
|
29
|
+
## 🛡️ 2. Constraints & Rules
|
|
30
|
+
- **Stateless:** System UI components should NEVER have their own backend logic or hardcoded strings.
|
|
31
|
+
- **Extendable:** Always allow users to pass `className` and `...props` to the base element.
|
|
32
|
+
|
|
33
|
+
## 🤝 3. Handoff Pipeline
|
|
34
|
+
1. `engineering-standard`: Verify naming conventions.
|
|
35
|
+
2. `complete`: Output the Design System Report.
|
|
36
|
+
|
|
37
|
+
## 📝 4. Output Format
|
|
38
|
+
Vui lòng trả kết quả bằng Tiếng Việt.
|
|
39
|
+
- **Tóm tắt (Summary):** Thư viện Component vừa cập nhật.
|
|
40
|
+
- **Chi tiết (Changes):** Liệt kê các variant (màu sắc, kích cỡ).
|
|
@@ -1,33 +1,59 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: qk-validation-gate
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
1. **
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
1
|
+
---
|
|
2
|
+
name: qk-validation-gate
|
|
3
|
+
version: 3.0.0
|
|
4
|
+
updated: 2026-07-02
|
|
5
|
+
description: Mandatory Quality Gate (Test, Lint, Security).
|
|
6
|
+
category: validation
|
|
7
|
+
priority: critical
|
|
8
|
+
tags: [ci, testing, linting, security, gatekeeper]
|
|
9
|
+
platforms: [claude-code, cursor, windsurf, gemini-cli]
|
|
10
|
+
trigger: Triggered automatically as the final step in a pipeline, or manually when the user asks to "check the code".
|
|
11
|
+
inputs: [Modified files]
|
|
12
|
+
outputs: [Validation Report (Pass/Fail)]
|
|
13
|
+
allowed_tools: [run_command, grep_search]
|
|
14
|
+
pipeline: [analyze, validate, complete]
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
# 🛠️ qk-validation-gate - Standard Operating Procedure
|
|
18
|
+
|
|
19
|
+
> **Goal:** Hoạt động như một "Người Gác Cổng" (Gatekeeper). Đảm bảo không có lỗi cú pháp, vi phạm bảo mật, hoặc code rác nào lọt qua trước khi báo cáo hoàn thành.
|
|
20
|
+
|
|
21
|
+
## 🔄 1. Chain of Thought (SOP)
|
|
22
|
+
1. **Analyze (Static Sweep):**
|
|
23
|
+
- Use `grep_search` to scan modified files for garbage code: `console.log(`, `debugger;`, `// TODO`, `@ts-ignore`.
|
|
24
|
+
- Scan for hardcoded secrets: `API_KEY=`, `Bearer ey...`.
|
|
25
|
+
2. **Validate (Automated Checks):**
|
|
26
|
+
- Run the Linter: `npm run lint` or `eslint .`.
|
|
27
|
+
- Run the Type Checker: `tsc --noEmit`.
|
|
28
|
+
- Run the Tests: `npm run test` (if applicable).
|
|
29
|
+
3. **Complete (Report & Auto-fix):**
|
|
30
|
+
- If minor lint errors exist, attempt an auto-fix (`npm run lint --fix`).
|
|
31
|
+
- If tests fail, report the exact failure to the user. Do NOT pretend it passed.
|
|
32
|
+
|
|
33
|
+
## 🛡️ 2. Constraints & Rules
|
|
34
|
+
- **Zero Tolerance:** A failed test or a TypeScript error means the Gate is FAILED. Do not ignore errors.
|
|
35
|
+
- **No Force:** Never use `--force` or `--no-verify` flags.
|
|
36
|
+
- **Real Execution:** You MUST run the actual CLI commands using `run_command` and wait for the output.
|
|
37
|
+
|
|
38
|
+
## 🌳 3. Decision Tree
|
|
39
|
+
```text
|
|
40
|
+
Did `npm run lint` return errors?
|
|
41
|
+
├── YES → Are they auto-fixable?
|
|
42
|
+
│ ├── YES → Run `npm run lint --fix`.
|
|
43
|
+
│ └── NO → Manually fix the file and re-run.
|
|
44
|
+
└── NO → Proceed to Type Checking.
|
|
45
|
+
|
|
46
|
+
Did `tsc --noEmit` return errors?
|
|
47
|
+
├── YES → Fix the TypeScript types. Do NOT use `any` as a shortcut.
|
|
48
|
+
└── NO → GATE PASSED.
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## 🤝 4. Handoff Pipeline
|
|
52
|
+
1. `complete`: Once all checks pass, output the Validation Report.
|
|
53
|
+
|
|
54
|
+
## 📝 5. Output Format
|
|
55
|
+
Vui lòng trả kết quả bằng Tiếng Việt.
|
|
56
|
+
- **Tóm tắt (Summary):** 🛡️ Đã chạy các cổng kiểm định (Lint, Test, Type).
|
|
57
|
+
- **Chi tiết (Changes):** Liệt kê các lệnh đã chạy và kết quả.
|
|
58
|
+
- **Xác thực (Verification):** Ghi rõ PASS (Xanh) hoặc FAIL (Đỏ).
|
|
59
|
+
- **Rủi ro (Risks):** Có phát hiện code rác / comment tạm thời không.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
### 🐛 Báo Cáo Xử Lý Lỗi (Bug Report)
|
|
2
|
+
|
|
3
|
+
**1. Tóm tắt (Summary)**
|
|
4
|
+
- [Tóm tắt ngắn gọn lỗi là gì và đã sửa như thế nào]
|
|
5
|
+
|
|
6
|
+
**2. Chi tiết thay đổi (Changes)**
|
|
7
|
+
- Cập nhật file: `[Tên file]`
|
|
8
|
+
- Xóa/Thêm: [Logic cụ thể đã sửa]
|
|
9
|
+
|
|
10
|
+
**3. Nguyên nhân gốc rễ (Reason / Root Cause)**
|
|
11
|
+
- Tại sao lỗi này xảy ra? (Giải thích kỹ thuật ngắn gọn)
|
|
12
|
+
- Tại sao cách sửa này lại hiệu quả?
|
|
13
|
+
|
|
14
|
+
**4. Xác thực (Verification)**
|
|
15
|
+
- Làm sao để biết lỗi đã được sửa? (Test script hoặc các bước tái hiện)
|
|
16
|
+
|
|
17
|
+
**5. Rủi ro (Risks / Side Effects)**
|
|
18
|
+
- Việc sửa lỗi này có ảnh hưởng đến component nào khác không? (Nếu không, ghi "An toàn").
|
|
19
|
+
|
|
20
|
+
**6. Hành động tiếp theo (Next Action)**
|
|
21
|
+
- [Đề xuất bước tiếp theo: chạy test, deploy, hoặc bàn giao]
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
### 🎨 Báo Cáo Triển Khai Giao Diện (Design / UI Report)
|
|
2
|
+
|
|
3
|
+
**1. Tóm tắt (Summary)**
|
|
4
|
+
- [Tên Component/Trang vừa được code từ Design]
|
|
5
|
+
|
|
6
|
+
**2. Chi tiết thay đổi (Changes)**
|
|
7
|
+
- [Các CSS/Tailwind classes đã sử dụng]
|
|
8
|
+
- [Cấu trúc Semantic HTML]
|
|
9
|
+
|
|
10
|
+
**3. Quyết định UI/UX (Reason / Design Tokens)**
|
|
11
|
+
- [Map màu sắc/font với Design System]
|
|
12
|
+
|
|
13
|
+
**4. Xác thực (Verification)**
|
|
14
|
+
- Responsive: [Đã test trên Mobile/Tablet chưa]
|
|
15
|
+
- Accessibility (a11y): [Đã kiểm tra alt text, aria-label chưa]
|
|
16
|
+
|
|
17
|
+
**5. Rủi ro (Risks / Side Effects)**
|
|
18
|
+
- [Có dùng magic numbers (px cứng) thay vì token không?]
|
|
19
|
+
|
|
20
|
+
**6. Hành động tiếp theo (Next Action)**
|
|
21
|
+
- [Đề xuất: Gửi cho Designer review]
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
### 🚀 Báo Cáo Triển Khai Tính Năng (Feature Report)
|
|
2
|
+
|
|
3
|
+
**1. Tóm tắt (Summary)**
|
|
4
|
+
- [Mô tả ngắn gọn tính năng vừa được phát triển]
|
|
5
|
+
|
|
6
|
+
**2. Chi tiết thay đổi (Changes)**
|
|
7
|
+
- Frontend: [Các component/UI đã thêm]
|
|
8
|
+
- Backend/API: [Các endpoint/schema đã cập nhật]
|
|
9
|
+
|
|
10
|
+
**3. Kiến trúc thiết kế (Reason / Design Reasoning)**
|
|
11
|
+
- [Giải thích lựa chọn state management, hooks, hoặc cấu trúc DB]
|
|
12
|
+
|
|
13
|
+
**4. Xác thực (Verification)**
|
|
14
|
+
- [Cách chạy thử hoặc test case đã pass]
|
|
15
|
+
|
|
16
|
+
**5. Rủi ro (Risks / Side Effects)**
|
|
17
|
+
- [Có ảnh hưởng đến hiệu năng không? Bundle size?]
|
|
18
|
+
|
|
19
|
+
**6. Hành động tiếp theo (Next Action)**
|
|
20
|
+
- [Đề xuất: Chạy E2E test, Handoff sang QA]
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
### 📐 Báo Cáo Rà Soát Mã Nguồn (Code Review Report)
|
|
2
|
+
|
|
3
|
+
**1. Tóm tắt (Summary)**
|
|
4
|
+
- [Scope code đã được review]
|
|
5
|
+
|
|
6
|
+
**2. Vấn đề phát hiện (Changes / Smells Detected)**
|
|
7
|
+
- Lỗi Naming: [Chi tiết]
|
|
8
|
+
- Vấn đề Clean Code: [Chi tiết]
|
|
9
|
+
- Vi phạm SOLID/DRY: [Chi tiết]
|
|
10
|
+
|
|
11
|
+
**3. Đề xuất & Giải pháp (Reasoning / Fixes Applied)**
|
|
12
|
+
- [Tại sao phải sửa và code đã được refactor như thế nào]
|
|
13
|
+
|
|
14
|
+
**4. Xác thực (Verification)**
|
|
15
|
+
- [Kết quả chạy linter và type-checker sau khi sửa]
|
|
16
|
+
|
|
17
|
+
**5. Rủi ro (Risks / Side Effects)**
|
|
18
|
+
- [Có thể gây break API cũ không?]
|
|
19
|
+
|
|
20
|
+
**6. Hành động tiếp theo (Next Action)**
|
|
21
|
+
- [Đề xuất: Merge nhánh, Handoff sang Validation Gate]
|