ai-developer-skill-os 9.3.1 → 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 +16 -0
  24. package/README.md +125 -205
  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,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đ)