ai-developer-skill-os 7.0.2 → 7.5.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.
Files changed (188) hide show
  1. package/.agents/AGENTS.md +44 -88
  2. package/.agents/CHANGELOG.md +69 -0
  3. package/.agents/LICENSE +21 -0
  4. package/.agents/README.md +59 -0
  5. package/.agents/_template/BEHAVIOR_SPEC.md +96 -0
  6. package/.agents/_template/examples/example-en.md +49 -0
  7. package/.agents/_template/examples/example-vi.md +49 -0
  8. package/.agents/docs/CHI_TIET_SKILLS.md +125 -0
  9. package/.agents/docs/GOVERNANCE.md +40 -0
  10. package/.agents/docs/HUONG_DAN_SU_DUNG.md +120 -0
  11. package/.agents/docs/SPEC.md +87 -0
  12. package/.agents/docs/adr/0001-intent-based-architecture.md +19 -0
  13. package/.agents/docs/adr/0002-kernel-freeze.md +21 -0
  14. package/.agents/docs/adr/0003-risk-based-verification.md +20 -0
  15. package/.agents/docs/adr/0004-progressive-evidence.md +19 -0
  16. package/.agents/docs/skill-classification.md +25 -0
  17. package/.agents/skills/qk-access-policy/SKILL.md +179 -0
  18. package/.agents/skills/qk-ai-builder/SKILL.md +215 -0
  19. package/.agents/skills/qk-api-lifecycle/SKILL.md +176 -0
  20. package/.agents/skills/qk-bug-resolution/SKILL.md +307 -0
  21. package/.agents/skills/qk-context-loader/SKILL.md +218 -0
  22. package/.agents/skills/qk-data-lifecycle/SKILL.md +192 -0
  23. package/.agents/skills/qk-db-optimizer/SKILL.md +196 -0
  24. package/.agents/skills/qk-design-to-code/SKILL.md +285 -0
  25. package/.agents/skills/qk-docs/SKILL.md +198 -0
  26. package/.agents/skills/qk-engineering-standard/SKILL.md +351 -0
  27. package/.agents/skills/qk-engineering-standard/rules/backend.md +122 -0
  28. package/.agents/skills/qk-engineering-standard/rules/database.md +3 -0
  29. package/.agents/skills/qk-engineering-standard/rules/frontend.md +152 -0
  30. package/.agents/skills/qk-engineering-standard/rules/security.md +3 -0
  31. package/.agents/skills/qk-engineering-standard/rules/testing.md +3 -0
  32. package/.agents/skills/qk-fe-api-integration/SKILL.md +326 -0
  33. package/.agents/skills/qk-feature-delivery/SKILL.md +305 -0
  34. package/.agents/skills/qk-help/SKILL.md +193 -0
  35. package/.agents/skills/qk-orchestrator/SKILL.md +277 -0
  36. package/.agents/skills/qk-orchestrator/references/routing-table.md +77 -0
  37. package/.agents/skills/qk-production-release/SKILL.md +284 -0
  38. package/.agents/skills/qk-project-bootstrap/SKILL.md +234 -0
  39. package/.agents/skills/qk-project-health/SKILL.md +199 -0
  40. package/.agents/skills/qk-project-memory/SKILL.md +172 -0
  41. package/.agents/skills/qk-system-evolution/SKILL.md +281 -0
  42. package/.agents/skills/qk-ui-audit/SKILL.md +314 -0
  43. package/.agents/skills/qk-ui-audit/references/anti-slop-checklist.md +136 -0
  44. package/.agents/skills/qk-ui-system-builder/SKILL.md +221 -0
  45. package/.agents/skills/qk-validation-gate/SKILL.md +359 -0
  46. package/.agents/skills.json +819 -0
  47. package/.github/workflows/ci.yml +1 -1
  48. package/.qk-ai-skill-os/CHANGELOG.md +69 -0
  49. package/.qk-ai-skill-os/LICENSE +21 -0
  50. package/.qk-ai-skill-os/README.md +59 -0
  51. package/.qk-ai-skill-os/_template/BEHAVIOR_SPEC.md +96 -0
  52. package/.qk-ai-skill-os/_template/examples/example-en.md +49 -0
  53. package/.qk-ai-skill-os/_template/examples/example-vi.md +49 -0
  54. package/.qk-ai-skill-os/docs/CHI_TIET_SKILLS.md +125 -0
  55. package/.qk-ai-skill-os/docs/GOVERNANCE.md +40 -0
  56. package/.qk-ai-skill-os/docs/HUONG_DAN_SU_DUNG.md +120 -0
  57. package/.qk-ai-skill-os/docs/SPEC.md +87 -0
  58. package/.qk-ai-skill-os/docs/adr/0001-intent-based-architecture.md +19 -0
  59. package/.qk-ai-skill-os/docs/adr/0002-kernel-freeze.md +21 -0
  60. package/.qk-ai-skill-os/docs/adr/0003-risk-based-verification.md +20 -0
  61. package/.qk-ai-skill-os/docs/adr/0004-progressive-evidence.md +19 -0
  62. package/.qk-ai-skill-os/docs/skill-classification.md +25 -0
  63. package/.qk-ai-skill-os/skills/_archive_old_skills/qk-accessibility-audit/SKILL.md +121 -0
  64. package/.qk-ai-skill-os/skills/_archive_old_skills/qk-agent-orchestrator/SKILL.md +179 -0
  65. package/.qk-ai-skill-os/skills/_archive_old_skills/qk-api-integration/SKILL.md +389 -0
  66. package/.qk-ai-skill-os/skills/_archive_old_skills/qk-auth-security/SKILL.md +96 -0
  67. package/.qk-ai-skill-os/skills/_archive_old_skills/qk-backend-architecture/SKILL.md +125 -0
  68. package/.qk-ai-skill-os/skills/_archive_old_skills/qk-bug-fix/SKILL.md +213 -0
  69. package/.qk-ai-skill-os/skills/_archive_old_skills/qk-component-generator/SKILL.md +136 -0
  70. package/.qk-ai-skill-os/skills/_archive_old_skills/qk-context-manager/SKILL.md +175 -0
  71. package/.qk-ai-skill-os/skills/_archive_old_skills/qk-database-engineer/SKILL.md +104 -0
  72. package/.qk-ai-skill-os/skills/_archive_old_skills/qk-deployment/SKILL.md +96 -0
  73. package/.qk-ai-skill-os/skills/_archive_old_skills/qk-design-system/SKILL.md +137 -0
  74. package/.qk-ai-skill-os/skills/_archive_old_skills/qk-form-builder/SKILL.md +140 -0
  75. package/.qk-ai-skill-os/skills/_archive_old_skills/qk-frontend-architecture/SKILL.md +155 -0
  76. package/.qk-ai-skill-os/skills/_archive_old_skills/qk-frontend-debug/SKILL.md +133 -0
  77. package/.qk-ai-skill-os/skills/_archive_old_skills/qk-frontend-performance/SKILL.md +129 -0
  78. package/.qk-ai-skill-os/skills/_archive_old_skills/qk-frontend-testing/SKILL.md +146 -0
  79. package/.qk-ai-skill-os/skills/_archive_old_skills/qk-git-engineer/SKILL.md +304 -0
  80. package/.qk-ai-skill-os/skills/_archive_old_skills/qk-help/SKILL.md +68 -0
  81. package/.qk-ai-skill-os/skills/_archive_old_skills/qk-migration/SKILL.md +284 -0
  82. package/.qk-ai-skill-os/skills/_archive_old_skills/qk-project-audit/SKILL.md +280 -0
  83. package/.qk-ai-skill-os/skills/_archive_old_skills/qk-refactor/SKILL.md +222 -0
  84. package/.qk-ai-skill-os/skills/_archive_old_skills/qk-state-management/SKILL.md +140 -0
  85. package/.qk-ai-skill-os/skills/_archive_old_skills/qk-table-crud-generator/SKILL.md +127 -0
  86. package/.qk-ai-skill-os/skills/_archive_old_skills/qk-ui-builder/SKILL.md +152 -0
  87. package/.qk-ai-skill-os/skills/_template/SKILL.md +238 -0
  88. package/.qk-ai-skill-os/skills/qk-access-policy/SKILL.md +179 -0
  89. package/.qk-ai-skill-os/skills/qk-ai-builder/SKILL.md +221 -0
  90. package/.qk-ai-skill-os/skills/qk-api-lifecycle/SKILL.md +176 -0
  91. package/.qk-ai-skill-os/skills/qk-bug-resolution/SKILL.md +307 -0
  92. package/.qk-ai-skill-os/skills/qk-context-loader/SKILL.md +218 -0
  93. package/.qk-ai-skill-os/skills/qk-data-lifecycle/SKILL.md +192 -0
  94. package/.qk-ai-skill-os/skills/qk-db-optimizer/SKILL.md +196 -0
  95. package/.qk-ai-skill-os/skills/qk-design-to-code/SKILL.md +291 -0
  96. package/.qk-ai-skill-os/skills/qk-docs/SKILL.md +198 -0
  97. package/.qk-ai-skill-os/skills/qk-engineering-standard/SKILL.md +351 -0
  98. package/.qk-ai-skill-os/skills/qk-engineering-standard/rules/backend.md +122 -0
  99. package/.qk-ai-skill-os/skills/qk-engineering-standard/rules/database.md +3 -0
  100. package/.qk-ai-skill-os/skills/qk-engineering-standard/rules/frontend.md +152 -0
  101. package/.qk-ai-skill-os/skills/qk-engineering-standard/rules/security.md +3 -0
  102. package/.qk-ai-skill-os/skills/qk-engineering-standard/rules/testing.md +3 -0
  103. package/.qk-ai-skill-os/skills/qk-fe-api-integration/SKILL.md +326 -0
  104. package/.qk-ai-skill-os/skills/qk-feature-delivery/SKILL.md +305 -0
  105. package/.qk-ai-skill-os/skills/qk-help/SKILL.md +193 -0
  106. package/.qk-ai-skill-os/skills/qk-orchestrator/SKILL.md +277 -0
  107. package/.qk-ai-skill-os/skills/qk-orchestrator/references/routing-table.md +77 -0
  108. package/.qk-ai-skill-os/skills/qk-production-release/SKILL.md +290 -0
  109. package/.qk-ai-skill-os/skills/qk-project-bootstrap/SKILL.md +240 -0
  110. package/.qk-ai-skill-os/skills/qk-project-health/SKILL.md +199 -0
  111. package/.qk-ai-skill-os/skills/qk-project-memory/SKILL.md +172 -0
  112. package/.qk-ai-skill-os/skills/qk-system-evolution/SKILL.md +285 -0
  113. package/.qk-ai-skill-os/skills/qk-ui-audit/SKILL.md +314 -0
  114. package/.qk-ai-skill-os/skills/qk-ui-audit/references/anti-slop-checklist.md +136 -0
  115. package/.qk-ai-skill-os/skills/qk-ui-system-builder/SKILL.md +225 -0
  116. package/.qk-ai-skill-os/skills/qk-validation-gate/SKILL.md +361 -0
  117. package/.qk-ai-skill-os/skills.json +819 -0
  118. package/CLAUDE.md +110 -0
  119. package/README.md +25 -3
  120. package/add_lang.js +21 -0
  121. package/add_lang.py +25 -0
  122. package/add_sections.py +53 -0
  123. package/bin/install.js +225 -170
  124. package/bin/lint.js +122 -0
  125. package/docs/CHI_TIET_SKILLS.md +26 -26
  126. package/docs/HUONG_DAN_SU_DUNG.md +3 -3
  127. package/docs/SPEC.md +70 -20
  128. package/framework/skill-schema.md +310 -0
  129. package/package.json +15 -4
  130. package/patch.js +15 -0
  131. package/patch.py +89 -0
  132. package/patch2.py +83 -0
  133. package/skills/_archive_old_skills/qk-accessibility-audit/SKILL.md +1 -0
  134. package/skills/_archive_old_skills/qk-agent-orchestrator/SKILL.md +1 -0
  135. package/skills/_archive_old_skills/qk-api-integration/SKILL.md +1 -0
  136. package/skills/_archive_old_skills/qk-auth-security/SKILL.md +1 -0
  137. package/skills/_archive_old_skills/qk-backend-architecture/SKILL.md +1 -0
  138. package/skills/_archive_old_skills/qk-bug-fix/SKILL.md +1 -0
  139. package/skills/_archive_old_skills/qk-component-generator/SKILL.md +1 -0
  140. package/skills/_archive_old_skills/qk-context-manager/SKILL.md +1 -0
  141. package/skills/_archive_old_skills/qk-database-engineer/SKILL.md +1 -0
  142. package/skills/_archive_old_skills/qk-deployment/SKILL.md +1 -0
  143. package/skills/_archive_old_skills/qk-design-system/SKILL.md +1 -0
  144. package/skills/_archive_old_skills/qk-form-builder/SKILL.md +1 -0
  145. package/skills/_archive_old_skills/qk-frontend-architecture/SKILL.md +1 -0
  146. package/skills/_archive_old_skills/qk-frontend-debug/SKILL.md +1 -0
  147. package/skills/_archive_old_skills/qk-frontend-performance/SKILL.md +1 -0
  148. package/skills/_archive_old_skills/qk-frontend-testing/SKILL.md +1 -0
  149. package/skills/_archive_old_skills/qk-git-engineer/SKILL.md +1 -0
  150. package/skills/_archive_old_skills/qk-help/SKILL.md +1 -0
  151. package/skills/_archive_old_skills/qk-migration/SKILL.md +1 -0
  152. package/skills/_archive_old_skills/qk-project-audit/SKILL.md +1 -0
  153. package/skills/_archive_old_skills/qk-refactor/SKILL.md +1 -0
  154. package/skills/_archive_old_skills/qk-state-management/SKILL.md +1 -0
  155. package/skills/_archive_old_skills/qk-table-crud-generator/SKILL.md +1 -0
  156. package/skills/_archive_old_skills/qk-ui-builder/SKILL.md +1 -0
  157. package/skills/_template/SKILL.md +238 -0
  158. package/skills/qk-access-policy/SKILL.md +179 -39
  159. package/skills/qk-ai-builder/SKILL.md +215 -40
  160. package/skills/qk-api-lifecycle/SKILL.md +176 -46
  161. package/skills/qk-bug-resolution/SKILL.md +307 -46
  162. package/skills/qk-context-loader/SKILL.md +218 -43
  163. package/skills/qk-data-lifecycle/SKILL.md +192 -44
  164. package/skills/qk-db-optimizer/SKILL.md +196 -41
  165. package/skills/qk-design-to-code/SKILL.md +285 -46
  166. package/skills/qk-docs/SKILL.md +198 -40
  167. package/skills/qk-engineering-standard/SKILL.md +351 -42
  168. package/skills/qk-fe-api-integration/SKILL.md +326 -55
  169. package/skills/qk-feature-delivery/SKILL.md +305 -48
  170. package/skills/qk-help/SKILL.md +178 -23
  171. package/skills/qk-orchestrator/SKILL.md +277 -42
  172. package/skills/qk-orchestrator/references/routing-table.md +77 -0
  173. package/skills/qk-production-release/SKILL.md +284 -41
  174. package/skills/qk-project-bootstrap/SKILL.md +234 -38
  175. package/skills/qk-project-health/SKILL.md +199 -40
  176. package/skills/qk-project-memory/SKILL.md +172 -40
  177. package/skills/qk-system-evolution/SKILL.md +281 -40
  178. package/skills/qk-ui-audit/SKILL.md +314 -42
  179. package/skills/qk-ui-audit/references/anti-slop-checklist.md +136 -0
  180. package/skills/qk-ui-system-builder/SKILL.md +221 -43
  181. package/skills/qk-validation-gate/SKILL.md +359 -40
  182. package/skills.json +813 -824
  183. package/specs/fixtures/user-payload.json +12 -0
  184. package/specs/regressions/api-integration-null-fields.yaml +19 -0
  185. package/temp_fix.js +61 -0
  186. package/tests/registry.test.js +1 -1
  187. package/update_template.js +28 -0
  188. package/skills/qk-policy-engine/SKILL.md +0 -39
@@ -0,0 +1,192 @@
1
+ ---
2
+ name: qk-data-lifecycle
3
+ category: backend
4
+ version: 7.5.0
5
+ description: "Quản lý Schema, Migrations an toàn — schema freeze → backward-compat migration → cleanup."
6
+ platforms: [antigravity, claude-code, cursor, windsurf, kilo-code]
7
+ execution_mode: deterministic
8
+ cost: high
9
+ latency: slow
10
+ risk: high
11
+ side_effects: edit_files
12
+ produces: [code, schema]
13
+ consumes: [context-graph, user-description]
14
+ token_budget:
15
+ max_files_read: 4
16
+ max_lines_per_read: 100
17
+ max_shell_commands: 1
18
+ stop_early: false
19
+ exit_codes: [SUCCESS, BLOCKED, FAILED, PARTIAL]
20
+ skill_version: 7.5.0
21
+ runtime_version: 1
22
+ schema_version: 2
23
+ ---
24
+
25
+ # qk-data-lifecycle — Database Schema & Repository Manager
26
+
27
+ > **Language rule:** Code, identifiers, file names ? English. Explanations, summaries ? Vietnamese.
28
+
29
+ ---
30
+
31
+ ## Preconditions
32
+ - [ ] Existing schema is identified (ORM model files)
33
+ - [ ] Change intent is clear (add field / modify field / drop field)
34
+
35
+ ```
36
+ On missing precondition:
37
+ EXIT: BLOCKED
38
+ Message: "Cần xác định: schema hiện tại + loại thay đổi (add/modify/drop)."
39
+ ```
40
+
41
+ ---
42
+
43
+ ## Scope
44
+ - ✅ Define strict schema BEFORE writing repository code
45
+ - ✅ Always backward-compatible migrations (never destructive in first pass)
46
+ - ✅ Separate schema (models) from business logic (services)
47
+
48
+ ## Non-Goals
49
+ - ❌ DROP columns without deprecation phase first
50
+ - ❌ Write complex business logic inside repositories
51
+ - ❌ Dynamic queries without schema definitions
52
+
53
+ ---
54
+
55
+ ## Priority Order
56
+ | P | Task | Skip Threshold |
57
+ |---|------|----------------|
58
+ | P1 | Read existing schema | Never |
59
+ | P2 | Design migration (backward-compat) | Never |
60
+ | P3 | Write migration file | Never |
61
+ | P4 | Update repository layer | Budget < 30% |
62
+ | P5 | Update affected service layer | Budget < 50% |
63
+
64
+ ---
65
+
66
+ ## Migration Safety Rules
67
+ ```yaml
68
+ add_column:
69
+ strategy: nullable OR has default value (never NOT NULL without default)
70
+
71
+ modify_column:
72
+ strategy: add new column → migrate data → drop old column (3-phase)
73
+
74
+ drop_column:
75
+ strategy: Phase 1 — mark deprecated (keep in schema)
76
+ Phase 2 — next release — remove from queries
77
+ Phase 3 — next migration — DROP COLUMN
78
+
79
+ rename_table:
80
+ strategy: create new table → migrate → drop old (never ALTER TABLE RENAME in prod)
81
+ ```
82
+
83
+ ---
84
+
85
+ ## Workflow
86
+
87
+ ### Phase 1 — Schema Read
88
+ 1. `grep_search` for existing model/entity file
89
+ 2. Read current schema (targeted, ≤ 100 lines)
90
+ 3. Identify impact of proposed change
91
+
92
+ ### Phase 2 — Migration Design
93
+ 1. Choose safety strategy (see Migration Safety Rules)
94
+ 2. Write migration file (up + down)
95
+ 3. Verify down() is always defined (rollback support)
96
+
97
+ ### Phase 3 — Repository Update
98
+ 1. Update repository methods to use new schema
99
+ 2. Verify no raw queries reference old column names
100
+
101
+ **Decision:**
102
+ ```
103
+ IF migration is backward-compat AND down() defined → EXIT: SUCCESS
104
+ ELSE IF destructive migration attempted → EXIT: BLOCKED — apply 3-phase strategy
105
+ ```
106
+
107
+ ---
108
+
109
+ ## Evidence Format
110
+ ```
111
+ [SEVERITY] migration: [filename]
112
+ Issue: [NOT NULL without default | missing down() | direct DROP]
113
+ Confidence: HIGH
114
+ Fix: [specific safer strategy]
115
+ ```
116
+
117
+ ---
118
+
119
+ ## Exit Codes
120
+ | Code | Meaning | When |
121
+ |------|---------|------|
122
+ | SUCCESS | Schema, migration, and repository complete | Validated execution |
123
+ | PARTIAL | Migration generated but untested | Missing DB connection |
124
+ | BLOCKED | Fields or relationships ambiguous | Missing entity data |
125
+ | FAILED | Migration involves destructive DROP without backup | Architecture violation |
126
+
127
+ ---
128
+
129
+ ## Confidence Model
130
+ | Level | Condition | Action |
131
+ |-------|-----------|--------|
132
+ | HIGH | Entity schema completely defined by user | Implement immediately |
133
+ | MEDIUM | Schema inferred from JSON or forms | Ask for review before generating migration |
134
+ | LOW | "Add database" request with no schema | EXIT: BLOCKED |
135
+
136
+ ---
137
+
138
+ ## Severity
139
+ | Level | Definition | Example |
140
+ |-------|-----------|---------|
141
+ | CRITICAL | Data loss risk in migration | Direct `DROP TABLE` without data copy |
142
+ | HIGH | Missing index on foreign key | Performance degrade on JOIN |
143
+ | MEDIUM | N+1 query vulnerability in repository | Fetching related entities in a loop |
144
+ | LOW | Naming convention violation | `userId` instead of `user_id` in DB |
145
+
146
+ ---
147
+
148
+ ## Retry Policy
149
+ ```
150
+ Migration generation fails
151
+ └─ Syntax error in SQL/ORM
152
+ ├─ Fix syntax based on engine (Postgres/MySQL)
153
+ └─ Do NOT retry more than 1 time — risk of bad migration state
154
+ ```
155
+
156
+ ---
157
+
158
+ ## Escalation Rules
159
+ ```
160
+ BLOCKED: Entity schema undefined
161
+ Missing:
162
+ - List of fields (types, constraints)
163
+ - Relationships (1:1, 1:N, M:N)
164
+ Questions:
165
+ 1. Bảng này cần lưu những trường dữ liệu nào?
166
+ 2. Bảng này có liên kết với bảng nào khác không? (ví dụ User)
167
+ Recommended Assumptions:
168
+ - Add standard created_at, updated_at timestamps
169
+ - UUID primary keys
170
+ ```
171
+
172
+ ---
173
+
174
+ ## Handoff Contract
175
+ ### Consumes
176
+ ```json
177
+ {
178
+ "from": "user",
179
+ "required_fields": ["entity_name", "fields"],
180
+ "optional_fields": ["relationships", "db_engine"]
181
+ }
182
+ ```
183
+ ### Produces
184
+ ```json
185
+ {
186
+ "to": "user or db-optimizer",
187
+ "output_fields": ["schema_file", "migration_file", "repository_file", "exit_code"]
188
+ }
189
+ ```
190
+
191
+ ---
192
+
@@ -0,0 +1,196 @@
1
+ ---
2
+ name: qk-db-optimizer
3
+ category: backend
4
+ version: 7.5.0
5
+ description: "Tối ưu Database dựa trên bằng chứng: EXPLAIN → phân tích → index/join — không đoán mò."
6
+ platforms: [antigravity, claude-code, cursor, windsurf, kilo-code]
7
+ execution_mode: deterministic
8
+ cost: medium
9
+ latency: medium
10
+ risk: medium
11
+ side_effects: edit_files
12
+ produces: [code, report]
13
+ consumes: [query-log, source-code]
14
+ token_budget:
15
+ max_files_read: 3
16
+ max_lines_per_read: 100
17
+ max_shell_commands: 2
18
+ stop_early: true
19
+ exit_codes: [SUCCESS, BLOCKED, FAILED, PARTIAL]
20
+ skill_version: 7.5.0
21
+ runtime_version: 1
22
+ schema_version: 2
23
+ ---
24
+
25
+ # qk-db-optimizer — Database Performance Tuner
26
+
27
+ > **Language rule:** Code, identifiers, file names ? English. Explanations, summaries ? Vietnamese.
28
+
29
+ ---
30
+
31
+ ## Preconditions
32
+ - [ ] Slow query log OR specific slow query is provided
33
+ - [ ] Database schema/ORM models accessible
34
+
35
+ ```
36
+ On missing precondition:
37
+ EXIT: BLOCKED
38
+ Message: "Cần: slow query log hoặc query cụ thể cần tối ưu."
39
+ ```
40
+
41
+ ---
42
+
43
+ ## Scope
44
+ - ✅ Analyze EXPLAIN/query plans before adding indexes
45
+ - ✅ Solve N+1 with Data Loaders or explicit Joins
46
+ - ✅ Validate performance improvement
47
+
48
+ ## Non-Goals
49
+ - ❌ Add indexes without slow query evidence
50
+ - ❌ Add overlapping or redundant indexes
51
+ - ❌ Optimize queries not shown in slow query log
52
+
53
+ ---
54
+
55
+ ## Priority Order
56
+ | P | Issue Type | Action | Skip Threshold |
57
+ |---|-----------|--------|----------------|
58
+ | P1 | Sequential scan on large table (> 10k rows) | Add composite index | Never |
59
+ | P2 | N+1 query pattern | Eager load / DataLoader | Budget < 30% |
60
+ | P3 | Missing JOIN (multiple queries for related data) | Rewrite with JOIN | Budget < 50% |
61
+ | P4 | SELECT * (over-fetching) | Select specific columns | Budget < 60% |
62
+
63
+ ---
64
+
65
+ ## EXPLAIN Decision Tree
66
+
67
+ ```
68
+ Run EXPLAIN ANALYZE on slow query
69
+
70
+ IF "Seq Scan" on table > 10k rows
71
+ → Check cardinality of filter column
72
+ → IF cardinality > 100 → add B-tree index
73
+ → IF low cardinality → add partial index or reconsider query
74
+
75
+ IF "Nested Loop" with many iterations
76
+ → Check: is this N+1?
77
+ → IF yes → rewrite as single JOIN or use DataLoader
78
+
79
+ IF "Sort" without index
80
+ → Add index on ORDER BY column
81
+
82
+ IF index exists but not used ("Index Scan" missing)
83
+ → Check: is WHERE clause using non-leading column of composite index?
84
+ → Reorder composite index columns
85
+ ```
86
+
87
+ ---
88
+
89
+ ## Workflow
90
+
91
+ ### Phase 1 — Evidence Collection
92
+ 1. Read slow query log or provided query
93
+ 2. Run EXPLAIN ANALYZE (1 command) — or analyze ORM-generated SQL
94
+ 3. Identify bottleneck pattern (seq scan / N+1 / sort / over-fetch)
95
+
96
+ ### Phase 2 — Solution Design
97
+ 1. Apply Decision Tree above
98
+ 2. Design minimal index or query rewrite
99
+
100
+ ### Phase 3 — Apply & Verify
101
+ 1. Apply change (add index migration OR rewrite query via `replace_file_content`)
102
+ 2. (Optional) Re-run EXPLAIN to verify improvement (2nd command)
103
+
104
+ **Decision:**
105
+ ```
106
+ IF improvement verified → EXIT: SUCCESS
107
+ IF improvement not measurable → EXIT: PARTIAL, note "verify in production"
108
+ ```
109
+
110
+ ---
111
+
112
+ ## Evidence Format
113
+ ```
114
+ [SEVERITY] query in src/repositories/[name].ts:LINE
115
+ Pattern: [SEQ_SCAN | N+1 | MISSING_JOIN | OVER_FETCH | UNUSED_INDEX]
116
+ Table: [table_name] (~N rows estimated)
117
+ Confidence: HIGH
118
+ Fix: [specific index or rewrite]
119
+ Estimated improvement: [X% reduction in scan rows]
120
+ ```
121
+
122
+ ---
123
+
124
+ ## Exit Codes
125
+ | Code | Meaning | When |
126
+ |------|---------|------|
127
+ | SUCCESS | Index added or query rewritten, improvement verified | Post-optimization |
128
+ | PARTIAL | Optimization applied but could not verify via EXPLAIN | DB access blocked |
129
+ | BLOCKED | Log not provided or DB engine unknown | Missing inputs |
130
+ | FAILED | Optimization breaks existing test or query syntax | Logic error |
131
+
132
+ ---
133
+
134
+ ## Confidence Model
135
+ | Level | Condition | Action |
136
+ |-------|-----------|--------|
137
+ | HIGH | EXPLAIN plan shows SEQ SCAN, user confirms index is missing | Add index / rewrite |
138
+ | MEDIUM | Query looks inefficient but no EXPLAIN available | Ask to run EXPLAIN |
139
+ | LOW | "Make DB faster" with no slow query log | EXIT: BLOCKED |
140
+
141
+ ---
142
+
143
+ ## Severity
144
+ | Level | Definition | Example |
145
+ |-------|-----------|---------|
146
+ | CRITICAL | Query locking table in production | Long running UPDATE |
147
+ | HIGH | Missing index on frequently joined table | Full scan on million rows |
148
+ | MEDIUM | N+1 queries due to missing JOIN | ORM fetching relations in loop |
149
+ | LOW | Over-fetching columns | `SELECT *` instead of specific |
150
+
151
+ ---
152
+
153
+ ## Retry Policy
154
+ ```
155
+ EXPLAIN query fails
156
+ └─ Check SQL syntax error vs connection error
157
+ ├─ Syntax error → correct SQL → retry EXPLAIN
158
+ └─ Do NOT retry more than 1 time — risk of locking
159
+ ```
160
+
161
+ ---
162
+
163
+ ## Escalation Rules
164
+ ```
165
+ BLOCKED: Slow query log not provided
166
+ Missing:
167
+ - The actual slow query SQL
168
+ - Current schema of the involved tables
169
+ Questions:
170
+ 1. Câu query nào đang bị chậm? (Xin SQL / ORM log)
171
+ 2. Bảng này hiện đang có những index nào?
172
+ Recommended Assumptions:
173
+ - Do NOT assume table size or indexes blindly
174
+ ```
175
+
176
+ ---
177
+
178
+ ## Handoff Contract
179
+ ### Consumes
180
+ ```json
181
+ {
182
+ "from": "user",
183
+ "required_fields": ["slow_query"],
184
+ "optional_fields": ["schema", "explain_plan", "db_engine"]
185
+ }
186
+ ```
187
+ ### Produces
188
+ ```json
189
+ {
190
+ "to": "user",
191
+ "output_fields": ["optimized_query", "migration_file", "explain_diff", "exit_code"]
192
+ }
193
+ ```
194
+
195
+ ---
196
+
@@ -0,0 +1,291 @@
1
+ ---
2
+ name: qk-design-to-code
3
+ category: frontend
4
+ version: 7.5.0
5
+ description: "Chuyển thiết kế Figma/Image thành UI component chuẩn pixel — zero AI-slop, 100% DESIGN.md."
6
+ platforms: [antigravity, claude-code, cursor, windsurf, kilo-code]
7
+ execution_mode: deterministic
8
+
9
+ cost: high
10
+ latency: slow
11
+ risk: low
12
+ side_effects: edit_files
13
+ produces: [code]
14
+ consumes: [design-md, design-asset]
15
+
16
+ token_budget:
17
+ max_files_read: 4
18
+ max_lines_per_read: 150
19
+ max_shell_commands: 0
20
+ stop_early: false
21
+
22
+ exit_codes: [SUCCESS, BLOCKED, FAILED, PARTIAL]
23
+ skill_version: 7.5.0
24
+ runtime_version: 1
25
+ schema_version: 2
26
+ ---
27
+
28
+ # qk-design-to-code — Pixel-Perfect Builder
29
+
30
+ > **Language rule:** Code, identifiers, file names ? English. Explanations, summaries ? Vietnamese.
31
+
32
+ skill_version: 7.5.0
33
+ runtime_version: 1
34
+ schema_version: 2
35
+ ---
36
+
37
+ ## Preconditions
38
+ - [ ] `DESIGN.md` exists with color tokens, spacing scale, typography
39
+ - [ ] Design reference (Figma link, image, or wireframe description) provided
40
+
41
+ ```
42
+ On missing precondition:
43
+ EXIT: BLOCKED
44
+ Message: "DESIGN.md missing or design reference not provided."
45
+ ```
46
+
47
+ skill_version: 7.5.0
48
+ runtime_version: 1
49
+ schema_version: 2
50
+ ---
51
+
52
+ ## Scope
53
+ - ✅ Build UI from design reference using ONLY DESIGN.md tokens
54
+ - ✅ Include all interactive states: hover, focus, active, disabled, loading
55
+ - ✅ Responsive layouts (mobile + desktop)
56
+ - ✅ Semantic HTML with ARIA roles
57
+
58
+ ## Non-Goals
59
+ - ❌ Invent design tokens not in DESIGN.md
60
+ - ❌ Use hardcoded hex colors, px sizes not from token system
61
+ - ❌ Copy generic Tailwind/Bootstrap templates
62
+ - ❌ Skip loading/error/empty states
63
+
64
+ skill_version: 7.5.0
65
+ runtime_version: 1
66
+ schema_version: 2
67
+ ---
68
+
69
+ ## Priority Order
70
+
71
+ | Priority | Task | Skip Threshold |
72
+ |----------|------|----------------|
73
+ | P1 | HTML structure + semantic markup | Never |
74
+ | P2 | DESIGN.md token application (colors, spacing, typography) | Never |
75
+ | P3 | Interactive states (hover, focus, active) | Budget < 30% |
76
+ | P4 | Responsive breakpoints (mobile) | Budget < 50% |
77
+ | P5 | Loading / error / empty states | Budget < 60% |
78
+ | P6 | Animation / micro-interactions | Budget < 70% |
79
+ | P7 | ARIA roles + keyboard navigation | Budget < 80% |
80
+
81
+ skill_version: 7.5.0
82
+ runtime_version: 1
83
+ schema_version: 2
84
+ ---
85
+
86
+ ## Workflow
87
+
88
+ ### Phase 1 — Extract Design System
89
+
90
+ **Steps:**
91
+ 1. Read `DESIGN.md` → extract: colors (HSL), spacing scale, font families, border-radius, shadows, animation timing
92
+ 2. Map tokens to CSS variables or framework equivalents
93
+
94
+ **Decision:**
95
+ ```
96
+ IF DESIGN.md has all required tokens
97
+ → go to Phase 2
98
+
99
+ ELSE IF some tokens missing
100
+ → Use reasonable fallback, note gap in output
101
+ → Confidence: MEDIUM
102
+
103
+ ELSE IF DESIGN.md empty
104
+ → EXIT: BLOCKED
105
+ ```
106
+
107
+ skill_version: 7.5.0
108
+ runtime_version: 1
109
+ schema_version: 2
110
+ ---
111
+
112
+ ### Phase 2 — Build Structure
113
+
114
+ **Steps:**
115
+ 1. Create HTML structure (semantic: `article`, `section`, `nav`, `button`, NOT `div` soup)
116
+ 2. Apply layout: CSS Grid / Flexbox (NO absolute positioning unless unavoidable)
117
+ 3. Apply DESIGN.md tokens for colors, spacing, typography
118
+
119
+ **Self-Check before next phase:**
120
+ ```
121
+ ✅ No hardcoded hex/rgb values (only CSS vars or DESIGN.md tokens)
122
+ ✅ No magic numbers for spacing (only from scale: 4, 8, 16, 24, 32...)
123
+ ✅ Semantic HTML elements used
124
+ ```
125
+
126
+ skill_version: 7.5.0
127
+ runtime_version: 1
128
+ schema_version: 2
129
+ ---
130
+
131
+ ### Phase 3 — Interactive States
132
+
133
+ **Steps:**
134
+ 1. Add hover, focus, active states for all interactive elements
135
+ 2. Add disabled state for form elements
136
+ 3. Use CSS transitions (duration from DESIGN.md, typically 150–300ms)
137
+
138
+ **Self-Check:**
139
+ ```
140
+ ✅ Every button/link has hover + focus state
141
+ ✅ Focus visible (not outline: none without replacement)
142
+ ✅ Transition duration matches DESIGN.md
143
+ ```
144
+
145
+ skill_version: 7.5.0
146
+ runtime_version: 1
147
+ schema_version: 2
148
+ ---
149
+
150
+ ### Phase 4 — Self-Audit (Anti-Slop Check)
151
+
152
+ **Checklist (must pass ALL):**
153
+ - [ ] No hardcoded colors — only DESIGN.md tokens
154
+ - [ ] No font-size in px without token — use rem/token
155
+ - [ ] No `margin: auto` soup — use proper grid/flex
156
+ - [ ] All interactive elements have hover + focus state
157
+ - [ ] Mobile viewport works (no horizontal overflow)
158
+ - [ ] No `!important` overrides (except resets)
159
+ - [ ] No inline styles except dynamic values
160
+ - [ ] Loading state implemented (skeleton or spinner)
161
+ - [ ] Error state implemented (clear message)
162
+ - [ ] Empty state implemented (helpful illustration/text)
163
+
164
+ **Decision:**
165
+ ```
166
+ IF all 10 anti-slop checks pass
167
+ → EXIT: SUCCESS
168
+
169
+ ELSE IF 1–2 minor fails
170
+ → Fix immediately, EXIT: SUCCESS
171
+
172
+ ELSE IF > 2 fails OR hardcoded colors found
173
+ → Fix all, re-audit, EXIT: PARTIAL if still one gap
174
+ ```
175
+
176
+ skill_version: 7.5.0
177
+ runtime_version: 1
178
+ schema_version: 2
179
+ ---
180
+
181
+ ## Confidence Model
182
+
183
+ | Level | Condition | Action |
184
+ |-------|-----------|--------|
185
+ | HIGH | DESIGN.md complete, design reference clear | Build directly |
186
+ | MEDIUM | Some tokens missing, inferring from context | Note gaps, proceed |
187
+ | LOW | Design reference too vague or DESIGN.md empty | EXIT: BLOCKED |
188
+
189
+ skill_version: 7.5.0
190
+ runtime_version: 1
191
+ schema_version: 2
192
+ ---
193
+
194
+ ## Evidence Format (Self-Audit Violations)
195
+
196
+ ```
197
+ [SEVERITY] path/to/Component.tsx:LINE
198
+ Category: [TOKEN|SEMANTIC|INTERACTION|RESPONSIVE|STATE|ARIA]
199
+ Reason: [specific anti-slop violation]
200
+ Confidence: HIGH
201
+ Fix: [applied immediately]
202
+ ```
203
+
204
+ skill_version: 7.5.0
205
+ runtime_version: 1
206
+ schema_version: 2
207
+ ---
208
+
209
+ ## Handoff Contract
210
+
211
+ ### Consumes
212
+ ```json
213
+ {
214
+ "from": "user",
215
+ "required_fields": ["design_reference", "design_md_path"],
216
+ "optional_fields": ["component_name", "framework"]
217
+ }
218
+ ```
219
+
220
+ ### Produces
221
+ ```json
222
+ {
223
+ "to": "qk-ui-audit (for verification)",
224
+ "output_fields": ["component_files", "tokens_used", "states_implemented", "exit_code"]
225
+ }
226
+ ```
227
+
228
+ skill_version: 7.5.0
229
+ runtime_version: 1
230
+ schema_version: 2
231
+ ---
232
+
233
+ ## Output Format
234
+
235
+ ```
236
+ 🎨 Design → Code
237
+ ─────────────────────────────────────────────────
238
+ Component: [ComponentName]
239
+ Tokens used: [list of DESIGN.md tokens applied]
240
+
241
+ States implemented:
242
+ ✅ Default / ✅ Hover / ✅ Focus / ✅ Active
243
+ ✅ Loading / ✅ Error / ✅ Empty
244
+ ⚠️ [any state skipped — reason]
245
+
246
+ Anti-Slop Audit:
247
+ ✅ [10/10 checks passed | N/10 — list failures]
248
+
249
+ Exit Code: [SUCCESS | PARTIAL | BLOCKED | FAILED]
250
+ ```
251
+
252
+ skill_version: 7.5.0
253
+ runtime_version: 1
254
+ schema_version: 2
255
+ ---
256
+
257
+
258
+ ---
259
+
260
+ ## Escalation Rules
261
+
262
+ [Placeholder for Escalation Rules]
263
+
264
+
265
+ ---
266
+
267
+ ## Severity
268
+
269
+ [Placeholder for Severity]
270
+
271
+
272
+ ---
273
+
274
+ ## Retry Policy
275
+
276
+ [Placeholder for Retry Policy]
277
+
278
+
279
+ ---
280
+ ## Exit Codes
281
+
282
+ | Code | Meaning | When |
283
+ |------|---------|------|
284
+ | SUCCESS | Component built, all 10 anti-slop checks passed | Production ready |
285
+ | PARTIAL | Built but 1–2 minor gaps (e.g., animation skipped) | User review recommended |
286
+ | BLOCKED | DESIGN.md or design reference missing | Cannot build |
287
+ | FAILED | Anti-slop audit finds > 2 violations or hardcoded values | Rebuild required |
288
+
289
+ ---
290
+
291
+