ai-developer-skill-os 9.3.1 → 10.2.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 (258) hide show
  1. package/.agents/AGENTS.md +73 -40
  2. package/.agents/DEV_PROFILE.md +36 -2
  3. package/.agents/LICENSE +21 -21
  4. package/.agents/docs/ARCHITECTURE.md +56 -120
  5. package/.agents/docs/GOVERNANCE.md +3 -3
  6. package/.agents/docs/SPEC.md +137 -60
  7. package/.agents/docs/VERSIONING.md +25 -57
  8. package/.agents/docs/adr/0005-v10-platform-consolidation.md +50 -0
  9. package/.agents/docs/schemas/learning.schema.yml +22 -57
  10. package/.agents/docs/schemas/skill.schema.yml +116 -161
  11. package/.agents/docs/schemas/workflow.schema.yml +51 -26
  12. package/.agents/docs/skill-classification.md +1 -1
  13. package/.agents/registry/graph.json +193 -346
  14. package/.agents/registry/index.yaml +90 -233
  15. package/.agents/rules/coding.md +30 -12
  16. package/.agents/rules/command-safety.md +20 -9
  17. package/.agents/rules/global.md +234 -28
  18. package/.agents/rules/prompt-compiler.md +170 -0
  19. package/.agents/rules/safety.md +1 -1
  20. package/.agents/rules/security.md +1 -1
  21. package/.agents/rules/skill-quality.md +18 -3
  22. package/.agents/skills/_template/SKILL.md +238 -88
  23. package/.agents/skills/qk-api-data-discovery/SKILL.md +456 -0
  24. package/.agents/skills/qk-api-data-discovery/references/bronze-record-format.md +47 -0
  25. package/.agents/skills/qk-api-data-discovery/references/data-contract-yaml.md +72 -0
  26. package/.agents/skills/qk-api-data-discovery/references/discovery-report-template.md +110 -0
  27. package/.agents/skills/qk-backend-data/SKILL.md +339 -0
  28. package/.agents/skills/qk-bug-resolution/SKILL.md +328 -248
  29. package/.agents/skills/qk-bug-resolution/evals/scorecard.yaml +1 -1
  30. package/.agents/skills/qk-code-cleaner/SKILL.md +399 -0
  31. package/.agents/skills/qk-code-review/SKILL.md +320 -247
  32. package/.agents/skills/qk-code-review/evals/scorecard.yaml +1 -1
  33. package/.agents/skills/qk-code-review/references/ai/{v8-schema-validation.md → schema-validation.md} +2 -2
  34. package/.agents/skills/qk-code-review/references/cross-cutting/async-concurrency-patterns.md +515 -515
  35. package/.agents/skills/qk-code-review/references/cross-cutting/error-handling-principles.md +492 -492
  36. package/.agents/skills/qk-code-review/references/cross-cutting/n-plus-one-queries.md +309 -309
  37. package/.agents/skills/qk-code-review/references/cross-cutting/sql-injection-prevention.md +307 -307
  38. package/.agents/skills/qk-code-review/references/cross-cutting/xss-prevention.md +263 -263
  39. package/.agents/skills/qk-code-review/references/languages/angular.md +768 -768
  40. package/.agents/skills/qk-code-review/references/languages/c.md +890 -890
  41. package/.agents/skills/qk-code-review/references/languages/cpp.md +893 -893
  42. package/.agents/skills/qk-code-review/references/languages/css-less-sass.md +661 -661
  43. package/.agents/skills/qk-code-review/references/languages/django.md +985 -985
  44. package/.agents/skills/qk-code-review/references/languages/fastapi.md +580 -580
  45. package/.agents/skills/qk-code-review/references/languages/go.md +993 -993
  46. package/.agents/skills/qk-code-review/references/languages/java.md +409 -409
  47. package/.agents/skills/qk-code-review/references/languages/java8.md +586 -586
  48. package/.agents/skills/qk-code-review/references/languages/kotlin.md +1018 -1018
  49. package/.agents/skills/qk-code-review/references/languages/nestjs.md +593 -593
  50. package/.agents/skills/qk-code-review/references/languages/php.md +684 -684
  51. package/.agents/skills/qk-code-review/references/languages/python.md +1073 -1073
  52. package/.agents/skills/qk-code-review/references/languages/qt.md +757 -757
  53. package/.agents/skills/qk-code-review/references/languages/react.md +871 -871
  54. package/.agents/skills/qk-code-review/references/languages/ruby.md +964 -964
  55. package/.agents/skills/qk-code-review/references/languages/rust.md +846 -846
  56. package/.agents/skills/qk-code-review/references/languages/svelte.md +1064 -1064
  57. package/.agents/skills/qk-code-review/references/languages/swift.md +936 -936
  58. package/.agents/skills/qk-code-review/references/languages/typescript.md +1016 -1016
  59. package/.agents/skills/qk-code-review/references/languages/vue.md +924 -924
  60. package/.agents/skills/qk-code-review/references/languages/zig.md +440 -440
  61. package/.agents/skills/qk-devops-release/SKILL.md +294 -0
  62. package/.agents/skills/qk-feature-delivery/SKILL.md +331 -247
  63. package/.agents/skills/qk-feature-delivery/evals/scorecard.yaml +1 -1
  64. package/.agents/skills/qk-orchestrator/SKILL.md +286 -152
  65. package/.agents/skills/qk-orchestrator/evals/scorecard.yaml +1 -1
  66. package/.agents/skills/qk-orchestrator/references/routing-table.md +1 -1
  67. package/.agents/skills/qk-product-spec/SKILL.md +262 -0
  68. package/.agents/skills/qk-prompt-compiler/SKILL.md +444 -0
  69. package/.agents/skills/qk-ui-engineer/SKILL.md +286 -0
  70. package/.agents/workflows/_schema.yml +146 -146
  71. package/.agents/workflows/bug-resolution.yml +155 -121
  72. package/.agents/workflows/code-review.yml +127 -93
  73. package/.agents/workflows/context-discovery.yml +128 -94
  74. package/.agents/workflows/documentation.yml +124 -90
  75. package/.agents/workflows/feature-delivery.yml +158 -124
  76. package/.agents/workflows/production-release.yml +207 -173
  77. package/.agents/workflows/prompt-compilation.yml +126 -0
  78. package/.agents/workflows/refactor.yml +136 -102
  79. package/.agents/workflows/security-audit.yml +149 -115
  80. package/.agents/workflows/shared/quality-gate.yml +3 -1
  81. package/.agents/workflows/skin-governance.yml +149 -115
  82. package/.agents/workflows/spec-driven-development.yml +116 -87
  83. package/CHANGELOG.md +77 -0
  84. package/README.md +125 -205
  85. package/bin/install.js +324 -329
  86. package/package.json +68 -74
  87. package/tooling/build-registry.js +226 -208
  88. package/tooling/run-aar.js +55 -126
  89. package/tooling/sync-versions.js +2 -2
  90. package/tooling/validate-graph.js +100 -87
  91. package/tooling/validate-skills.js +32 -14
  92. package/.agents/README.md +0 -90
  93. package/.agents/docs/CHI_TIET_SKILLS.md +0 -126
  94. package/.agents/docs/HUONG_DAN_SU_DUNG.md +0 -120
  95. package/.agents/docs/MIGRATION-CLEANUP-V8.1.3.md +0 -36
  96. package/.agents/docs/MIGRATION-STATUS.md +0 -35
  97. package/.agents/docs/MIGRATION-V8.md +0 -10
  98. package/.agents/docs/ROADMAP-V8.2.md +0 -78
  99. package/.agents/docs/V8-CERTIFICATION.md +0 -27
  100. package/.agents/docs/decisions/ADR-001-v8-migration.md +0 -58
  101. package/.agents/docs/decisions/ADR-002-workflow-separation.md +0 -50
  102. package/.agents/docs/decisions/ADR-003-registry-generated.md +0 -54
  103. package/.agents/docs/decisions/ADR-008-skill-boundary-review.md +0 -27
  104. package/.agents/registry/capability-graph.yml +0 -390
  105. package/.agents/registry/skills-index.yml +0 -305
  106. package/.agents/skills/_template/capability.yaml +0 -34
  107. package/.agents/skills/_template/evals/scorecard.yaml +0 -19
  108. package/.agents/skills/qk-access-policy/SKILL.md +0 -206
  109. package/.agents/skills/qk-access-policy/capability.yaml +0 -23
  110. package/.agents/skills/qk-access-policy/evals/scorecard.yaml +0 -36
  111. package/.agents/skills/qk-agent-observability/SKILL.md +0 -108
  112. package/.agents/skills/qk-agent-observability/capability.yaml +0 -29
  113. package/.agents/skills/qk-agent-observability/evals/scorecard.yaml +0 -29
  114. package/.agents/skills/qk-agent-observability/references/scorecard.yaml +0 -80
  115. package/.agents/skills/qk-ai-builder/SKILL.md +0 -254
  116. package/.agents/skills/qk-ai-builder/capability.yaml +0 -23
  117. package/.agents/skills/qk-ai-builder/evals/scorecard.yaml +0 -30
  118. package/.agents/skills/qk-api-consumer/SKILL.md +0 -256
  119. package/.agents/skills/qk-api-consumer/capability.yaml +0 -21
  120. package/.agents/skills/qk-api-consumer/evals/scorecard.yaml +0 -29
  121. package/.agents/skills/qk-api-lifecycle/SKILL.md +0 -251
  122. package/.agents/skills/qk-api-lifecycle/capability.yaml +0 -23
  123. package/.agents/skills/qk-api-lifecycle/evals/scorecard.yaml +0 -29
  124. package/.agents/skills/qk-bug-resolution/capability.yaml +0 -25
  125. package/.agents/skills/qk-code-review/capability.yaml +0 -23
  126. package/.agents/skills/qk-context-loader/SKILL.md +0 -198
  127. package/.agents/skills/qk-context-loader/capability.yaml +0 -23
  128. package/.agents/skills/qk-context-loader/evals/scorecard.yaml +0 -28
  129. package/.agents/skills/qk-data-engineer/SKILL.md +0 -253
  130. package/.agents/skills/qk-data-lifecycle/SKILL.md +0 -197
  131. package/.agents/skills/qk-data-lifecycle/capability.yaml +0 -23
  132. package/.agents/skills/qk-data-lifecycle/evals/scorecard.yaml +0 -29
  133. package/.agents/skills/qk-db-optimizer/SKILL.md +0 -210
  134. package/.agents/skills/qk-db-optimizer/capability.yaml +0 -22
  135. package/.agents/skills/qk-db-optimizer/evals/scorecard.yaml +0 -28
  136. package/.agents/skills/qk-design-system-engineering/SKILL.md +0 -193
  137. package/.agents/skills/qk-design-system-engineering/capability.yaml +0 -25
  138. package/.agents/skills/qk-design-system-engineering/evals/scorecard.yaml +0 -27
  139. package/.agents/skills/qk-devops-platform/SKILL.md +0 -198
  140. package/.agents/skills/qk-devops-platform/capability.yaml +0 -29
  141. package/.agents/skills/qk-devops-platform/evals/scorecard.yaml +0 -28
  142. package/.agents/skills/qk-docs/SKILL.md +0 -193
  143. package/.agents/skills/qk-docs/capability.yaml +0 -23
  144. package/.agents/skills/qk-docs/evals/scorecard.yaml +0 -27
  145. package/.agents/skills/qk-engineering-standard/SKILL.md +0 -89
  146. package/.agents/skills/qk-engineering-standard/capability.yaml +0 -23
  147. package/.agents/skills/qk-engineering-standard/evals/scorecard.yaml +0 -28
  148. package/.agents/skills/qk-engineering-standard/references/anti-patterns.md +0 -121
  149. package/.agents/skills/qk-engineering-standard/rules/backend.md +0 -122
  150. package/.agents/skills/qk-engineering-standard/rules/database.md +0 -3
  151. package/.agents/skills/qk-engineering-standard/rules/frontend.md +0 -152
  152. package/.agents/skills/qk-engineering-standard/rules/security.md +0 -3
  153. package/.agents/skills/qk-engineering-standard/rules/testing.md +0 -3
  154. package/.agents/skills/qk-fe-api-integration/SKILL.md +0 -704
  155. package/.agents/skills/qk-fe-api-integration/capability.yaml +0 -21
  156. package/.agents/skills/qk-fe-api-integration/evals/scorecard.yaml +0 -29
  157. package/.agents/skills/qk-feature-delivery/capability.yaml +0 -24
  158. package/.agents/skills/qk-frontend-architecture/SKILL.md +0 -127
  159. package/.agents/skills/qk-frontend-architecture/capability.yaml +0 -28
  160. package/.agents/skills/qk-frontend-architecture/evals/scorecard.yaml +0 -28
  161. package/.agents/skills/qk-help/SKILL.md +0 -107
  162. package/.agents/skills/qk-help/capability.yaml +0 -20
  163. package/.agents/skills/qk-help/evals/scorecard.yaml +0 -13
  164. package/.agents/skills/qk-orchestrator/capability.yaml +0 -22
  165. package/.agents/skills/qk-product-specification/SKILL.md +0 -187
  166. package/.agents/skills/qk-product-specification/capability.yaml +0 -27
  167. package/.agents/skills/qk-product-specification/evals/scorecard.yaml +0 -27
  168. package/.agents/skills/qk-production-release/SKILL.md +0 -188
  169. package/.agents/skills/qk-production-release/capability.yaml +0 -27
  170. package/.agents/skills/qk-production-release/evals/scorecard.yaml +0 -28
  171. package/.agents/skills/qk-project-audit/SKILL.md +0 -174
  172. package/.agents/skills/qk-project-bootstrap/SKILL.md +0 -372
  173. package/.agents/skills/qk-project-bootstrap/capability.yaml +0 -23
  174. package/.agents/skills/qk-project-bootstrap/evals/scorecard.yaml +0 -28
  175. package/.agents/skills/qk-project-health/SKILL.md +0 -202
  176. package/.agents/skills/qk-project-health/capability.yaml +0 -23
  177. package/.agents/skills/qk-project-health/evals/scorecard.yaml +0 -27
  178. package/.agents/skills/qk-project-memory/SKILL.md +0 -303
  179. package/.agents/skills/qk-project-memory/capability.yaml +0 -23
  180. package/.agents/skills/qk-project-memory/evals/scorecard.yaml +0 -27
  181. package/.agents/skills/qk-refactor/SKILL.md +0 -243
  182. package/.agents/skills/qk-refactor/capability.yaml +0 -26
  183. package/.agents/skills/qk-refactor/evals/scorecard.yaml +0 -27
  184. package/.agents/skills/qk-security-audit/SKILL.md +0 -280
  185. package/.agents/skills/qk-security-audit/capability.yaml +0 -29
  186. package/.agents/skills/qk-security-audit/evals/scorecard.yaml +0 -27
  187. package/.agents/skills/qk-system-evolution/SKILL.md +0 -625
  188. package/.agents/skills/qk-system-evolution/capability.yaml +0 -24
  189. package/.agents/skills/qk-system-evolution/evals/scorecard.yaml +0 -26
  190. package/.agents/skills/qk-test-engineering/SKILL.md +0 -215
  191. package/.agents/skills/qk-test-engineering/capability.yaml +0 -28
  192. package/.agents/skills/qk-test-engineering/evals/scorecard.yaml +0 -26
  193. package/.agents/skills/qk-ui-audit/SKILL.md +0 -175
  194. package/.agents/skills/qk-ui-audit/capability.yaml +0 -23
  195. package/.agents/skills/qk-ui-audit/evals/scorecard.yaml +0 -26
  196. package/.agents/skills/qk-ui-audit/references/anti-slop-checklist.md +0 -136
  197. package/.agents/skills/qk-ui-builder/SKILL.md +0 -521
  198. package/.agents/skills/qk-ui-builder/capability.yaml +0 -29
  199. package/.agents/skills/qk-ui-builder/evals/scorecard.yaml +0 -26
  200. package/.agents/skills/qk-ui-builder/references/anti-patterns.md +0 -295
  201. package/.agents/skills/qk-ui-builder/references/color.md +0 -115
  202. package/.agents/skills/qk-ui-builder/references/component-cookbook.md +0 -458
  203. package/.agents/skills/qk-ui-builder/references/copy.md +0 -250
  204. package/.agents/skills/qk-ui-builder/references/interaction-and-states.md +0 -115
  205. package/.agents/skills/qk-ui-builder/references/layout-and-space.md +0 -111
  206. package/.agents/skills/qk-ui-builder/references/macrostructures/01-bento-grid.md +0 -48
  207. package/.agents/skills/qk-ui-builder/references/macrostructures/02-long-document.md +0 -50
  208. package/.agents/skills/qk-ui-builder/references/macrostructures/03-marquee-hero.md +0 -51
  209. package/.agents/skills/qk-ui-builder/references/macrostructures/04-stat-led.md +0 -49
  210. package/.agents/skills/qk-ui-builder/references/macrostructures/05-workbench.md +0 -44
  211. package/.agents/skills/qk-ui-builder/references/macrostructures/06-conversational-faq.md +0 -50
  212. package/.agents/skills/qk-ui-builder/references/macrostructures/07-manifesto.md +0 -51
  213. package/.agents/skills/qk-ui-builder/references/macrostructures/08-photographic.md +0 -50
  214. package/.agents/skills/qk-ui-builder/references/macrostructures/09-quote-led.md +0 -50
  215. package/.agents/skills/qk-ui-builder/references/macrostructures/11-catalogue.md +0 -49
  216. package/.agents/skills/qk-ui-builder/references/macrostructures/12-letter.md +0 -49
  217. package/.agents/skills/qk-ui-builder/references/macrostructures/13-index-first.md +0 -49
  218. package/.agents/skills/qk-ui-builder/references/macrostructures/14-narrative-workflow.md +0 -48
  219. package/.agents/skills/qk-ui-builder/references/macrostructures/15-split-studio.md +0 -48
  220. package/.agents/skills/qk-ui-builder/references/macrostructures/16-feature-stack.md +0 -51
  221. package/.agents/skills/qk-ui-builder/references/macrostructures/17-type-specimen.md +0 -48
  222. package/.agents/skills/qk-ui-builder/references/macrostructures/18-portfolio-grid.md +0 -48
  223. package/.agents/skills/qk-ui-builder/references/macrostructures/19-map-diagram.md +0 -50
  224. package/.agents/skills/qk-ui-builder/references/macrostructures/20-ecosystem-index.md +0 -48
  225. package/.agents/skills/qk-ui-builder/references/macrostructures/21-component-playground.md +0 -45
  226. package/.agents/skills/qk-ui-builder/references/macrostructures.md +0 -38
  227. package/.agents/skills/qk-ui-builder/references/motion.md +0 -95
  228. package/.agents/skills/qk-ui-builder/references/responsive.md +0 -115
  229. package/.agents/skills/qk-ui-builder/references/slop-test.md +0 -135
  230. package/.agents/skills/qk-ui-builder/references/structure.md +0 -280
  231. package/.agents/skills/qk-ui-builder/references/themes/atmospheric.md +0 -53
  232. package/.agents/skills/qk-ui-builder/references/themes/carnival.md +0 -52
  233. package/.agents/skills/qk-ui-builder/references/themes/cobalt.md +0 -52
  234. package/.agents/skills/qk-ui-builder/references/themes/editorial.md +0 -52
  235. package/.agents/skills/qk-ui-builder/references/themes/garden.md +0 -52
  236. package/.agents/skills/qk-ui-builder/references/themes/hum.md +0 -52
  237. package/.agents/skills/qk-ui-builder/references/themes/lumen.md +0 -52
  238. package/.agents/skills/qk-ui-builder/references/themes/midnight.md +0 -52
  239. package/.agents/skills/qk-ui-builder/references/themes/modern-minimal.md +0 -52
  240. package/.agents/skills/qk-ui-builder/references/themes/playful.md +0 -52
  241. package/.agents/skills/qk-ui-builder/references/themes/specimen.md +0 -52
  242. package/.agents/skills/qk-ui-builder/references/themes/terminal.md +0 -52
  243. package/.agents/skills/qk-ui-builder/references/typography.md +0 -129
  244. package/.agents/skills/qk-ui-system-builder/SKILL.md +0 -183
  245. package/.agents/skills/qk-ui-system-builder/capability.yaml +0 -25
  246. package/.agents/skills/qk-ui-system-builder/evals/scorecard.yaml +0 -26
  247. package/.agents/skills/qk-upgrade/SKILL.md +0 -301
  248. package/.agents/skills/qk-upgrade/capability.yaml +0 -24
  249. package/.agents/skills/qk-upgrade/evals/scorecard.yaml +0 -26
  250. package/.agents/skills/qk-validation-gate/SKILL.md +0 -88
  251. package/.agents/skills/qk-validation-gate/capability.yaml +0 -23
  252. package/.agents/skills/qk-validation-gate/evals/scorecard.yaml +0 -26
  253. package/.agents/skills/qk-web-quality-gate/SKILL.md +0 -197
  254. package/.agents/skills/qk-web-quality-gate/capability.yaml +0 -24
  255. package/.agents/skills/qk-web-quality-gate/evals/scorecard.yaml +0 -26
  256. package/.agents/workflows/research.yml +0 -75
  257. package/.agents/workflows/skill-evolution.yml +0 -97
  258. package/tooling/fix-refactor.js +0 -8
@@ -1,253 +0,0 @@
1
- ---
2
- # ── Identity ───────────────────────────────────────────────
3
- name: qk-data-engineer
4
- version: 9.2.0
5
- status: stable
6
- description: "Thiết kế và implement data pipeline với best practices: idempotency, data quality gate, lineage, incremental processing. Dùng skill này khi user nhắc đến: data pipeline, etl, elt, dbt, dbt model, airflow dag, spark job, medallion architecture, data quality, incremental load, schema evolution, backfill, data warehouse — kể cả khi chỉ nói \"load data từ X sang Y\"."
7
- platforms: [antigravity, claude-code, cursor, windsurf, kilo-code]
8
-
9
- # ── V9: Classification ─────────────────────────────────────
10
- type: capability
11
-
12
- intent:
13
- - data-pipeline
14
- - data-modeling
15
- - data-quality
16
- - etl-optimization
17
-
18
- complexity:
19
- level: high
20
- criteria:
21
- files_affected: "1-15"
22
- has_behavior_change: true
23
- has_external_dependency: true
24
- has_breaking_change: false
25
-
26
- triggers:
27
- - "data pipeline"
28
- - "etl"
29
- - "elt"
30
- - "dbt"
31
- - "dbt model"
32
- - "airflow dag"
33
- - "spark job"
34
- - "medallion architecture"
35
- - "data quality"
36
- - "incremental load"
37
- - "schema evolution"
38
- - "backfill"
39
- - "data warehouse"
40
-
41
- selection:
42
- priority: high
43
- confidence_threshold: 0.85
44
-
45
- # ── V8: References ─────────────────────────────────────────
46
- workflow: feature-delivery
47
-
48
- rules:
49
- - global
50
- - coding
51
- - safety
52
-
53
- tools:
54
- - filesystem
55
- - terminal
56
-
57
- related_skills:
58
- - qk-data-lifecycle
59
- - qk-db-optimizer
60
-
61
- knowledge_scope:
62
- owns:
63
- - data-pipeline-architecture
64
- - data-contracts
65
- - data-quality-gate
66
- - incremental-processing
67
- references:
68
- - architecture
69
- - security
70
- - performance
71
-
72
- # ── V8: Verification ───────────────────────────────────────
73
- verification:
74
- required: true
75
- strategy: feature
76
-
77
- examples: []
78
- learnings: []
79
-
80
- # ── V7 Runtime ─────────────────────────────────────────────
81
- execution_mode: deterministic
82
- cost: high
83
- latency: medium
84
- risk: high
85
- side_effects: edit_files
86
- produces: [code, schema, report]
87
- consumes:
88
- - user-request
89
- - project-source-code
90
- - project-config
91
- - project-tests
92
- - project-documentation
93
- - project-memory
94
-
95
- token_budget:
96
- max_files_read: 20
97
- max_lines_per_read: 200
98
- max_shell_commands: 10
99
- stop_early: true
100
-
101
- exit_codes: [SUCCESS, BLOCKED, FAILED, PARTIAL]
102
- ---
103
-
104
- # qk-data-engineer — Universal Data Engineer
105
-
106
- > **Language rule:** Code, identifiers, file names → English. Explanations, summaries → Vietnamese.
107
-
108
- Chịu trách nhiệm thiết kế và hiện thực hóa các đường ống dữ liệu (Data Pipelines: ETL/ELT) tuân thủ nghiêm ngặt 4 trụ cột kỹ thuật dữ liệu: **Idempotency (Tính lũy thừa) → Data Quality Gate (Cổng kiểm tra chất lượng) → Lineage (Nguồn gốc luồng dữ liệu) → Incremental Processing (Xử lý gia tăng)**.
109
-
110
- ---
111
-
112
- ## Preconditions
113
-
114
- Trước khi xây dựng hoặc cập nhật pipeline dữ liệu, AI BẮT BUỘC kiểm tra:
115
-
116
- - [ ] Xác định Data stack từ `.agents/DEV_PROFILE.md` (Orchestrator: Airflow/Prefect, Warehouse: BigQuery/Snowflake/Postgres, Transformation: dbt/Spark/Pandas).
117
- - [ ] Xác định chiến lược Idempotency (Upsert, Merge, Partition overwrite, Watermarking).
118
- - [ ] Xác định ngưỡng Data Quality Gates (Null check, Uniqueness, Volume anomaly, Freshness).
119
- - [ ] Nếu pipeline không có cơ chế Idempotent (chạy lại gây duplicate dữ liệu) hoặc thiếu validation:
120
- → **EXIT: BLOCKED**
121
- → Báo cáo user yêu cầu xác định deduplication key / partition strategy trước khi code.
122
-
123
- ---
124
-
125
- ## Scope
126
-
127
- ✅ Skill này làm:
128
- - Thiết kế và cài đặt dbt models (Staging → Intermediate → Marts), Spark jobs, Airflow DAGs.
129
- - Cấu hình chiến lược Incremental load (Timestamp watermarking, CDC, Partition replacement).
130
- - Thiết lập Data Quality Assertions (dbt tests, Great Expectations, Soda checks).
131
- - Quản lý Schema Evolution (thay đổi cột an toàn, chống silent failure / schema drift).
132
- - Viết tài liệu Lineage và từ điển dữ liệu (Data Dictionary).
133
-
134
- ❌ Skill này KHÔNG làm:
135
- - Thiết kế UI Dashboard hay biểu đồ trên web app (→ `qk-ui-builder`).
136
- - Viết CRUD REST API cho web backend thông thường (→ `qk-api-lifecycle`).
137
- - Quản lý hạ tầng cụm máy chủ vật lý / Kafka cluster (→ `qk-devops-platform`).
138
-
139
- ---
140
-
141
- ## Execution Steps
142
-
143
- ### Step 1 — Source Analysis & Data Contract
144
- ```
145
- Inputs: Yêu cầu pipeline từ user, Source schema, Volume ước tính
146
- Actions:
147
- - Phân tích cấu trúc nguồn dữ liệu (Source freshness, Primary keys, Update timestamps).
148
- - Thỏa thuận Data Contract giữa nhà cung cấp dữ liệu và Data Warehouse.
149
- - Xác định partition strategy (theo date/hour) và clustering keys.
150
- Output: Pipeline Architectural Plan & Contract
151
- ```
152
-
153
- ### Step 2 — Transformation & Idempotent Logic
154
- ```
155
- Inputs: Contract, Tech stack
156
- Actions:
157
- - Viết code transformation (SQL/Python/PySpark) chia theo các tầng Medallion (Bronze/Silver/Gold).
158
- - Đảm bảo logic tính toán có tính lũy thừa (Idempotent): rerun nhiều lần không thay đổi kết quả.
159
- - Tối ưu hóa câu query xử lý dữ liệu lớn (Pruning partitions, tránh full table scan).
160
- Output: Transformation scripts & Models
161
- ```
162
-
163
- ### Step 3 — Quality Gates & Anomaly Checks
164
- ```
165
- Inputs: Transformation scripts
166
- Actions:
167
- - Thêm tests bắt buộc: Not null, Unique, Referential integrity (Foreign keys).
168
- - Thêm row count checks và freshness sensors để phát hiện dữ liệu rỗng bất thường.
169
- - Cấu hình cơ chế cảnh báo (Alert) khi chất lượng dữ liệu không đạt chuẩn.
170
- Output: Test suite & Monitoring rules
171
- ```
172
-
173
- ### Step 4 — Verification & Dry Run
174
- ```
175
- Inputs: Pipeline code & Quality tests
176
- Actions:
177
- - Kiểm tra cú pháp, compile SQL/dbt models.
178
- - Xác nhận kế hoạch backfill dữ liệu lịch sử an toàn.
179
- Exit: SUCCESS nếu pipeline bảo đảm tính idempotent và pass mọi quality gates.
180
- ```
181
-
182
- ---
183
-
184
- ## Prompt Template
185
-
186
- AI đọc `DEV_PROFILE.md` để biết data stack (pipeline/warehouse/format/broker).
187
- Mô tả pipeline cần làm — AI sẽ thiết kế theo đúng tool đang dùng.
188
-
189
- ```
190
- Pipeline: [Tên pipeline / DAG / job]
191
- Source: [Nguồn dữ liệu: DB / API / file / stream / ...]
192
- Destination: [Đích: warehouse / data lake / another DB / ...]
193
- Frequency: [Batch daily / hourly / streaming / event-driven]
194
- Volume: [Số rows / GB ước tính mỗi lần chạy]
195
- SLA: [Data phải có mặt lúc mấy giờ? Latency tối đa?]
196
- Rules: [Idempotency, dedup, schema evolution, data quality gate]
197
- ```
198
-
199
- ---
200
-
201
- ### Ví dụ theo tech stack:
202
-
203
- **dbt + BigQuery + Airflow**
204
- ```
205
- Pipeline: daily_order_metrics
206
- Source: PostgreSQL (production DB) — bảng orders, order_items, products
207
- Destination: BigQuery dataset: mart — table: fct_order_metrics
208
- Frequency: Daily batch lúc 3AM UTC
209
- Volume: ~50k rows/ngày, tăng trưởng 10%/tháng
210
- SLA: Data sẵn sàng trước 6AM UTC cho dashboard
211
- Rules: - Idempotent: re-run ngày bất kỳ cho kết quả giống nhau
212
- - Không load ngày hiện tại (incomplete data)
213
- - Alert nếu row count giảm > 20% so với 7 ngày trước
214
- - Schema thay đổi ở source → fail loud, không silent corrupt
215
- ```
216
- → AI thiết kế: dbt model layers (staging → intermediate → mart),
217
- Airflow DAG với sensor check source freshness, incremental model strategy
218
- (merge key = order_id + date), dbt test (not_null, unique, accepted_values),
219
- partition by date trên BQ để tránh full scan, audit log table.
220
-
221
- **Spark + Delta Lake + Databricks**
222
- ```
223
- Pipeline: clickstream_sessionization
224
- Source: Kafka topic: user.clicks — ~5M events/ngày
225
- Destination: Delta Lake: /data/gold/user_sessions
226
- Frequency: Micro-batch mỗi 5 phút (Structured Streaming)
227
- Volume: ~3.5GB/ngày raw
228
- SLA: Session data available trong vòng 10 phút kể từ event
229
- Rules: - Session timeout: 30 phút không activity
230
- - Exactly-once processing
231
- - Backfill safe (có thể re-process từ Kafka offset)
232
- ```
233
- → AI thiết kế: Spark Structured Streaming với watermark cho late data,
234
- session window aggregation, Delta Lake MERGE cho upsert sessions,
235
- checkpoint location strategy, schema enforcement + evolution,
236
- Z-ORDER optimization cho query patterns, monitoring (lag metrics).
237
-
238
- **Airbyte + dbt + Snowflake**
239
- ```
240
- Pipeline: crm_sync — Salesforce → Snowflake → mart
241
- Source: Salesforce (Airbyte connector) — objects: Account, Opportunity, Contact
242
- Destination: Snowflake RAW → STAGING → MART
243
- Frequency: Airbyte sync mỗi 1 giờ, dbt transform mỗi 2 giờ
244
- Volume: ~500k records total, delta ~2k/ngày
245
- SLA: CRM data lag tối đa 3 giờ so với Salesforce
246
- Rules: - Không xóa hard delete từ source (soft delete pattern)
247
- - PII fields (email, phone) phải masked trong MART layer
248
- - Lineage từ Salesforce ID phải traceable đến mart row
249
- ```
250
- → AI thiết kế: Airbyte connection config + normalization settings,
251
- dbt source freshness test, PII masking macro, soft-delete handling
252
- (dbt snapshot vs custom), column-level lineage documentation,
253
- Snowflake role-based access cho MART vs RAW.
@@ -1,197 +0,0 @@
1
- ---
2
- # ── Identity ───────────────────────────────────────────────
3
- name: qk-data-lifecycle
4
- version: 9.2.0
5
- status: stable
6
- description: "Quản lý Schema và Migration cơ sở dữ liệu an toàn — schema freeze, backward-compatible migrations, data transformation, zero-downtime deployment. Dùng skill này khi user nhắc đến: sửa schema, migration, database model, db schema, cập nhật database, đổi model, thêm cột, alter table — kể cả khi chỉ nói 'thêm trường phone vào bảng users'."
7
- platforms: [antigravity, claude-code, cursor, windsurf, kilo-code]
8
-
9
- # ── V9: Classification ─────────────────────────────────────
10
- type: capability
11
-
12
- intent:
13
- - schema-management
14
- - database-migration
15
-
16
- complexity:
17
- level: high
18
- criteria:
19
- files_affected: "1-5"
20
- has_behavior_change: true
21
- has_external_dependency: true
22
- has_breaking_change: false
23
-
24
- triggers:
25
- - "sửa schema"
26
- - "migration"
27
- - "database model"
28
- - "db schema"
29
- - "cập nhật database"
30
- - "đổi model"
31
- - "thêm cột"
32
- - "alter table"
33
-
34
-
35
- # ── V8: References ─────────────────────────────────────────
36
- workflow: feature-delivery
37
-
38
- rules:
39
- - global
40
- - coding
41
- - safety
42
-
43
- tools:
44
- - filesystem
45
- - terminal
46
-
47
- related_skills:
48
- - qk-db-optimizer
49
- - qk-api-lifecycle
50
-
51
- knowledge_scope:
52
- owns:
53
- - schema
54
- - migrations
55
- - data-contracts
56
- references:
57
- - architecture
58
- - security
59
- - anti-patterns
60
-
61
- # ── V8: Verification ───────────────────────────────────────
62
- verification:
63
- required: true
64
- strategy: migration-safety
65
-
66
- selection:
67
- priority: high
68
- confidence_threshold: 0.85
69
-
70
- examples: []
71
- learnings: []
72
-
73
- # ── V7 Runtime ─────────────────────────────────────────────
74
- execution_mode: deterministic
75
- cost: high
76
- latency: slow
77
- risk: high
78
- side_effects: edit_files
79
- produces: [code, schema]
80
- consumes: [context-graph, user-description]
81
-
82
- token_budget:
83
- max_files_read: 5
84
- max_lines_per_read: 150
85
- max_shell_commands: 2
86
- stop_early: true
87
-
88
- exit_codes: [SUCCESS, BLOCKED, FAILED, PARTIAL]
89
- ---
90
-
91
- # qk-data-lifecycle — Database Schema & Migration Guardian
92
-
93
- > **Language rule:** Code, identifiers, file names → English. Explanations, summaries → Vietnamese.
94
-
95
- Chịu trách nhiệm quản lý vòng đời Schema DB và Migration an toàn theo nguyên tắc: **Freeze schema → Backward-compatible migration (Expand & Contract) → Cleanup**. Tuyệt đối không làm đứt gãy runtime hoặc gây mất mát dữ liệu live.
96
-
97
- ---
98
-
99
- ## Preconditions
100
-
101
- Trước khi thay đổi bất kỳ file schema hay migration nào, AI BẮT BUỘC kiểm tra:
102
-
103
- - [ ] Xác định ORM/Tool đang dùng từ `DEV_PROFILE.md` (Prisma, Drizzle, TypeORM, Alembic, Knex, v.v.).
104
- - [ ] Xác định Database engine (PostgreSQL, MySQL, SQLite, MongoDB).
105
- - [ ] **Destructive check**: Thay đổi có chứa thao tác xóa/đổi tên cột (`DROP COLUMN`, `RENAME COLUMN`, thay đổi type thu hẹp dữ liệu) không?
106
- - [ ] Nếu là thay đổi Destructive:
107
- → **EXIT: BLOCKED**
108
- → Báo cáo user: Cảnh báo rủi ro downtime và đề xuất áp dụng **Expand & Contract Pattern** thay vì drop/rename trực tiếp.
109
-
110
- ---
111
-
112
- ## Scope
113
-
114
- ✅ Skill này làm:
115
- - Cập nhật file định nghĩa Schema (ví dụ `schema.prisma`, `schema.ts`, model files).
116
- - Tạo migration scripts (SQL hoặc ORM-generated) có tính lũy tiến, an toàn.
117
- - Thiết kế chiến lược **Expand & Contract** khi đổi tên cột hoặc tách bảng (Giai đoạn 1: Thêm cột mới + dual write; Giai đoạn 2: Backfill data; Giai đoạn 3: Deprecate & remove cột cũ).
118
- - Đảm bảo các cột mới có `DEFAULT` value hoặc `NULLABLE` để tránh khóa bảng (table lock) hoặc lỗi insert từ code cũ đang chạy.
119
- - Cập nhật types/interfaces tương ứng trong ứng dụng.
120
-
121
- ❌ Skill này KHÔNG làm:
122
- - Chạy lệnh phá hủy tự động (`prisma migrate reset`, `drop database`, `truncate table`).
123
- - Viết câu query phân tích hiệu năng/EXPLAIN (→ `qk-db-optimizer`).
124
- - Viết API endpoint xử lý request/response (→ `qk-api-lifecycle`).
125
-
126
- ---
127
-
128
- ## Execution Steps
129
-
130
- ### Step 1 — Phân tích Schema Diff & Đánh giá rủi ro
131
- ```
132
- Inputs: Schema hiện tại, Yêu cầu thay đổi từ user
133
- Actions:
134
- - So sánh schema cũ và mới.
135
- - Phân loại:
136
- - Safe: Thêm bảng mới, thêm nullable column, thêm column có default an toàn.
137
- - Caution: Thêm index trên bảng lớn (cần CONCURRENTLY nếu Postgres).
138
- - Dangerous: Xóa cột, đổi tên cột, đổi kiểu dữ liệu (Int -> String hoặc ngược lại).
139
- Exit: BLOCKED nếu gặp Dangerous change mà chưa có kế hoạch Expand & Contract
140
- ```
141
-
142
- ### Step 2 — Áp dụng Expand & Contract (nếu có Breaking Change)
143
- ```
144
- Quy trình chuẩn:
145
- 1. Expand: Thêm cột mới song song (nullable). Code ứng dụng ghi đồng thời cả 2 cột.
146
- 2. Migrate Data: Chạy batch script chuyển dữ liệu từ cột cũ sang cột mới.
147
- 3. Contract: Chuyển code đọc từ cột mới. Sau 1 release ổn định mới xóa cột cũ.
148
- ```
149
-
150
- ### Step 3 — Sinh Migration Script & Cập nhật ORM
151
- ```
152
- Actions:
153
- - Sửa file schema chính (`schema.prisma`, Drizzle `schema.ts`, SQLAlchemy model).
154
- - Tạo migration file có timestamp rõ ràng (VD: `20260914_add_phone_to_users.sql`).
155
- - Đi kèm cả script Rollback (Down migration) nếu framework hỗ trợ.
156
- - Chạy code generation cho types (VD: `npx prisma generate`).
157
- ```
158
-
159
- ### Step 4 — Verification
160
- ```
161
- Actions:
162
- - Kiểm tra cú pháp SQL của migration file.
163
- - Kiểm tra tính tương thích ngược: Code cũ vẫn insert/query được mà không crash.
164
- - Kiểm tra Type definitions trong app có bị type error không (chạy tsc/type-check).
165
- ```
166
-
167
- ---
168
-
169
- ## Prompt Template
170
-
171
- ```
172
- DB Engine: [PostgreSQL / MySQL / SQLite / MongoDB]
173
- ORM/Tool: [Prisma / Drizzle / TypeORM / Alembic / Knex]
174
- Thay đổi: [Thêm bảng mới / Thêm trường / Sửa quan hệ / Đổi kiểu dữ liệu]
175
- Mục đích: [Mô tả nghiệp vụ cần lưu trữ]
176
- Dữ liệu live: [Có dữ liệu production đang chạy không?]
177
- ```
178
-
179
- ### Ví dụ theo Stack:
180
-
181
- **Prisma (PostgreSQL)**
182
- ```
183
- DB Engine: PostgreSQL
184
- ORM: Prisma
185
- Thay đổi: Thêm trường `phoneNumber` vào model `User`, không bắt buộc nhưng phải unique nếu có.
186
- Dữ liệu live: Có (hơn 100k users)
187
- ```
188
- → AI cập nhật: `phoneNumber String? @unique` trong `schema.prisma`, sinh migration SQL với `CREATE UNIQUE INDEX CONCURRENTLY` (nếu cần), chạy `prisma generate`.
189
-
190
- **Drizzle ORM (MySQL)**
191
- ```
192
- DB Engine: MySQL
193
- ORM: Drizzle
194
- Thay đổi: Tạo bảng `AuditLog` lưu lịch sử hành động người dùng (id, userId, action, metadata JSON, createdAt).
195
- ```
196
- → AI tạo: `auditLogs` table definition trong `src/db/schema.ts`, sinh migration file với Drizzle Kit, export type `AuditLog` và `NewAuditLog`.
197
-
@@ -1,23 +0,0 @@
1
- # Auto-generated from SKILL.md frontmatter
2
- schema_version: 1
3
- id: "qk-data-lifecycle"
4
- version: "9.1.0"
5
- description: "Quản lý Schema, Migrations an toàn — schema freeze → backward-compat migration → cleanup."
6
- tools:
7
- - "filesystem"
8
- - "terminal"
9
- knowledge:
10
- owns:
11
- - "schema"
12
- - "migrations"
13
- references:
14
- - "architecture"
15
- - "security"
16
- - "anti-patterns"
17
- eval:
18
- scorecard: "evals/scorecard.yaml"
19
- decision_boundary:
20
- owns:
21
- - "qk-data-lifecycle"
22
- does_not_own: []
23
- conflicts_with: []
@@ -1,29 +0,0 @@
1
- name: qk-data-lifecycle-eval
2
- description: Đánh giá chất lượng quản lý Schema và an toàn Migration
3
- version: 9.1.0
4
- threshold: 90 # Tiêu chuẩn rất cao vì rủi ro mất mát dữ liệu (Data loss) là CRITICAL
5
-
6
- metrics:
7
- - id: backward_compatible_migration
8
- name: Migration tương thích ngược và an toàn
9
- description: Agent có tạo migration an toàn, tránh phá vỡ dữ liệu đang chạy không?
10
- weight: 40
11
- criteria:
12
- - Không sử dụng các lệnh destructive (DROP COLUMN, RENAME TABLE) một cách trực tiếp mà không qua chiến lược 3-phase (20đ)
13
- - Các cột mới (add column) phải nullable hoặc có default value (10đ)
14
- - Luôn định nghĩa hàm rollback `down()` (10đ)
15
-
16
- - id: pii_and_security
17
- name: Bảo mật dữ liệu PII (R-SEC-04)
18
- description: Dữ liệu nhạy cảm có được mã hóa theo yêu cầu không?
19
- weight: 30
20
- criteria:
21
- - Tự động nhận diện và áp dụng cơ chế hashing/encryption cho các cột chứa dữ liệu PII (Personal Identifiable Information) (30đ)
22
-
23
- - id: layer_separation
24
- name: Tách biệt Logic và Schema
25
- description: Schema và truy vấn có được tách biệt khỏi Business Logic không?
26
- weight: 30
27
- criteria:
28
- - Khai báo Schema (Model/Entity) rõ ràng trước khi viết truy vấn (15đ)
29
- - Repository chỉ chứa truy vấn Database, không chứa Business Logic phức tạp (15đ)