ai-developer-skill-os 9.3.0 → 10.1.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 (185) hide show
  1. package/.agents/AGENTS.md +60 -40
  2. package/.agents/DEV_PROFILE.md +36 -2
  3. package/.agents/registry/graph.json +95 -342
  4. package/.agents/registry/index.yaml +61 -237
  5. package/.agents/rules/coding.md +30 -12
  6. package/.agents/rules/command-safety.md +19 -8
  7. package/.agents/rules/global.md +234 -28
  8. package/.agents/rules/prompt-compiler.md +170 -0
  9. package/.agents/skills/qk-api-data-discovery/SKILL.md +470 -0
  10. package/.agents/skills/qk-backend-data/SKILL.md +190 -0
  11. package/.agents/skills/qk-bug-resolution/SKILL.md +176 -248
  12. package/.agents/skills/qk-code-cleaner/SKILL.md +250 -0
  13. package/.agents/skills/qk-code-review/SKILL.md +126 -247
  14. package/.agents/skills/qk-devops-release/SKILL.md +145 -0
  15. package/.agents/skills/qk-feature-delivery/SKILL.md +179 -247
  16. package/.agents/skills/qk-orchestrator/SKILL.md +100 -151
  17. package/.agents/skills/qk-product-spec/SKILL.md +113 -0
  18. package/.agents/skills/qk-prompt-compiler/SKILL.md +321 -0
  19. package/.agents/skills/qk-ui-engineer/SKILL.md +137 -0
  20. package/.agents/workflows/feature-delivery.yml +1 -1
  21. package/.agents/workflows/production-release.yml +1 -1
  22. package/.agents/workflows/spec-driven-development.yml +109 -87
  23. package/CHANGELOG.md +54 -0
  24. package/README.md +125 -184
  25. package/bin/install.js +337 -329
  26. package/package.json +2 -2
  27. package/.agents/README.md +0 -90
  28. package/.agents/docs/CHI_TIET_SKILLS.md +0 -126
  29. package/.agents/docs/HUONG_DAN_SU_DUNG.md +0 -120
  30. package/.agents/docs/MIGRATION-CLEANUP-V8.1.3.md +0 -36
  31. package/.agents/docs/MIGRATION-STATUS.md +0 -35
  32. package/.agents/docs/MIGRATION-V8.md +0 -10
  33. package/.agents/docs/ROADMAP-V8.2.md +0 -78
  34. package/.agents/docs/V8-CERTIFICATION.md +0 -27
  35. package/.agents/skills/qk-access-policy/SKILL.md +0 -206
  36. package/.agents/skills/qk-access-policy/capability.yaml +0 -23
  37. package/.agents/skills/qk-access-policy/evals/scorecard.yaml +0 -36
  38. package/.agents/skills/qk-agent-observability/SKILL.md +0 -108
  39. package/.agents/skills/qk-agent-observability/capability.yaml +0 -29
  40. package/.agents/skills/qk-agent-observability/evals/scorecard.yaml +0 -29
  41. package/.agents/skills/qk-agent-observability/references/scorecard.yaml +0 -80
  42. package/.agents/skills/qk-ai-builder/SKILL.md +0 -254
  43. package/.agents/skills/qk-ai-builder/capability.yaml +0 -23
  44. package/.agents/skills/qk-ai-builder/evals/scorecard.yaml +0 -30
  45. package/.agents/skills/qk-api-consumer/SKILL.md +0 -256
  46. package/.agents/skills/qk-api-consumer/capability.yaml +0 -21
  47. package/.agents/skills/qk-api-consumer/evals/scorecard.yaml +0 -29
  48. package/.agents/skills/qk-api-lifecycle/SKILL.md +0 -251
  49. package/.agents/skills/qk-api-lifecycle/capability.yaml +0 -23
  50. package/.agents/skills/qk-api-lifecycle/evals/scorecard.yaml +0 -29
  51. package/.agents/skills/qk-bug-resolution/capability.yaml +0 -25
  52. package/.agents/skills/qk-code-review/capability.yaml +0 -23
  53. package/.agents/skills/qk-context-loader/SKILL.md +0 -198
  54. package/.agents/skills/qk-context-loader/capability.yaml +0 -23
  55. package/.agents/skills/qk-context-loader/evals/scorecard.yaml +0 -28
  56. package/.agents/skills/qk-data-engineer/SKILL.md +0 -253
  57. package/.agents/skills/qk-data-lifecycle/SKILL.md +0 -197
  58. package/.agents/skills/qk-data-lifecycle/capability.yaml +0 -23
  59. package/.agents/skills/qk-data-lifecycle/evals/scorecard.yaml +0 -29
  60. package/.agents/skills/qk-db-optimizer/SKILL.md +0 -210
  61. package/.agents/skills/qk-db-optimizer/capability.yaml +0 -22
  62. package/.agents/skills/qk-db-optimizer/evals/scorecard.yaml +0 -28
  63. package/.agents/skills/qk-design-system-engineering/SKILL.md +0 -193
  64. package/.agents/skills/qk-design-system-engineering/capability.yaml +0 -25
  65. package/.agents/skills/qk-design-system-engineering/evals/scorecard.yaml +0 -27
  66. package/.agents/skills/qk-devops-platform/SKILL.md +0 -198
  67. package/.agents/skills/qk-devops-platform/capability.yaml +0 -29
  68. package/.agents/skills/qk-devops-platform/evals/scorecard.yaml +0 -28
  69. package/.agents/skills/qk-docs/SKILL.md +0 -193
  70. package/.agents/skills/qk-docs/capability.yaml +0 -23
  71. package/.agents/skills/qk-docs/evals/scorecard.yaml +0 -27
  72. package/.agents/skills/qk-engineering-standard/SKILL.md +0 -89
  73. package/.agents/skills/qk-engineering-standard/capability.yaml +0 -23
  74. package/.agents/skills/qk-engineering-standard/evals/scorecard.yaml +0 -28
  75. package/.agents/skills/qk-engineering-standard/references/anti-patterns.md +0 -121
  76. package/.agents/skills/qk-engineering-standard/rules/backend.md +0 -122
  77. package/.agents/skills/qk-engineering-standard/rules/database.md +0 -3
  78. package/.agents/skills/qk-engineering-standard/rules/frontend.md +0 -152
  79. package/.agents/skills/qk-engineering-standard/rules/security.md +0 -3
  80. package/.agents/skills/qk-engineering-standard/rules/testing.md +0 -3
  81. package/.agents/skills/qk-fe-api-integration/SKILL.md +0 -704
  82. package/.agents/skills/qk-fe-api-integration/capability.yaml +0 -21
  83. package/.agents/skills/qk-fe-api-integration/evals/scorecard.yaml +0 -29
  84. package/.agents/skills/qk-feature-delivery/capability.yaml +0 -24
  85. package/.agents/skills/qk-frontend-architecture/SKILL.md +0 -127
  86. package/.agents/skills/qk-frontend-architecture/capability.yaml +0 -28
  87. package/.agents/skills/qk-frontend-architecture/evals/scorecard.yaml +0 -28
  88. package/.agents/skills/qk-help/SKILL.md +0 -107
  89. package/.agents/skills/qk-help/capability.yaml +0 -20
  90. package/.agents/skills/qk-help/evals/scorecard.yaml +0 -13
  91. package/.agents/skills/qk-orchestrator/capability.yaml +0 -22
  92. package/.agents/skills/qk-product-specification/SKILL.md +0 -187
  93. package/.agents/skills/qk-product-specification/capability.yaml +0 -27
  94. package/.agents/skills/qk-product-specification/evals/scorecard.yaml +0 -27
  95. package/.agents/skills/qk-production-release/SKILL.md +0 -188
  96. package/.agents/skills/qk-production-release/capability.yaml +0 -27
  97. package/.agents/skills/qk-production-release/evals/scorecard.yaml +0 -28
  98. package/.agents/skills/qk-project-audit/SKILL.md +0 -174
  99. package/.agents/skills/qk-project-bootstrap/SKILL.md +0 -372
  100. package/.agents/skills/qk-project-bootstrap/capability.yaml +0 -23
  101. package/.agents/skills/qk-project-bootstrap/evals/scorecard.yaml +0 -28
  102. package/.agents/skills/qk-project-health/SKILL.md +0 -202
  103. package/.agents/skills/qk-project-health/capability.yaml +0 -23
  104. package/.agents/skills/qk-project-health/evals/scorecard.yaml +0 -27
  105. package/.agents/skills/qk-project-memory/SKILL.md +0 -303
  106. package/.agents/skills/qk-project-memory/capability.yaml +0 -23
  107. package/.agents/skills/qk-project-memory/evals/scorecard.yaml +0 -27
  108. package/.agents/skills/qk-refactor/SKILL.md +0 -243
  109. package/.agents/skills/qk-refactor/capability.yaml +0 -26
  110. package/.agents/skills/qk-refactor/evals/scorecard.yaml +0 -27
  111. package/.agents/skills/qk-security-audit/SKILL.md +0 -280
  112. package/.agents/skills/qk-security-audit/capability.yaml +0 -29
  113. package/.agents/skills/qk-security-audit/evals/scorecard.yaml +0 -27
  114. package/.agents/skills/qk-system-evolution/SKILL.md +0 -625
  115. package/.agents/skills/qk-system-evolution/capability.yaml +0 -24
  116. package/.agents/skills/qk-system-evolution/evals/scorecard.yaml +0 -26
  117. package/.agents/skills/qk-test-engineering/SKILL.md +0 -215
  118. package/.agents/skills/qk-test-engineering/capability.yaml +0 -28
  119. package/.agents/skills/qk-test-engineering/evals/scorecard.yaml +0 -26
  120. package/.agents/skills/qk-ui-audit/SKILL.md +0 -175
  121. package/.agents/skills/qk-ui-audit/capability.yaml +0 -23
  122. package/.agents/skills/qk-ui-audit/evals/scorecard.yaml +0 -26
  123. package/.agents/skills/qk-ui-audit/references/anti-slop-checklist.md +0 -136
  124. package/.agents/skills/qk-ui-builder/SKILL.md +0 -521
  125. package/.agents/skills/qk-ui-builder/capability.yaml +0 -29
  126. package/.agents/skills/qk-ui-builder/evals/scorecard.yaml +0 -26
  127. package/.agents/skills/qk-ui-builder/references/anti-patterns.md +0 -295
  128. package/.agents/skills/qk-ui-builder/references/color.md +0 -115
  129. package/.agents/skills/qk-ui-builder/references/component-cookbook.md +0 -458
  130. package/.agents/skills/qk-ui-builder/references/copy.md +0 -250
  131. package/.agents/skills/qk-ui-builder/references/interaction-and-states.md +0 -115
  132. package/.agents/skills/qk-ui-builder/references/layout-and-space.md +0 -111
  133. package/.agents/skills/qk-ui-builder/references/macrostructures/01-bento-grid.md +0 -48
  134. package/.agents/skills/qk-ui-builder/references/macrostructures/02-long-document.md +0 -50
  135. package/.agents/skills/qk-ui-builder/references/macrostructures/03-marquee-hero.md +0 -51
  136. package/.agents/skills/qk-ui-builder/references/macrostructures/04-stat-led.md +0 -49
  137. package/.agents/skills/qk-ui-builder/references/macrostructures/05-workbench.md +0 -44
  138. package/.agents/skills/qk-ui-builder/references/macrostructures/06-conversational-faq.md +0 -50
  139. package/.agents/skills/qk-ui-builder/references/macrostructures/07-manifesto.md +0 -51
  140. package/.agents/skills/qk-ui-builder/references/macrostructures/08-photographic.md +0 -50
  141. package/.agents/skills/qk-ui-builder/references/macrostructures/09-quote-led.md +0 -50
  142. package/.agents/skills/qk-ui-builder/references/macrostructures/11-catalogue.md +0 -49
  143. package/.agents/skills/qk-ui-builder/references/macrostructures/12-letter.md +0 -49
  144. package/.agents/skills/qk-ui-builder/references/macrostructures/13-index-first.md +0 -49
  145. package/.agents/skills/qk-ui-builder/references/macrostructures/14-narrative-workflow.md +0 -48
  146. package/.agents/skills/qk-ui-builder/references/macrostructures/15-split-studio.md +0 -48
  147. package/.agents/skills/qk-ui-builder/references/macrostructures/16-feature-stack.md +0 -51
  148. package/.agents/skills/qk-ui-builder/references/macrostructures/17-type-specimen.md +0 -48
  149. package/.agents/skills/qk-ui-builder/references/macrostructures/18-portfolio-grid.md +0 -48
  150. package/.agents/skills/qk-ui-builder/references/macrostructures/19-map-diagram.md +0 -50
  151. package/.agents/skills/qk-ui-builder/references/macrostructures/20-ecosystem-index.md +0 -48
  152. package/.agents/skills/qk-ui-builder/references/macrostructures/21-component-playground.md +0 -45
  153. package/.agents/skills/qk-ui-builder/references/macrostructures.md +0 -38
  154. package/.agents/skills/qk-ui-builder/references/motion.md +0 -95
  155. package/.agents/skills/qk-ui-builder/references/responsive.md +0 -115
  156. package/.agents/skills/qk-ui-builder/references/slop-test.md +0 -135
  157. package/.agents/skills/qk-ui-builder/references/structure.md +0 -280
  158. package/.agents/skills/qk-ui-builder/references/themes/atmospheric.md +0 -53
  159. package/.agents/skills/qk-ui-builder/references/themes/carnival.md +0 -52
  160. package/.agents/skills/qk-ui-builder/references/themes/cobalt.md +0 -52
  161. package/.agents/skills/qk-ui-builder/references/themes/editorial.md +0 -52
  162. package/.agents/skills/qk-ui-builder/references/themes/garden.md +0 -52
  163. package/.agents/skills/qk-ui-builder/references/themes/hum.md +0 -52
  164. package/.agents/skills/qk-ui-builder/references/themes/lumen.md +0 -52
  165. package/.agents/skills/qk-ui-builder/references/themes/midnight.md +0 -52
  166. package/.agents/skills/qk-ui-builder/references/themes/modern-minimal.md +0 -52
  167. package/.agents/skills/qk-ui-builder/references/themes/playful.md +0 -52
  168. package/.agents/skills/qk-ui-builder/references/themes/specimen.md +0 -52
  169. package/.agents/skills/qk-ui-builder/references/themes/terminal.md +0 -52
  170. package/.agents/skills/qk-ui-builder/references/typography.md +0 -129
  171. package/.agents/skills/qk-ui-system-builder/SKILL.md +0 -183
  172. package/.agents/skills/qk-ui-system-builder/capability.yaml +0 -25
  173. package/.agents/skills/qk-ui-system-builder/evals/scorecard.yaml +0 -26
  174. package/.agents/skills/qk-upgrade/SKILL.md +0 -301
  175. package/.agents/skills/qk-upgrade/capability.yaml +0 -24
  176. package/.agents/skills/qk-upgrade/evals/scorecard.yaml +0 -26
  177. package/.agents/skills/qk-validation-gate/SKILL.md +0 -88
  178. package/.agents/skills/qk-validation-gate/capability.yaml +0 -23
  179. package/.agents/skills/qk-validation-gate/evals/scorecard.yaml +0 -26
  180. package/.agents/skills/qk-web-quality-gate/SKILL.md +0 -197
  181. package/.agents/skills/qk-web-quality-gate/capability.yaml +0 -24
  182. package/.agents/skills/qk-web-quality-gate/evals/scorecard.yaml +0 -26
  183. package/.agents/workflows/research.yml +0 -75
  184. package/.agents/workflows/skill-evolution.yml +0 -97
  185. package/tooling/fix-refactor.js +0 -8
@@ -1,257 +1,185 @@
1
1
  ---
2
- # ── Identity ───────────────────────────────────────────────
3
- name: qk-bug-resolution
4
- version: 9.2.0
5
- status: stable
6
- description: "Sửa lỗi (bugs) bằng chu trình khép kín: Observe → Hypothesize → Evidence → Fix → Verify. Dùng skill này khi user nhắc đến: fix bug, sửa lỗi, crash, error, exception, not working, bị lỗi, debug — kể cả khi chỉ paste stack trace hoặc mô tả triệu chứng mà không nói rõ là \"bug\"."
7
- platforms: [antigravity, claude-code, cursor, windsurf, kilo-code]
8
-
9
- # ── V9: Classification ─────────────────────────────────────
10
- type: capability
11
-
12
- intent:
13
- - bug-fixing
14
- - debugging
15
- - error-resolution
16
-
17
- complexity:
18
- level: medium
19
- criteria:
20
- files_affected: "2-5"
21
- has_behavior_change: true
22
- has_external_dependency: false
23
- has_breaking_change: false
24
-
2
+ name: qk-bug-resolution
3
+ version: 10.1.0
4
+ status: stable
5
+ subtitle: "Debug & Fix Bug"
6
+ description: "Chẩn đoán nguyên nhân gốc rễ và khắc phục lỗi mã nguồn theo chu trình khép kín 4 bước (Triangulate → Root-Cause → Surgical Fix → Regression Shield). Dùng khi: fix bug, sửa lỗi, crash, error, exception, trace lỗi, điều tra nguyên nhân bug, not working, màn hình trắng, lỗi logic — TUYỆT ĐỐI KHÔNG dùng khi cần tái cấu trúc lớn (dùng qk-code-cleaner) hoặc làm tính năng mới (dùng qk-feature-delivery)."
7
+ tools:
8
+ - filesystem
9
+ - terminal
10
+ rules:
11
+ - global
12
+ - coding-standards
13
+ - safety
14
+ workflow: bug-resolution
25
15
  triggers:
26
16
  - "fix bug"
27
17
  - "sửa lỗi"
28
18
  - "crash"
29
19
  - "error"
30
20
  - "exception"
21
+ - "trace lỗi"
22
+ - "điều tra nguyên nhân bug"
23
+ - "debug lỗi"
31
24
  - "not working"
32
25
  - "bị lỗi"
33
- - "debug"
34
-
35
-
36
- selection:
37
- priority: high
38
- confidence_threshold: 0.65
39
-
40
- # ── V8: References ─────────────────────────────────────────
41
- workflow: bug-resolution
42
-
43
- rules:
44
- - global
45
- - coding
46
-
47
- tools:
48
- - filesystem
49
- - terminal
50
-
51
- related_skills:
52
- - qk-context-loader
53
- - qk-test-engineering
54
-
55
- knowledge_scope:
56
- owns:
57
- - bug-diagnosis
58
- - fix-strategies
59
- - root-cause-analysis
60
- references:
61
- - testing
62
- - language-specific-features
63
- - security
64
- - anti-patterns
65
-
66
- # ── V8: Verification ───────────────────────────────────────
67
- verification:
68
- required: true
69
- strategy: bug-fix
70
-
71
- examples: []
72
- learnings: []
73
-
74
- # ── V7 Runtime ─────────────────────────────────────────────
75
- execution_mode: deterministic
76
- cost: medium
77
- latency: medium
78
- risk: medium
79
- side_effects: edit_files
80
- produces: [code, report]
81
- consumes: [stack-trace, error-message, user-description, context-graph]
82
-
83
- token_budget:
84
- max_files_read: 3
85
- max_lines_per_read: 150
86
- max_shell_commands: 2
87
- stop_early: true
88
-
89
- exit_codes: [SUCCESS, BLOCKED, FAILED, PARTIAL]
90
- ---
91
-
92
- # qk-bug-resolution — Diagnose & Repair
93
-
94
- > **Language rule:** Code, identifiers, file names → English. Explanations, summaries → Vietnamese.
95
-
96
- Chịu trách nhiệm chẩn đoán và khắc phục lỗi mã nguồn theo chu trình khép kín: **Observe (Quan sát) → Hypothesize (Giả thuyết) → Evidence (Bằng chứng) → Fix (Sửa chữa) → Verify (Xác thực)**. Tuyệt đối không đoán mò hoặc áp dụng "quick-hack" làm che giấu lỗi gốc.
97
-
98
- ---
99
-
100
- ## Preconditions
101
-
102
- Trước khi sửa bất kỳ dòng code nào, AI BẮT BUỘC kiểm tra:
103
-
104
- - [ ] Thu thập đầy đủ triệu chứng lỗi: error message, stack trace, hoặc mô tả hành vi sai lệch (reproduction steps).
105
- - [ ] Xác định file/hàm nghi vấn và đọc source code thực tế.
106
- - [ ] Tái hiện hoặc tìm được bằng chứng trực tiếp xác nhận nguyên nhân gốc (root cause).
107
- - [ ] Nếu không có đủ thông tin hoặc không thể xác định được nguyên nhân:
108
- → **EXIT: BLOCKED**
109
- → Báo cáo user yêu cầu bổ sung context, logs hoặc reproduction steps.
110
-
111
- ---
112
-
113
- ## Scope
114
-
115
- ✅ Skill này làm:
116
- - Phân tích stack traces, server logs, console errors.
117
- - Điều tra nguyên nhân gốc rễ (Root Cause Analysis) tại tầng logic, type mismatch, hoặc concurrency.
118
- - Đưa ra giải pháp khắc phục triệt để (surgical fix) nhắm đúng nguyên nhân gốc.
119
- - Thêm hoặc cập nhật test cases để tái hiện bug và ngăn chặn hiện tượng hồi quy (regression).
120
- - Bảo toàn hành vi ban đầu của các tính năng không liên quan.
121
-
122
- ❌ Skill này KHÔNG làm:
123
- - Viết lại toàn bộ module hoặc đổi kiến trúc lớn chỉ để sửa 1 bug (→ `qk-refactor`).
124
- - Xây dựng thêm tính năng mới chưa từng tồn tại (→ `qk-feature-delivery`).
125
- - Tự động thay đổi DB schema nếu chưa đánh giá tính tương thích ngược (→ `qk-data-lifecycle`).
126
-
127
- ---
128
-
129
- ## Execution Steps
130
-
131
- ### Step 1 — Observe & Reproduce
132
- ```
133
- Inputs: Error logs, Stack trace, Mô tả từ user
134
- Actions:
135
- - Phân tích vị trí file, dòng code gây lỗi.
136
- - Xác định điều kiện biên (edge cases) hoặc trạng thái dữ liệu kích hoạt bug.
137
- Output: Symptom breakdown & Target files
138
- ```
139
-
140
- ### Step 2 — Hypothesize & Evidence Gathering
141
- ```
142
- Inputs: Target code, Runtime environment
143
- Actions:
144
- - Đặt giả thuyết về nguyên nhân cốt lõi (null pointer, race condition, state mutation, network failure).
145
- - Đọc code liên quan để kiểm chứng giả thuyết (xem callers, callees, data flow).
146
- Exit: BLOCKED nếu giả thuyết không có bằng chứng logic chứng minh.
147
- ```
148
-
149
- ### Step 3 — Surgical Fix
150
- ```
151
- Inputs: Verified root cause
152
- Actions:
153
- - Sửa lỗi chính xác tại nơi phát sinh (surgical modification).
154
- - Đảm bảo xử lý triệt để các edge cases liên đới.
155
- - Giữ nguyên coding style và quy ước hiện hữu của dự án.
156
- Output: Targeted code fix
157
- ```
158
-
159
- ### Step 4 — Verify & Prevent Regression
160
- ```
161
- Inputs: Targeted code fix
162
- Actions:
163
- - Kiểm tra xem lỗi đã được khắc phục hoàn toàn chưa.
164
- - Chạy linter, typecheck và unit tests liên quan.
165
- - Đề xuất hoặc viết regression test để đảm bảo lỗi không tái diễn.
166
- Exit: SUCCESS nếu verification pass và không phát sinh side effects.
167
- ```
168
-
169
- ---
170
-
171
- ## Prompt Template
172
-
173
- AI đọc `DEV_PROFILE.md` để biết stack. Paste đúng error — AI sẽ đọc code, không đoán mò.
174
-
175
- ```
176
- Lỗi: [Error message / stack trace đầy đủ — paste nguyên văn]
177
- Xảy ra khi: [Thao tác / điều kiện / input nào trigger lỗi]
178
- Tần suất: [Luôn luôn / đôi khi / chỉ trên production / chỉ với user X]
179
- File nghi ngờ: [Đường dẫn nếu biết]
180
- Đã thử: [Những gì đã làm — để AI không lặp lại]
181
- ```
182
-
183
- ---
184
-
185
- ### Theo Role — AI điều tra theo chiều sâu khác nhau:
186
-
187
- **role: fe**
188
- ```
189
- Lỗi: Uncaught TypeError: Cannot read properties of null (reading 'userId')
190
- at ProfileCard.tsx:47
191
- Xảy ra khi: Vào /profile sau khi logout rồi login lại bằng account khác
192
- Tần suất: Luôn luôn reproduce được
193
- File nghi ngờ: src/components/ProfileCard.tsx, src/store/authStore.ts
194
- Đã thử: Thêm null check ở line 47 nhưng lỗi chuyển sang line 52
195
- ```
196
- → AI điều tra: stale state trong Zustand/Redux khi re-login, component lifecycle
197
- vs store reset timing, race condition giữa auth state và component render.
198
-
199
- **role: be**
200
- ```
201
- Lỗi: PrismaClientKnownRequestError: Unique constraint failed on field `email`
202
- at POST /api/auth/register — status 500 thay vì 409
203
- Xảy ra khi: Register với email đã tồn tại
204
- Tần suất: Luôn luôn
205
- File nghi ngờ: src/routes/auth/register.ts
206
- Đã thử: Chưa thử gì, mới phát hiện
207
- ```
208
- → AI điều tra: missing error type guard cho Prisma errors, HTTP status code mapping,
209
- idempotency của endpoint, có nên check trước (findUnique) hay catch lỗi.
210
-
211
- **role: fullstack**
212
- ```
213
- Lỗi: Optimistic update trên FE hiện sai data, sau 2s mới sync về đúng
214
- Xảy ra khi: Xóa item trong danh sách → item biến mất → reload lại → item vẫn còn
215
- Tần suất: Chỉ xảy ra khi network chậm (> 1s)
216
- File nghi ngờ: FE: useDeleteItem.ts / BE: DELETE /api/items/:id
217
- Đã thử: Đã kiểm tra BE trả 200 đúng
218
- ```
219
- → AI điều tra: React Query mutation onMutate/onError/onSettled sequence,
220
- cache invalidation timing, BE rollback khi constraint violation,
221
- contract mismatch giữa FE optimistic state và BE response.
222
-
223
- **role: data**
224
- ```
225
- Lỗi: DuplicateKeyError trên BigQuery sau khi re-run DAG ngày 2024-01-15
226
- Job: daily_sales_load — task: load_to_bq
227
- Xảy ra khi: Manual re-run sau khi pipeline fail giữa chừng
228
- Tần suất: Mỗi lần re-run partial load
229
- File nghi ngờ: dags/daily_sales_load.py, transforms/sales_transform.sql
230
- Đã thử: Xóa data ngày đó trên BQ rồi re-run — OK, nhưng không scalable
231
- ```
232
- → AI điều tra: idempotency gap (thiếu MERGE/UPSERT), partition-based delete trước load,
233
- task atomicity design, watermark checkpoint bị reset sai.
234
-
235
- **role: ai-engineer**
236
- ```
237
- Lỗi: RAG trả lời sai — cite đúng document nhưng nội dung không liên quan
238
- Xảy ra khi: Câu hỏi có nhiều từ khóa overlap với nhiều document khác nhau
239
- Tần suất: ~30% queries liên quan đến chủ đề "pricing"
240
- File nghi ngờ: retrieval/vector_search.py, prompts/rag_system.txt
241
- Đã thử: Tăng top_k từ 3 lên 5 — không cải thiện
242
- ```
243
- → AI điều tra: embedding model semantic mismatch, chunk boundary cắt mất context,
244
- thiếu reranking layer, system prompt không enforce grounding,
245
- cần hybrid search (BM25 + dense) cho domain-specific terms.
246
-
247
- **role: devops**
248
- ```
249
- Lỗi: GitHub Actions deploy job fail: "Error: EACCES: permission denied, open '/app/logs'"
250
- Stage: production — chỉ xảy ra sau khi update Docker base image
251
- Xảy ra khi: Deploy lên production container
252
- Tần suất: 100% sau khi merge PR #247
253
- File nghi ngờ: Dockerfile, docker-compose.prod.yml, .github/workflows/deploy.yml
254
- Đã thử: Revert base image — OK, nhưng cần base image mới để patch CVE
255
- ```
256
- → AI điều tra: USER directive trong Dockerfile thay đổi giữa image versions,
257
- volume mount permission, non-root user setup, security vs functionality trade-off.
26
+ - "màn hình trắng"
27
+ - "lỗi 500"
28
+ ---
29
+
30
+ # qk-bug-resolution — Debug & Fix Bug (Surgical Root-Cause Engine)
31
+
32
+ > **Language rule:** Code, identifiers, file names → English. Explanations, summaries → Vietnamese.
33
+
34
+ ---
35
+
36
+ ## 1. Nguyên Tắc Cốt Lõi & Luật Chống Over-Engineering
37
+
38
+ > **Core Principle:** A bug fix must be surgical, evidence-based, and minimal. Never guess. Never refactor surrounding code during a bug fix.
39
+ > **Verification Principle:** PASS is a verified conclusion, never a target. Zero workarounds.
40
+
41
+ ### 🛡️ Anti-Overengineering Rule (CẤM SỬA LAN MAN)
42
+ - **Tối thiểu hóa Diff (Minimal Diff):** Chỉ sửa đúng dòng code hoặc biểu thức gây ra lỗi. Tuyệt đối KHÔNG nhân cơ hội sửa bug để "tiện tay" đổi tên biến xung quanh, format lại cả file, hay viết lại cả hàm.
43
+ - **Không thay đổi kiến trúc trong bản vá:** Nếu phát hiện kiến trúc cũ xấu, giải quyết dứt điểm bug trước bằng một bản vá an toàn (Surgical Guard), sau đó đề xuất người dùng chạy `qk-code-cleaner` sau. Cấm trộn lẫn việc fix bug và việc refactor vào cùng một lần sửa.
44
+
45
+ ### 🔒 No Unrelated Changes Rule (CẤM CHẠM CODE NGOÀI)
46
+ - Tuyệt đối không sửa các file ngoài call-path của bug.
47
+ - Tuyệt đối không tự tiện nâng cấp thư viện lân cận.
48
+ - Nếu phát hiện code smell hoặc vấn đề ngoài scope: **Chỉ ghi nhận vào báo cáo**, tuyệt đối không tự sửa.
49
+
50
+ ### 🛡️ Anti-Fake-Pass Rule (CẤM ÉP PASS ẢO - R-G-14.5)
51
+ - **CẤM** dùng `as any`, `@ts-ignore`, `@ts-expect-error` để che giấu crash hoặc lỗi type.
52
+ - **CẤM** dùng `catch (e) {}` rỗng nuốt exception để code không crash bề mặt.
53
+ - **CẤM** sửa expected assertions trong unit test để lừa test runner chuyển từ đỏ sang xanh.
54
+
55
+ ### ⚖️ Verify Before Claim Rule (XÁC MINH TRƯỚC KHI TUYÊN BỐ)
56
+ - **Cấm tuyên bố đã sửa xong nếu chưa kiểm chứng:** Nếu có test runner hoặc script tái hiện, BẮT BUỘC phải chạy lệnh để chứng minh lỗi đã biến mất.
57
+ - **Báo cáo trung thực:** Nếu không thể chạy môi trường (thiếu DB, thiếu API 3rd party), AI phải ghi rõ: `"Trạng thái: NOT VERIFIED — Đã vá theo bằng chứng tĩnh, chưa thể chạy test tự động. Cần user test tay theo kịch bản dưới đây"`.
58
+
59
+ ---
60
+
61
+ ## 2. Ranh Giới & Phạm Vi Kỹ Thuật (Hard Boundaries)
62
+
63
+ ### ✅ Việc skill này BẮT BUỘC làm:
64
+ - Thu thập và phân tích trực tiếp stack trace, logs, và file mã nguồn xung quanh call-stack.
65
+ - Tìm ra nguyên nhân gốc (Root Cause) bằng chứng cứ trong code thực tế, không dừng ở triệu chứng bề mặt.
66
+ - Phân loại chính xác: Logic Error, State Mutation, Boundary Condition, Type/Schema Mismatch, Race Condition, hoặc Unhandled Exception.
67
+ - Viết bản vá phẫu thuật (Surgical Fix) có tính phòng thủ (null-safety, boundary guard).
68
+ - Tạo hoặc cập nhật regression test để khóa lỗi vĩnh viễn (nếu repo có test framework).
69
+
70
+ ### ❌ Việc skill này TUYỆT ĐỐI KHÔNG làm (Chuyển giao quyền):
71
+ - Tái cấu trúc cả module vì chê code xấu → Chuyển sang `qk-code-cleaner`.
72
+ - Thêm tính năng mới chưa từng có trong spec → Chuyển sang `qk-feature-delivery`.
73
+ - Thay đổi cấu trúc cơ sở dữ liệu lớn → Chuyển sang `qk-backend-data`.
74
+
75
+ ---
76
+
77
+ ## 3. Quy Trình Khép Kín 4 Bước (Sequential Procedure)
78
+
79
+ ```
80
+ [Bước 1: Triangulate] ── Đọc log/trace, mở file thực tế quanh điểm crash, khoanh vùng phạm vi
81
+ │
82
+ ▼
83
+ [Bước 2: Root-Cause] ── Trả lời 5 câu hỏi gốc rễ (R-G-14.1). Nếu thiếu chứng cứ ──► BLOCKED
84
+ │
85
+ ▼
86
+ [Bước 3: Surgical Fix] ── Viết bản vá tối thiểu, defensive programming, không chạm code ngoài
87
+ │
88
+ ▼
89
+ [Bước 4: Verify & Test] ── Chạy test xác thực thực tế. Nếu FAIL ──► Kích hoạt Failure Path
90
+ ```
91
+
92
+ ### Chi tiết các bước:
93
+ 1. **Triangulate (Khoanh vùng):** Mở file chứa dòng lỗi, đọc tối thiểu 30–50 dòng xung quanh để hiểu ngữ cảnh.
94
+ 2. **Root-Cause Gate (R-G-14.1):** Bắt buộc trả lời 5 câu hỏi trước khi sửa:
95
+ - 1. Vấn đề quan sát được là gì?
96
+ - 2. Lỗi xảy ra ở đâu (file & line)?
97
+ - 3. Luồng code nào dẫn tới lỗi?
98
+ - 4. Nguyên nhân gốc rễ là gì?
99
+ - 5. Vì sao bản vá đề xuất sẽ triệt tiêu nguyên nhân gốc rễ này?
100
+ *(Nếu không xác định được với đầy đủ bằng chứng: Chuyển trạng thái `Status: BLOCKED`)*.
101
+ 3. **Surgical Fix:** Vá lỗi tại điểm phát sinh hoặc thêm Guard Clause phòng ngự. Đảm bảo optional chaining `?.`, fallback an toàn.
102
+ 4. **Verification:** Chạy test hoặc kiểm tra call-sites để đảm bảo các nơi khác gọi hàm này không bị ảnh hưởng.
103
+
104
+ ---
105
+
106
+ ## 4. Xử Lý Sự Cố Khi Bản Vá Thất Bại (Failure Path Protocol)
107
+
108
+ Nếu sau khi áp dụng bản vá mà lỗi vẫn còn hoặc sinh ra lỗi mới (Regression):
109
+ 1. **Revert ngay bản vá vừa làm:**
110
+ ```bash
111
+ git checkout HEAD -- path/to/failed_fix_file
112
+ ```
113
+ 2. **Hủy bỏ giả thuyết cũ:** Không cố chấp chắp vá thêm code. Việc test fail chứng tỏ giả thuyết về nguyên nhân gốc đã SAI.
114
+ 3. **Hình thành giả thuyết mới:** Đọc kỹ thông báo lỗi mới xuất hiện để tìm nguyên nhân thực sự sâu hơn (ví dụ: lỗi không nằm ở controller mà nằm ở transformer dữ liệu trước đó).
115
+ 4. **Giới hạn 2 lần thử:** Nếu sau 2 lần vá vẫn không hết lỗi, AI BẮT BUỘC dừng lại, giữ nguyên trạng thái ban đầu và báo cáo chi tiết các giả thuyết đã thử để xin thêm log từ người dùng với trạng thái `Status: BLOCKED`.
116
+
117
+ ---
118
+
119
+ ## 5. Ví Dụ Bản Vá Phẫu Thuật Đa Ngôn Ngữ
120
+
121
+ ### TypeScript / JavaScript:
122
+ ```typescript
123
+ // ❌ Trước khi sửa: TypeError: Cannot read properties of undefined (reading 'address')
124
+ function getUserCity(user: UserResponse) {
125
+ return user.profile.address.city;
126
+ }
127
+
128
+ // ✅ Bản vá tối thiểu (Surgical Fix) có Null-Safety & Fallback:
129
+ function getUserCity(user: UserResponse | null | undefined): string {
130
+ return user?.profile?.address?.city ?? "Unknown";
131
+ }
132
+ ```
133
+
134
+ ### Python:
135
+ ```python
136
+ # ❌ Trước khi sửa: KeyError hoặc NoneType error khi item không có 'price'
137
+ def calculate_subtotal(items):
138
+ return sum(item["price"] * item["quantity"] for item in items)
139
+
140
+ # ✅ Bản vá tối thiểu (Surgical Fix) phòng thủ với dict.get() và type guard:
141
+ def calculate_subtotal(items) -> float:
142
+ if not items:
143
+ return 0.0
144
+ return sum(
145
+ float(item.get("price", 0.0)) * int(item.get("quantity", 1))
146
+ for item in items
147
+ if isinstance(item, dict)
148
+ )
149
+ ```
150
+
151
+ ---
152
+
153
+ ## 6. Thích Ứng Theo Role Kỹ Thuật (Role Adaptation)
154
+
155
+ | Role | Trọng tâm khi Debug & Fix Bug | Hành vi kỹ thuật đặc thù |
156
+ |---|---|---|
157
+ | `frontend` | UI lifecycle, re-rendering, event propagation, API response binding | Kiểm tra network mock, hook dependency array, conditional rendering |
158
+ | `backend` | Transaction rollback, auth middleware, input validation, SQL exception | Kiểm tra query logging, DB connection pool, Zod validation, error status |
159
+ | `fullstack` | Hợp đồng giao tiếp FE-BE, serialization, cookie/session, sync state | Kiểm tra shared types, request payload vs response schema, CORS |
160
+ | `data` | Data corruption, schema drift, null trong pipeline, OOM | Kiểm tra partition path, dbt logs, data quality assertion, idempotency |
161
+ | `devops` | CrashLoopBackOff, memory leak, missing env secret, port conflict | Kiểm tra container logs, Docker healthcheck, ingress/proxy headers |
162
+ | `qa` | Tạo test case tái hiện (Repro step), edge-case boundary verification | Viết automated reproduction script, kiểm tra cross-browser |
163
+
164
+ ---
165
+
166
+ ## 7. Báo Cáo Nghiệm Thu Chuẩn Xác (Truth-First Report)
167
+
168
+ ```markdown
169
+ 🔧 Bug Resolution Summary [Role: <role> | Type: <Dạng lỗi>]
170
+ ─────────────────────────────────────────────────────────────────────
171
+ Trạng thái: [SUCCESS | BLOCKED | FAILED | PARTIAL]
172
+ Triệu chứng ban đầu: [Mô tả ngắn gọn lỗi gặp phải và thông báo lỗi]
173
+ Nguyên nhân gốc rễ: [Cơ chế chính xác gây ra lỗi trong mã nguồn]
174
+
175
+ Vị trí đã can thiệp phẫu thuật (Laser Focus):
176
+ ✅ [FIX] [TênFile.ts:L42](file:///<workspace-root>/path/to/file.ts#L42-L48): [Mô tả bản vá ngắn gọn]
177
+
178
+ Kiểm chứng thực tế (Verify Before Claim):
179
+ • Chạy lệnh kiểm thử: [Đã chạy: `npm test path/to/test` | Chưa chạy (Lý do môi trường)]
180
+ • Kết quả kiểm tra: [Pass | Regression test đã bổ sung | Cần user test tay]
181
+ • Tác động phụ: ✅ Đã rà soát N call-sites, 0 side-effect
182
+
183
+ 📋 Kịch bản test tay dành cho người dùng:
184
+ 1. [Thao tác cụ thể để kích hoạt lại luồng và xác nhận lỗi đã hết]
185
+ ```