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,432 +1,63 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: qk-feature-delivery
|
|
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
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
- ✅ Define the form data schema and validation rules
|
|
65
|
-
- ✅ Manage form state efficiently (preventing unnecessary re-renders)
|
|
66
|
-
- ✅ Map form fields to the project's design system components
|
|
67
|
-
- ✅ Handle submission state (loading, success, error)
|
|
68
|
-
- ✅ Handle validation errors and display them accessibly
|
|
69
|
-
- ✅ Integrate with `api-integration` for submission
|
|
70
|
-
|
|
71
|
-
---
|
|
72
|
-
|
|
73
|
-
## Non-goals
|
|
74
|
-
|
|
75
|
-
- ❌ Do NOT reinvent form state management if a library is present
|
|
76
|
-
- ❌ Do NOT use raw HTML inputs if design system components exist
|
|
77
|
-
- ❌ Do NOT skip validation (client-side validation is required)
|
|
78
|
-
|
|
79
|
-
---
|
|
80
|
-
|
|
81
|
-
## Workflow
|
|
82
|
-
|
|
83
|
-
### Phase 1 — Schema Design
|
|
84
|
-
|
|
85
|
-
Define the exact shape of the data the form collects.
|
|
86
|
-
Determine validation rules for each field (required, min length, email format, etc.).
|
|
87
|
-
|
|
88
|
-
If the project uses Zod, Yup, or Joi, define the schema first.
|
|
89
|
-
*Example:*
|
|
90
|
-
```typescript
|
|
91
|
-
const userFormSchema = z.object({
|
|
92
|
-
email: z.string().email("Invalid email address"),
|
|
93
|
-
password: z.string().min(8, "Password must be at least 8 characters"),
|
|
94
|
-
});
|
|
95
|
-
```
|
|
96
|
-
|
|
97
|
-
---
|
|
98
|
-
|
|
99
|
-
### Phase 2 — State Management Selection
|
|
100
|
-
|
|
101
|
-
Check project dependencies for form libraries:
|
|
102
|
-
1. `react-hook-form` (Preferred for React)
|
|
103
|
-
2. `formik`
|
|
104
|
-
3. Custom Vue/Svelte bindings
|
|
105
|
-
4. Standard controlled components (`useState`) if no library exists and form is simple.
|
|
106
|
-
|
|
107
|
-
---
|
|
108
|
-
|
|
109
|
-
### Phase 3 — Component Assembly
|
|
110
|
-
|
|
111
|
-
1. Set up the form wrapper and submission handler.
|
|
112
|
-
2. For each field in the schema, render the appropriate UI component (from `design-system`).
|
|
113
|
-
3. Connect the UI component to the form state (register / Controller).
|
|
114
|
-
4. Render error messages below fields if validation fails.
|
|
115
|
-
|
|
116
|
-
---
|
|
117
|
-
|
|
118
|
-
### Phase 4 — Submission & Integration
|
|
119
|
-
|
|
120
|
-
- Add `isLoading` state to the submit button.
|
|
121
|
-
- Disable submit button during submission.
|
|
122
|
-
- On success: Show success message or redirect, and optionally reset form.
|
|
123
|
-
- On error: Display backend error messages (toast or form-level alert).
|
|
124
|
-
|
|
125
|
-
---
|
|
126
|
-
|
|
127
|
-
## Decision Tree
|
|
128
|
-
|
|
129
|
-
```
|
|
130
|
-
Does the project use a validation library (Zod, Yup)?
|
|
131
|
-
├── Yes → Use it to define schema and pass to form resolver
|
|
132
|
-
└── No → Implement standard HTML5 validation or simple manual validation logic
|
|
133
|
-
|
|
134
|
-
Is it a complex multi-step form (wizard)?
|
|
135
|
-
├── Yes → Break into sub-components, use global or lifted state for form data
|
|
136
|
-
└── No → Handle state locally within the single form component
|
|
137
|
-
```
|
|
138
|
-
|
|
139
|
-
---
|
|
140
|
-
|
|
141
|
-
## Output Format
|
|
142
|
-
|
|
143
|
-
```
|
|
144
|
-
📝 Form Built
|
|
145
|
-
─────────────────────────────────────────────────
|
|
146
|
-
Name: [FormName]
|
|
147
|
-
Schema: [Zod / Yup / Manual]
|
|
148
|
-
Library: [React Hook Form / Formik / Native]
|
|
149
|
-
|
|
150
|
-
Fields Implemented:
|
|
151
|
-
✅ email (string, required, email)
|
|
152
|
-
✅ password (string, required, min: 8)
|
|
153
|
-
|
|
154
|
-
Integration:
|
|
155
|
-
- Validation: Client-side wired up
|
|
156
|
-
- Submission: Wired to `[submitFunction]`
|
|
157
|
-
- Loading UI: Handled on submit button
|
|
158
|
-
|
|
159
|
-
🔗 Next Steps:
|
|
160
|
-
Make sure the API endpoint is ready to accept this payload.
|
|
161
|
-
```
|
|
162
|
-
|
|
163
|
-
---
|
|
164
|
-
|
|
165
|
-
## Validation Checklist
|
|
166
|
-
|
|
167
|
-
- [ ] Form uses existing design system components (Inputs, Buttons)
|
|
168
|
-
- [ ] Client-side validation is implemented
|
|
169
|
-
- [ ] Error messages are displayed properly
|
|
170
|
-
- [ ] Loading state disables the submit button
|
|
171
|
-
- [ ] Accessibility: Inputs have associated labels and error ARIA attributes
|
|
172
|
-
|
|
173
|
-
---
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
# Table & CRUD Generator
|
|
178
|
-
|
|
179
|
-
> **Language rule:**
|
|
180
|
-
> Use English for: code, identifiers, file names, architecture terms, technical decisions.
|
|
181
|
-
> Use the user's language for: explanations, questions, summaries, and feedback.
|
|
182
|
-
> The user may write in any language — detect and match it automatically.
|
|
183
|
-
|
|
184
|
-
---
|
|
185
|
-
|
|
186
|
-
## Trigger
|
|
187
|
-
|
|
188
|
-
Activate this skill when:
|
|
189
|
-
- User says "create an admin table", "build a user list", "add data grid"
|
|
190
|
-
- User needs a view to manage a list of entities with CRUD capabilities
|
|
191
|
-
- A feature requires complex data presentation (sorting, filtering, pagination)
|
|
192
|
-
|
|
193
|
-
---
|
|
194
|
-
|
|
195
|
-
## Scope
|
|
196
|
-
|
|
197
|
-
- ✅ Generate a data table using design system components or libraries (e.g., TanStack Table)
|
|
198
|
-
- ✅ Implement client-side or server-side pagination, sorting, and filtering
|
|
199
|
-
- ✅ Add UI actions for Create, Edit, and Delete (modals or routing)
|
|
200
|
-
- ✅ Integrate with `api-integration` hooks for data fetching and mutations
|
|
201
|
-
- ✅ Handle loading, error, and empty states gracefully
|
|
202
|
-
|
|
203
|
-
---
|
|
204
|
-
|
|
205
|
-
## Non-goals
|
|
206
|
-
|
|
207
|
-
- ❌ Do NOT build the backend API for the CRUD operations (assume they exist or delegate)
|
|
208
|
-
- ❌ Do NOT use raw `<table>` tags if a powerful data-grid library is already installed
|
|
209
|
-
|
|
210
|
-
---
|
|
211
|
-
|
|
212
|
-
## Workflow
|
|
213
|
-
|
|
214
|
-
### Phase 1 — Data Model & Requirements
|
|
215
|
-
|
|
216
|
-
1. Understand the entity (e.g., `User`, `Product`).
|
|
217
|
-
2. Identify columns to display.
|
|
218
|
-
3. Determine operations needed (e.g., just Read/Delete, or full CRUD).
|
|
219
|
-
4. Decide on Pagination strategy: Server-side (URL params) or Client-side (in-memory).
|
|
220
|
-
|
|
221
|
-
---
|
|
222
|
-
|
|
223
|
-
### Phase 2 — Table Component Setup
|
|
224
|
-
|
|
225
|
-
1. Check for table libraries (e.g., `@tanstack/react-table`, MUI DataGrid, AntD Table).
|
|
226
|
-
2. Define column definitions (headers, accessor keys, cell formatters).
|
|
227
|
-
3. Set up the table UI wrapper.
|
|
228
|
-
|
|
229
|
-
---
|
|
230
|
-
|
|
231
|
-
### Phase 3 — Data Integration
|
|
232
|
-
|
|
233
|
-
Connect to the state/API layer (e.g., React Query).
|
|
234
|
-
- `useQuery` for fetching the list. Pass pagination/sorting state.
|
|
235
|
-
- Handle `isLoading` → show skeleton or spinner.
|
|
236
|
-
- Handle empty data → show empty state component.
|
|
237
|
-
|
|
238
|
-
---
|
|
239
|
-
|
|
240
|
-
### Phase 4 — CRUD Actions
|
|
241
|
-
|
|
242
|
-
Implement actions (usually in an "Actions" column or toolbar):
|
|
243
|
-
- **Create:** Button opening a Modal (delegate to `form-builder`) or routing to `/new`.
|
|
244
|
-
- **Edit:** Button opening an Edit Modal or routing to `/edit/:id`.
|
|
245
|
-
- **Delete:** Button opening a confirmation dialog, calling delete mutation on confirm.
|
|
246
|
-
|
|
247
|
-
---
|
|
248
|
-
|
|
249
|
-
## Decision Tree
|
|
250
|
-
|
|
251
|
-
```
|
|
252
|
-
Is the dataset large (requires backend pagination)?
|
|
253
|
-
├── Yes → Implement Server-side pagination (sync state with URL search params)
|
|
254
|
-
└── No → Implement Client-side pagination (fetch all once, slice in UI)
|
|
255
|
-
|
|
256
|
-
Does the project use TanStack Table (React Table)?
|
|
257
|
-
├── Yes → Use `useReactTable` to manage table state and column definitions
|
|
258
|
-
└── No → Use the project's specific UI library table component
|
|
259
|
-
```
|
|
260
|
-
|
|
261
|
-
---
|
|
262
|
-
|
|
263
|
-
## Output Format
|
|
264
|
-
|
|
265
|
-
```
|
|
266
|
-
📊 Table & CRUD Generated
|
|
267
|
-
─────────────────────────────────────────────────
|
|
268
|
-
Entity: [Entity Name]
|
|
269
|
-
Features: [Pagination (Server), Sorting, CRUD actions]
|
|
270
|
-
|
|
271
|
-
Components Created:
|
|
272
|
-
✅ [Entity]Table.tsx
|
|
273
|
-
✅ [Entity]Columns.tsx
|
|
274
|
-
✅ DeleteConfirmModal.tsx
|
|
275
|
-
|
|
276
|
-
Integration:
|
|
277
|
-
- Fetching: Linked to `use[Entity]List` hook
|
|
278
|
-
- Mutations: Linked to Create/Update/Delete hooks
|
|
279
|
-
|
|
280
|
-
🔗 Next Steps:
|
|
281
|
-
If Create/Edit forms are needed, delegate to `form-builder`.
|
|
282
|
-
```
|
|
283
|
-
|
|
284
|
-
---
|
|
285
|
-
|
|
286
|
-
## Validation Checklist
|
|
287
|
-
|
|
288
|
-
- [ ] Columns are defined correctly
|
|
289
|
-
- [ ] Loading and empty states are handled
|
|
290
|
-
- [ ] Pagination/sorting state is managed properly
|
|
291
|
-
- [ ] CRUD actions trigger the correct mutations or navigations
|
|
292
|
-
- [ ] Delete actions have a confirmation step
|
|
293
|
-
|
|
294
|
-
---
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
# Frontend Testing
|
|
299
|
-
|
|
300
|
-
> **Language rule:**
|
|
301
|
-
> Use English for: code, identifiers, file names, architecture terms, technical decisions.
|
|
302
|
-
> Use the user's language for: explanations, questions, summaries, and feedback.
|
|
303
|
-
> The user may write in any language — detect and match it automatically.
|
|
304
|
-
|
|
305
|
-
---
|
|
306
|
-
|
|
307
|
-
## Trigger
|
|
308
|
-
|
|
309
|
-
Activate this skill when:
|
|
310
|
-
- User asks to "write tests for this", "add unit tests", or "test this component"
|
|
311
|
-
- Fixing a critical bug where a regression test is required
|
|
312
|
-
- Preparing for a major release and increasing test coverage
|
|
313
|
-
- Project audit flags missing tests for core business logic
|
|
314
|
-
|
|
315
|
-
---
|
|
316
|
-
|
|
317
|
-
## Scope
|
|
318
|
-
|
|
319
|
-
- ✅ **Unit Tests:** Test pure functions, utilities, and custom hooks.
|
|
320
|
-
- ✅ **Component Tests:** Test UI components using React Testing Library (RTL). Focus on user interactions and accessibility roles.
|
|
321
|
-
- ✅ **Mocking:** Mock API calls (MSW, Jest mocks), modules, and timers.
|
|
322
|
-
- ✅ **E2E Tests:** Write Cypress or Playwright tests for critical user flows.
|
|
323
|
-
- ✅ Follow the project's existing testing framework (Jest vs Vitest).
|
|
324
|
-
|
|
325
|
-
---
|
|
326
|
-
|
|
327
|
-
## Non-goals
|
|
328
|
-
|
|
329
|
-
- ❌ Do NOT test implementation details (e.g., checking if a specific state variable changed). Test what the user sees/does.
|
|
330
|
-
- ❌ Do NOT write brittle tests (e.g., querying by CSS class names). Use ARIA roles or `data-testid`.
|
|
331
|
-
- ❌ Do NOT introduce a new testing framework if one already exists.
|
|
332
|
-
|
|
333
|
-
---
|
|
334
|
-
|
|
335
|
-
## Workflow
|
|
336
|
-
|
|
337
|
-
### Phase 1 — Environment Check
|
|
338
|
-
|
|
339
|
-
Identify the testing stack:
|
|
340
|
-
- Runner: Jest or Vitest?
|
|
341
|
-
- DOM: React Testing Library, Vue Test Utils?
|
|
342
|
-
- E2E: Cypress, Playwright?
|
|
343
|
-
- Mocking: MSW (Mock Service Worker), `jest.mock`, `vi.mock`?
|
|
344
|
-
|
|
345
|
-
---
|
|
346
|
-
|
|
347
|
-
### Phase 2 — Strategy & Coverage
|
|
348
|
-
|
|
349
|
-
Determine what needs testing:
|
|
350
|
-
1. **Critical Path:** Can the user complete the primary action?
|
|
351
|
-
2. **Edge Cases:** What happens on API failure? Empty state? Invalid input?
|
|
352
|
-
3. **Accessibility:** Can elements be found by role?
|
|
353
|
-
|
|
354
|
-
---
|
|
355
|
-
|
|
356
|
-
### Phase 3 — Writing the Test (RTL Example)
|
|
357
|
-
|
|
358
|
-
1. **Setup:** Render the component, wrap with necessary providers (Theme, Store, QueryClient).
|
|
359
|
-
2. **Query:** Find elements using `screen.getByRole`, `screen.getByLabelText`, or `screen.getByText`.
|
|
360
|
-
3. **Act:** Simulate user events using `userEvent` (preferred over `fireEvent`).
|
|
361
|
-
4. **Assert:** Expect elements to be in the document, disabled, or display specific text.
|
|
362
|
-
|
|
363
|
-
*Example:*
|
|
364
|
-
```typescript
|
|
365
|
-
it('submits the form when fields are valid', async () => {
|
|
366
|
-
const mockSubmit = vi.fn();
|
|
367
|
-
render(<LoginForm onSubmit={mockSubmit} />);
|
|
368
|
-
|
|
369
|
-
await userEvent.type(screen.getByLabelText(/email/i), 'test@example.com');
|
|
370
|
-
await userEvent.type(screen.getByLabelText(/password/i), 'password123');
|
|
371
|
-
await userEvent.click(screen.getByRole('button', { name: /login/i }));
|
|
372
|
-
|
|
373
|
-
expect(mockSubmit).toHaveBeenCalledWith({
|
|
374
|
-
email: 'test@example.com',
|
|
375
|
-
password: 'password123'
|
|
376
|
-
});
|
|
377
|
-
});
|
|
378
|
-
```
|
|
379
|
-
|
|
380
|
-
---
|
|
381
|
-
|
|
382
|
-
### Phase 4 — Mocking
|
|
383
|
-
|
|
384
|
-
If the component makes API calls:
|
|
385
|
-
- Prefer MSW (Mock Service Worker) for network-level mocking.
|
|
386
|
-
- Fallback: Mock the API service module or custom hook.
|
|
387
|
-
|
|
388
|
-
---
|
|
389
|
-
|
|
390
|
-
## Decision Tree
|
|
391
|
-
|
|
392
|
-
```
|
|
393
|
-
Are we testing a pure function or utility?
|
|
394
|
-
├── Yes → Write a standard Unit Test (Jest/Vitest).
|
|
395
|
-
└── No → Are we testing a UI component?
|
|
396
|
-
├── Yes → Use React Testing Library (focus on user behavior).
|
|
397
|
-
└── No → Are we testing a full page flow?
|
|
398
|
-
├── Yes → Write an E2E test (Cypress/Playwright) or integration test.
|
|
399
|
-
```
|
|
400
|
-
|
|
401
|
-
---
|
|
402
|
-
|
|
403
|
-
## Output Format
|
|
404
|
-
|
|
405
|
-
```
|
|
406
|
-
🧪 Test Suite Generated
|
|
407
|
-
─────────────────────────────────────────────────
|
|
408
|
-
Target: [ComponentName or Utility]
|
|
409
|
-
Type: [Unit / Component / E2E]
|
|
410
|
-
Framework: [Vitest + RTL]
|
|
411
|
-
|
|
412
|
-
Tests Added:
|
|
413
|
-
✅ renders correctly in default state
|
|
414
|
-
✅ displays error message on API failure
|
|
415
|
-
✅ successfully submits user data
|
|
416
|
-
|
|
417
|
-
Mocking Used:
|
|
418
|
-
- MSW handlers for `/api/users`
|
|
419
|
-
- vi.fn() for onSubmit callback
|
|
420
|
-
|
|
421
|
-
🔗 Next Steps:
|
|
422
|
-
Run `npm run test` to execute the suite.
|
|
423
|
-
```
|
|
424
|
-
|
|
425
|
-
---
|
|
426
|
-
|
|
427
|
-
## Validation Checklist
|
|
428
|
-
|
|
429
|
-
- [ ] Queries use accessible methods (`getByRole`, `getByLabelText`)
|
|
430
|
-
- [ ] Events simulated with `userEvent` (if applicable)
|
|
431
|
-
- [ ] External dependencies/APIs are properly mocked
|
|
432
|
-
- [ ] Tests verify observable behavior, not internal state
|
|
1
|
+
---
|
|
2
|
+
name: qk-feature-delivery
|
|
3
|
+
version: 3.0.0
|
|
4
|
+
updated: 2026-07-02
|
|
5
|
+
description: Develop new features end-to-end (Frontend & Backend).
|
|
6
|
+
category: engineering
|
|
7
|
+
priority: high
|
|
8
|
+
tags: [feature, development, e2e, ui, api]
|
|
9
|
+
platforms: [claude-code, cursor, windsurf, gemini-cli]
|
|
10
|
+
trigger: User asks to create a new page, component, or endpoint.
|
|
11
|
+
inputs: [Feature requirements, Design/Mockup (optional)]
|
|
12
|
+
outputs: [Implemented code, Test cases]
|
|
13
|
+
allowed_tools: [run_command, read_file, write_to_file, grep_search]
|
|
14
|
+
pipeline: [analyze, implement, engineering-standard, validate, complete]
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
# 🛠️ qk-feature-delivery - Standard Operating Procedure
|
|
18
|
+
|
|
19
|
+
> **Goal:** Phát triển một tính năng mới hoàn chỉnh, từ giao diện (Frontend) đến API (Backend) và Cơ sở dữ liệu (nếu có).
|
|
20
|
+
|
|
21
|
+
## 🔄 1. Chain of Thought (SOP)
|
|
22
|
+
1. **Analyze (Requirements Gathering):**
|
|
23
|
+
- Read the user's requirements.
|
|
24
|
+
- Break down the feature into sub-tasks (e.g., Schema -> API -> UI Component -> Integration).
|
|
25
|
+
2. **Plan (Architecture & Design):**
|
|
26
|
+
- Identify if you need to load specific knowledge files (e.g., `knowledge/frontend/react.md`).
|
|
27
|
+
- Define data interfaces (TypeScript Types/Interfaces) first.
|
|
28
|
+
3. **Execute (Implementation):**
|
|
29
|
+
- Build the backend/API mock first (if applicable).
|
|
30
|
+
- Build the UI component and bind the data.
|
|
31
|
+
4. **Verify (Validation):**
|
|
32
|
+
- Check if the UI is responsive.
|
|
33
|
+
- Ensure the API handles edge cases (empty states, loading, error).
|
|
34
|
+
|
|
35
|
+
## 🛡️ 2. Constraints & Rules
|
|
36
|
+
- **Contract First:** Always define the Type/Interface contract before writing the implementation logic.
|
|
37
|
+
- **Component Reusability:** Do not create a new Button or Input if a Shared Component already exists in `src/components/shared/`.
|
|
38
|
+
- **DRY (Don't Repeat Yourself):** Extract inline styles or duplicate logic into hooks/utilities.
|
|
39
|
+
|
|
40
|
+
## 🌳 3. Decision Tree
|
|
41
|
+
```text
|
|
42
|
+
Does the feature require Backend API changes?
|
|
43
|
+
├── YES → Start with Database Schema/Types -> API Route -> UI Integration.
|
|
44
|
+
└── NO → Is it a purely visual UI component?
|
|
45
|
+
├── YES → Load UI/Design tokens and implement.
|
|
46
|
+
└── NO (Stateful) → Load `knowledge/frontend/react.md` to design the State Management strategy.
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
## 🤝 4. Handoff Pipeline
|
|
50
|
+
After implementing the feature, map to the pipeline:
|
|
51
|
+
1. `engineering-standard`: Ensure naming conventions and file size limits are respected.
|
|
52
|
+
2. `validate`: Run tests and format the code.
|
|
53
|
+
3. `complete`: Output the final report.
|
|
54
|
+
|
|
55
|
+
## 📝 5. Output Format
|
|
56
|
+
Vui lòng báo cáo lại bằng Tiếng Việt với cấu trúc tương tự `templates/bug-report.md` nhưng thay đổi tiêu đề thành:
|
|
57
|
+
### 🚀 Báo Cáo Triển Khai Tính Năng (Feature Report)
|
|
58
|
+
- **Tóm tắt (Summary):** Tính năng gì đã được làm.
|
|
59
|
+
- **Chi tiết (Changes):** Liệt kê các file tạo mới / chỉnh sửa.
|
|
60
|
+
- **Kiến trúc (Reasoning):** Giải thích quyết định thiết kế State/API.
|
|
61
|
+
- **Xác thực (Verification):** Các bước để user test thử.
|
|
62
|
+
- **Rủi ro (Risks):** Có làm chậm hệ thống hay bundle size không.
|
|
63
|
+
- **Hành động tiếp (Next Action):** ...
|
package/skills/qk-help/SKILL.md
CHANGED
|
@@ -1,95 +1,37 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: qk-help
|
|
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
|
-
# 📚 Cẩm nang AI Developer Skill OS
|
|
40
|
-
|
|
41
|
-
> **Nhiệm vụ của bạn (AI):** Khi người dùng gọi lệnh `./qk-help`, hãy xuất ra màn hình (bằng tiếng Việt) danh sách các kỹ năng phân theo nhóm và các Mẹo sử dụng (Pro-tips) dưới đây một cách sinh động, dễ đọc (dùng markdown, in đậm, emoji). Không cần phân tích code, chỉ đóng vai trò là "Sách hướng dẫn sử dụng".
|
|
42
|
-
|
|
43
|
-
---
|
|
44
|
-
|
|
45
|
-
## 🎯 1. Danh sách Kỹ năng (Skills Directory)
|
|
46
|
-
|
|
47
|
-
Dưới đây là các kỹ năng chính bạn có thể gọi bằng cách gõ `./qk-[tên-kỹ-năng]`:
|
|
48
|
-
|
|
49
|
-
### 🎨 Frontend (Giao diện)
|
|
50
|
-
- **`qk-ui-builder`**: Xây dựng UI, Layout, Component, Modal phức tạp.
|
|
51
|
-
- **`qk-table-crud-generator`**: Chuyên vẽ bảng danh sách (Table), phân trang, lọc và form Thêm/Sửa/Xóa.
|
|
52
|
-
- **`qk-form-builder`**: Chuyên làm Form nhập liệu, validate (Zod/Yup).
|
|
53
|
-
- **`qk-component-generator`**: Tạo Component độc lập, tái sử dụng (Button, Input, Card).
|
|
54
|
-
- **`qk-state-management`**: Xử lý Redux, Zustand, React Query.
|
|
55
|
-
- **`qk-frontend-debug`**: Bắt bệnh vỡ layout, infinite re-render, lỗi Hydration.
|
|
56
|
-
- **`qk-frontend-performance`**: Tối ưu tốc độ, chống re-render thừa.
|
|
57
|
-
- **`qk-frontend-architecture`**: Tư vấn kiến trúc thư mục Frontend.
|
|
58
|
-
- **`qk-frontend-testing`**: Viết Unit Test / E2E Test cho Frontend.
|
|
59
|
-
- **`qk-accessibility-audit`**: Sửa lỗi a11y, hỗ trợ Screen reader.
|
|
60
|
-
|
|
61
|
-
### ⚙️ Engineering & Integration (Tích hợp)
|
|
62
|
-
- **`qk-api-integration`**: [Cực mạnh] Bóc tách tài liệu API (Curl, Postman) -> Gen Type, Service, Hook -> (Tùy chọn) Ốp thẳng vào UI.
|
|
63
|
-
- **`qk-refactor`**: Tối ưu, dọn dẹp mã nguồn sạch sẽ.
|
|
64
|
-
- **`qk-bug-fix`**: Chẩn đoán lỗi sâu và sửa an toàn.
|
|
65
|
-
- **`qk-project-audit`**: Quét toàn bộ dự án tìm nợ kỹ thuật.
|
|
66
|
-
- **`qk-git-engineer`**: Viết Commit / PR chuẩn Conventional.
|
|
67
|
-
- **`qk-migration`**: Nâng cấp version framework / thư viện.
|
|
68
|
-
- **`qk-agent-orchestrator`**: Kiến trúc sư, lên plan phân rã task lớn.
|
|
69
|
-
- **`qk-context-manager`**: Tóm tắt kiến trúc dự án.
|
|
70
|
-
|
|
71
|
-
### 🗄️ Backend (Máy chủ)
|
|
72
|
-
- **`qk-database-engineer`**: Thiết kế Schema, ORM (Prisma/Drizzle), Migration.
|
|
73
|
-
- **`qk-backend-architecture`**: Setup kiến trúc Backend (Node/Nest/Python).
|
|
74
|
-
- **`qk-auth-security`**: Phân quyền RBAC, JWT, OAuth.
|
|
75
|
-
- **`qk-deployment`**: Viết Dockerfile, CI/CD Pipeline.
|
|
76
|
-
|
|
77
|
-
---
|
|
78
|
-
|
|
79
|
-
## 💡 2. Mẹo sử dụng Nâng cao (Pro-Tips)
|
|
80
|
-
|
|
81
|
-
### Mẹo 1: Kết hợp Kỹ năng (Skill Chaining) 🔗
|
|
82
|
-
Đừng bắt AI làm từ A-Z bằng 1 câu prompt. Hãy gọi liên hoàn:
|
|
83
|
-
> *"Hãy dùng `./qk-api-integration` để bóc tách API này thành hook React Query. Sau đó dùng `./qk-table-crud-generator` vẽ cái Bảng hiển thị danh sách tích hợp hook đó."*
|
|
84
|
-
|
|
85
|
-
### Mẹo 2: Chế độ "Một phát ăn ngay" (End-to-End) 🚀
|
|
86
|
-
Nếu bạn đã có sẵn 1 màn hình UI (chỉ thiếu data), hãy ép `qk-api-integration` làm End-to-End:
|
|
87
|
-
> *"./qk-api-integration Dưới đây là API Get Profile. Hãy khai báo Type, viết Hook và TÍCH HỢP THẲNG LUÔN vào file \`Profile.tsx\` đang mở."*
|
|
88
|
-
|
|
89
|
-
### Mẹo 3: Truyền tham số ép buộc (Arguments) 🎯
|
|
90
|
-
Bạn có thể ép AI dùng công nghệ bạn muốn bằng cách thêm \`--tham_số\`:
|
|
91
|
-
> *"./qk-ui-builder --fw=react --css=tailwind Hãy vẽ màn hình Đăng nhập."*
|
|
92
|
-
|
|
93
|
-
### Mẹo 4: Nhờ "Kiến trúc sư" phân việc 🧠
|
|
94
|
-
Nếu bạn có một tính năng quá lớn (ví dụ: Làm tính năng Giỏ Hàng), đừng tự chia việc, hãy gọi:
|
|
95
|
-
> *"./qk-agent-orchestrator Tôi muốn làm tính năng Giỏ hàng. Hãy phân tích và lên kế hoạch gọi các skill \`qk-\` nào cho phù hợp."*
|
|
1
|
+
---
|
|
2
|
+
name: qk-help
|
|
3
|
+
version: 3.0.0
|
|
4
|
+
updated: 2026-07-02
|
|
5
|
+
description: Display the list of available skills and pro-tips.
|
|
6
|
+
category: utilities
|
|
7
|
+
priority: low
|
|
8
|
+
tags: [help, manual, list, tutorial]
|
|
9
|
+
platforms: [claude-code, cursor, windsurf, gemini-cli]
|
|
10
|
+
trigger: User types 'help', asks for a list of skills, or doesn't know how to use the agent.
|
|
11
|
+
inputs: [Help query]
|
|
12
|
+
outputs: [List of skills, Tips]
|
|
13
|
+
allowed_tools: [read_file, list_dir]
|
|
14
|
+
pipeline: [analyze, complete]
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
# 🛠️ qk-help - Standard Operating Procedure
|
|
18
|
+
|
|
19
|
+
> **Goal:** Bản đồ hướng dẫn sử dụng Agent Skills. Giúp User tra cứu nhanh lệnh.
|
|
20
|
+
|
|
21
|
+
## 🔄 1. Chain of Thought (SOP)
|
|
22
|
+
1. **Analyze (Scan):**
|
|
23
|
+
- Read the skills directory to list all available tools.
|
|
24
|
+
2. **Complete (Format):**
|
|
25
|
+
- Format the skills into a neat Markdown table.
|
|
26
|
+
|
|
27
|
+
## 🛡️ 2. Constraints & Rules
|
|
28
|
+
- **Keep it short:** Do not print the entire content of `SKILL.md`. Only print the Name and Description from the metadata.
|
|
29
|
+
|
|
30
|
+
## 🤝 3. Handoff Pipeline
|
|
31
|
+
1. `complete`: Output the Help table.
|
|
32
|
+
|
|
33
|
+
## 📝 4. Output Format
|
|
34
|
+
Vui lòng trả kết quả bằng Tiếng Việt dạng Bảng (Table).
|
|
35
|
+
- **Cột 1:** Tên Skill
|
|
36
|
+
- **Cột 2:** Mô tả ngắn (Tiếng Việt)
|
|
37
|
+
- **Cột 3:** Lệnh kích hoạt (Ví dụ: `@qk-bug-resolution`)
|