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
@@ -0,0 +1,456 @@
1
+ ---
2
+ name: qk-api-data-discovery
3
+ version: 10.2.0
4
+ status: stable
5
+ subtitle: "API & Data Discovery"
6
+ description: "Kỹ sư Khám phá API & Hợp đồng Dữ liệu: Phân tích Postman collection, thu thập phản hồi thực tế (Real API Evidence), khám phá Schema & Data Dictionary, đánh giá tầng Bronze Medallion, đối chiếu kiến trúc dự án và xuất báo cáo Checkpoint. Tuân thủ nguyên tắc: Discovery First, Implementation Only on User Direction. Dùng khi: postman, api discovery, api evidence, schema discovery, data contract, data dictionary, bronze ingestion, chuẩn hóa postman, phân tích postman collection."
7
+ platforms: [antigravity, claude, opencode]
8
+ runtime_version: 1
9
+ tools:
10
+ - filesystem
11
+ - terminal
12
+ rules:
13
+ - global
14
+ - coding-standards
15
+ - security
16
+ workflow: context-discovery
17
+ triggers:
18
+ - "postman"
19
+ - "chuẩn hóa postman"
20
+ - "phân tích postman"
21
+ - "api discovery"
22
+ - "api evidence"
23
+ - "schema discovery"
24
+ - "data contract"
25
+ - "data dictionary"
26
+ - "bronze ingestion"
27
+ - "postman_collection"
28
+ - "khám phá api"
29
+ - "api to data"
30
+ ---
31
+
32
+ # qk-api-data-discovery — API & Data Discovery (API Evidence, Schema Discovery & Data Contract Engine)
33
+
34
+ > **Language rule:** Code, schema identifiers, file names, JSON keys → English. Explanations, analysis, recommendations → Vietnamese.
35
+
36
+ ---
37
+
38
+ ## Memory Workflow
39
+
40
+ ### 0. Self-Init Protocol (Khởi Tạo Bộ Nhớ Local & Gitignore)
41
+ - Trước khi tra cứu hoặc lưu trữ tri thức, BẮT BUỘC kiểm tra sự tồn tại của thư mục `.ai-local/` tại gốc dự án:
42
+ - **Tự động tạo mới:** Nếu `.ai-local/` chưa tồn tại, AI phải tự động tạo cấu trúc thư mục `.ai-local/knowledge/` (và file `index.yaml` nếu cần thiết) cùng `.ai-local/candidates/`. Tuyệt đối không ngưng chạy hay hỏi ý kiến người dùng về thao tác khởi tạo tiêu chuẩn này.
43
+ - **Bảo mật Gitignore:** BẮT BUỘC kiểm tra file `.gitignore` của dự án, nếu chưa có dòng `.ai-local/` thì phải tự động thêm vào để tuyệt đối bảo mật tri thức cá nhân và tránh lộ lọt lên Git.
44
+
45
+ ---
46
+
47
+ ### Pre-flight Retrieve (Trước khi thực thi)
48
+ - Trước các task có tính lặp lại, debug, refactor, kiến trúc hoặc rủi ro cao:
49
+ bắt buộc tra cứu:
50
+ - `.ai-local/knowledge/index.yaml` (Private Local Knowledge)
51
+
52
+ - Ưu tiên sử dụng các Knowledge đang có trạng thái `Active` thuộc:
53
+ - Architecture
54
+ - Hard Bug
55
+ - Convention
56
+ - Pattern
57
+ - Tech Debt Pattern
58
+
59
+ - Memory chỉ đóng vai trò **Navigator (bản đồ chỉ đường)**.
60
+ Không được xem Memory là Source of Truth.
61
+ Luôn xác minh lại bằng source code, configuration và trạng thái hiện tại của dự án trước khi áp dụng.
62
+
63
+ ---
64
+
65
+ ### Learning Flow (AI tự học có kiểm soát)
66
+ - Trong quá trình làm việc, AI được phép tự phát hiện và tạo **Candidate Memory** khi nhận thấy:
67
+ - Hard Bug có khả năng tái diễn.
68
+ - Pattern làm việc lặp lại trong dự án.
69
+ - Convention hoặc quy tắc kiến trúc mới.
70
+ - Quyết định Architecture quan trọng.
71
+ - Tech Debt Pattern hoặc Code Smell có tính hệ thống.
72
+
73
+ - Candidate Memory chỉ là bản nháp quan sát, chưa phải tri thức chính thức.
74
+ - Candidate Memory có thể lưu tạm tại: `.ai-local/candidates/`
75
+ - AI không được tự động Promote Candidate Memory thành Project Knowledge.
76
+
77
+ ---
78
+
79
+ ### Post-flight Harvest (Đề xuất → Phê duyệt)
80
+ Sau khi hoàn thành task:
81
+ - AI đánh giá các Candidate Memory đã tạo.
82
+ - Nếu phát hiện tri thức có giá trị tái sử dụng:
83
+ - Đề xuất người dùng xem xét.
84
+ - Gửi yêu cầu phê duyệt thông qua:
85
+ - `/learn`
86
+ - `qk-project-memory`
87
+ - Chỉ sau khi được phê duyệt, Candidate Memory mới được chuyển thành Knowledge chính thức:
88
+
89
+ ```
90
+ .ai-local/candidates/ ──(Approve)──> .ai-local/knowledge/index.yaml
91
+ ```
92
+
93
+ - Project Knowledge phải được xem như tài sản kỹ thuật của dự án:
94
+ - Có thể review, cập nhật, loại bỏ và có lịch sử thay đổi.
95
+
96
+ ---
97
+
98
+ ### Ignore (Không đưa vào Memory)
99
+ Không lưu:
100
+ - Trace log của một session đơn lẻ.
101
+ - Temporary debugging data.
102
+ - Output của một lần chạy test/scan.
103
+ - Report health tạm thời của một đợt kiểm tra.
104
+ - Lỗi nhỏ chỉ xảy ra một lần.
105
+ - Thông tin không có khả năng tái sử dụng.
106
+
107
+ ---
108
+
109
+ ### Golden Rule
110
+ > **AI được phép học, nhưng không được tự quyết định tri thức chính thức.**
111
+ > **AI quan sát → Đề xuất → Con người phê duyệt → Dự án tiến hóa.**
112
+
113
+ ---
114
+
115
+ ## 1. Nguyên Tắc Cốt Lõi & Tôn Chỉ Bất Di Bất Dịch
116
+
117
+ > 🎯 **Core Identity:** Đây KHÔNG PHẢI là một công cụ định dạng Postman đơn thuần ("Postman Formatter"). Đây là hệ thống **API-to-Data Discovery Engine**: Biến Postman collection từ một tập hợp request thô thành nguồn tri thức có bằng chứng thực tế phục vụ đồng thời Backend, QA, Data Engineer, Data Analyst và AI Agent.
118
+
119
+ ### 🌟 4 Nguyên Tắc Vàng (Golden Principles)
120
+ 1. **Evidence Over Inference (Bằng chứng trên suy đoán):**
121
+ > *"Never infer an API contract from endpoint names alone. Observe the real API response first, preserve raw evidence, then derive the schema and standardized collection from observed evidence."*
122
+ *(Không bao giờ suy diễn hợp đồng API chỉ từ tên endpoint. Luôn quan sát phản hồi thật trước, bảo toàn bằng chứng thô, rồi mới suy ra schema và bộ collection chuẩn hóa).*
123
+ 2. **Hypothesis vs Truth (Giả thuyết vs Sự thật):**
124
+ > *"Observed API behavior is evidence; inferred schema is a hypothesis until validated by sufficient executions."*
125
+ *(Hành vi API quan sát được là bằng chứng; schema suy luận chỉ là giả thuyết cho đến khi được kiểm chứng qua đủ số lần chạy).*
126
+ 3. **Discovery First, Implementation Upon Direction (Khám phá trước, làm sau):**
127
+ > *"DISCOVERY FIRST, IMPLEMENTATION ONLY ON EXPLICIT USER DIRECTION."*
128
+ *(Luôn ưu tiên khám phá, đánh giá và lập báo cáo checkpoint. TUYỆT ĐỐI KHÔNG tự động triển khai code, pipeline hay migration nếu chưa có chỉ đạo tường minh từ người dùng).*
129
+ 4. **No Premature Architecture Mutation (Không tự ý biến đổi hệ thống):**
130
+ > *"The discovery agent MUST NOT create production code, Bronze pipelines, database schemas, or modify project architecture merely because those actions appear to be logical next steps."*
131
+ *(Agent cấm tự tiện tạo mã nguồn production, pipeline Bronze, hay sửa schema cơ sở dữ liệu chỉ vì thấy đó là bước tiếp theo hợp lý).*
132
+
133
+ ### 📜 Quy Tắc Bàn Giao Quyền Quyết Định (The Handoff Contract Rule)
134
+ ```text
135
+ DISCOVERY REPORT IS THE HANDOFF CONTRACT.
136
+
137
+ The report MUST contain enough verified information for the user
138
+ or another AI skill to continue the work without repeating discovery.
139
+
140
+ The discovery skill MUST NOT assume which downstream implementation
141
+ the user wants.
142
+ ```
143
+ > **Bản chất:** Kỹ năng này không phải là *"làm API → tự làm Bronze"*.
144
+ > Bản chất của nó là: **"API → Hiểu sâu → Chứng minh thực nghiệm → Phân tích toàn diện → Báo cáo Checkpoint → Bàn giao quyền quyết định cho User."**
145
+
146
+ ---
147
+
148
+ ## 2. Mô Hình Thực Thi 2 Pha (Two-Phase Execution Model)
149
+
150
+ Hệ thống hoạt động theo mô hình tách bạch nghiêm ngặt: **Pha A (Mặc định: Khám phá & Lập Báo cáo Checkpoint)** kết thúc tại một **Điểm dừng Kiểm soát (Checkpoint STOP)** để người dùng thẩm định và ra quyết định hướng đi tiếp theo.
151
+
152
+ ```text
153
+ POSTMAN COLLECTION + PROJECT CONTEXT
154
+ │
155
+ ▼
156
+ DISCOVERY (Parse endpoints, variables, auth, query params)
157
+ │
158
+ ▼
159
+ REAL API EVIDENCE (Execute safe requests, capture status, latency, headers)
160
+ │
161
+ ▼
162
+ SCHEMA DISCOVERY (Derive datatypes, nullability, nested fields, arrays)
163
+ │
164
+ ▼
165
+ PROJECT BASE ANALYSIS (Inspect existing pipelines, bronze, schemas, models)
166
+ │
167
+ ▼
168
+ DATA ENGINEERING ASSESSMENT (Candidate bronze, pagination, immutability)
169
+ │
170
+ ▼
171
+ ┌─────────────────────────────────────────────────────────────┐
172
+ │ API DISCOVERY REPORT.md (Checkpoint / Decision Handoff) │
173
+ │ │
174
+ │ 1. What was observed (Real status, latency, raw JSON) │
175
+ │ 2. What was verified (HTTP 200, headers, datatypes) │
176
+ │ 3. What was inferred (Schema hypothesis, relationships)│
177
+ │ 4. Project currently has (Existing modules, tables, zones) │
178
+ │ 5. Problems & risks (Token expiry, rate limit, 5xx) │
179
+ │ 6. Candidate directions (Option A / B / C / D / E) │
180
+ └──────────────────────────────┬──────────────────────────────┘
181
+ ▼
182
+ ⛔ CHECKPOINT STOP
183
+ (User Reviews & Chooses Next Direction)
184
+ │
185
+ ┌──────────────────┼──────────────────┐
186
+ ▼ ▼ ▼
187
+ Option A Option B Option C
188
+ [Bronze Ingest] [Data Contract] [Standardize]
189
+ │ │ │
190
+ ▼ ▼ ▼
191
+ Targeted Task Targeted Task Targeted Task
192
+ ```
193
+
194
+ ### Cơ chế chuyển giao Phase B (Targeted Continuation):
195
+ - **Chỉ kích hoạt Phase B khi có chỉ đạo rõ ràng từ Người Dùng:** AI không tự chọn bất kỳ Option nào nếu User chưa xác nhận.
196
+ - **Ủy quyền & Biên dịch kế hoạch (Delegation & Plan Compilation):**
197
+ - Khi User chọn hướng (ví dụ: *"Làm Option A cho users và orders"*), AI chuyển giao mục tiêu qua `qk-prompt-compiler` để biên dịch thành Compiled Execution Prompt.
198
+ - Sau đó ủy quyền tới skill phù hợp: `qk-backend-data` (xây dựng DDL / Bronze pipeline), `qk-feature-delivery` (tích hợp API client), hoặc tiếp tục xử lý tạo bộ artifact `api-discovery/`.
199
+ - Nếu chưa có downstream skill chuyên biệt phù hợp với stack người dùng chọn, AI tạo `implementation_plan.md` theo chuẩn Interactive Planning Mode và xin phê duyệt trước khi viết code.
200
+
201
+ ---
202
+
203
+ ## 3. Chi Tiết Quy Trình Phase A (7 Bước Khám Phá Cốt Lõi)
204
+
205
+ ### Bước 1: Parse Collection & Kiểm Toán Biến Môi Trường (Discover)
206
+ - Đọc file `postman_collection.json` (và file environment đính kèm nếu có).
207
+ - Bóc tách toàn bộ cây thư mục (folders), danh sách request, HTTP methods, headers, parameters, authentication type (`bearer`, `basic`, `apiKey`, `oauth2`).
208
+ - Rà soát các biến môi trường chưa được gán giá trị (unresolved variables: `{{base_url}}`, `{{token}}`, `{{user_id}}`).
209
+
210
+ ### Bước 2: Phân Loại Rủi Ro & Chọn Cổng Thực Thi (Risk Classification Gate)
211
+ Áp dụng cơ chế phân định an toàn bắt buộc trước khi thực hiện bất kỳ lệnh gọi mạng nào:
212
+
213
+ | Loại Request | Môi trường đích | Mức rủi ro | Chế độ thực thi | Hành động của AI |
214
+ |---|---|---|---|---|
215
+ | **GET / HEAD / OPTIONS** (Idempotent, Read) | Staging / Dev / Sandbox | Thấp (`R0/R1`) | 🟢 `AUTO` | Chạy an toàn để lấy response thật |
216
+ | **GET** (Read) | Production / Live | Trung bình (`R2`) | 🟡 `CONFIRM` | Cần xác nhận trước khi gửi request |
217
+ | **POST / PUT / PATCH / DELETE** (Ghi/Xóa dữ liệu) | Staging / Test / Sandbox | Trung bình (`R2`) | 🟡 `CONFIRM` | Dừng lại, liệt kê payload và chờ user duyệt |
218
+ | **POST / PUT / PATCH / DELETE** | Production / Live | Rất cao (`R4`) | 🔴 `CONFIRM` Bắt buộc | Mặc định **CẤM TỰ CHẠY**. Chỉ chạy khi user xác nhận 2 lần |
219
+ | **Thiếu Auth Token / Base URL / Biến cốt lõi** | Mọi môi trường | — | 🔴 `ASK` | Dừng hỏi user cung cấp. **CẤM BỊA MOCK CREDENTIALS** |
220
+
221
+ ### Bước 3: Thu Thập Bằng Chứng Thực Tế (Real API Evidence)
222
+ - **Phương thức thực thi:**
223
+ - *Cách 1 (Khuyến nghị):* Chạy qua Newman CLI hoặc local script nếu môi trường có kết nối mạng tới endpoint.
224
+ - *Cách 2 (Sandbox / No direct network):* Người dùng cung cấp file export log từ Postman Console hoặc response json dump từ server.
225
+ - **Dữ liệu bằng chứng (Evidence) bắt buộc lưu lại:**
226
+ - HTTP Status Code (ví dụ: `200 OK`, `401 Unauthorized`, `404 Not Found`).
227
+ - Response Time / Latency (đo bằng milliseconds `ms`).
228
+ - Headers quan trọng (Content-Type, X-RateLimit, Pagination headers).
229
+ - Raw JSON Body nguyên bản.
230
+ - **Quy tắc Bằng chứng Thực Tế (Anti-Fake-Pass):**
231
+ - Nếu một endpoint chưa thể chạy (do thiếu auth, network, hay là method ghi chưa được duyệt): **BẮT BUỘC ĐÁNH DẤU `NOT_EXECUTED`** kèm lý do minh bạch.
232
+ - **CẤM TUYỆT ĐỐI** tự chế response mẫu giả định rồi giả vờ đó là "kết quả chạy thật".
233
+
234
+ ### Bước 4: Khám Phá Schema & Lập Data Dictionary (Schema Discovery)
235
+ Từ các response JSON thu thập được, phân tích cấu trúc dữ liệu theo chiều sâu:
236
+ - **Xác định Kiểu Dữ Liệu:** `integer`, `float`, `string`, `boolean`, `datetime` (ISO-8601), `array`, `object`, `null`.
237
+ - **Nhận diện Khả năng Nullable:** Đối chiếu giữa nhiều records hoặc kịch bản để xem trường nào có thể mang giá trị `null` hoặc không xuất hiện (optional).
238
+ - **Phát hiện Cấu trúc Mảng & Quan hệ (1-N):** Bóc tách các mảng lồng nhau (`items[]`, `tags[]`, `addresses[]`).
239
+ - **Lập Bảng Từ Điển Dữ Liệu (API Data Dictionary):**
240
+
241
+ ```markdown
242
+ ### Observed Schema: `GET /users`
243
+
244
+ | Field | Type | Nullable | Example Value | Evidence Level |
245
+ |---|---|---|---|---|
246
+ | `id` | integer | No | `1024` | OBSERVED (200 OK) |
247
+ | `name` | string | No | `"Nguyen Van A"` | OBSERVED (200 OK) |
248
+ | `email` | string | Yes | `"user@example.com"` | OBSERVED (200 OK) |
249
+ | `createdAt` | datetime | No | `"2026-09-15T10:20:00Z"` | OBSERVED (200 OK) |
250
+ | `roles[]` | array[string] | No | `["admin", "editor"]` | OBSERVED (200 OK) |
251
+ | `profile.bio`| string | Yes | `null` | OBSERVED (200 OK) |
252
+ ```
253
+
254
+ ### Bước 5: Đánh Giá Kỹ Nghệ Dữ Liệu Tầng Bronze (Data Engineering Assessment)
255
+ - **Candidate Bronze Sources:** Chọn lọc các endpoint trả về dữ liệu entity cốt lõi thích hợp để lưu trữ dạng thô trong hồ dữ liệu (Data Lake / Medallion Architecture).
256
+ - **Nguyên Tắc Lưu Trữ Tầng Bronze:**
257
+ - **Giữ nguyên trạng thái Raw:** Không vội vàng chuẩn hóa hay làm phẳng (flatten) các trường JSON lồng nhau ở tầng Bronze. Việc flattening và type casting là trách nhiệm của tầng Silver.
258
+ - **Gắn nhãn Ingestion Metadata:** Mỗi record Bronze phải đi kèm metadata truy vết nguồn gốc (lineage).
259
+ - **Phân Tích Cơ Chế Phân Trang (Pagination Strategy):**
260
+ - Nhận diện loại phân trang: Page-based (`?page=1&size=20`), Offset/Limit (`?offset=0&limit=50`), hay Cursor-based (`?cursor=eyJ...`).
261
+ - Ghi nhận cách tính tổng số bản ghi (`total`, `totalPages`, `has_more`).
262
+
263
+ ### Bước 6: Đối Chiếu Kiến Trúc Dự Án Hiện Có (Project Base Alignment)
264
+ AI quét nhanh cấu trúc thư mục của dự án hiện tại để tìm kiếm sự tương thích:
265
+ - Kiểm tra xem dự án đã có các thư mục: `bronze/`, `data/`, `pipelines/`, `schemas/`, `models/`, `services/`, hay file cấu hình API sources không.
266
+ - Xác định API này đang thuộc domain nghiệp vụ nào trong codebase (User, Order, Payment, Inventory, Telemetry...).
267
+ - Lập bản đồ liên kết: API này có thể mở rộng vào pipeline nào đang có, hoặc tích hợp vào service backend nào.
268
+
269
+ ### Bước 7: Xuất Báo Cáo Checkpoint & DỪNG LẠI (Checkpoint Report & STOP)
270
+ Tạo file báo cáo toàn diện tại đường dẫn:
271
+ `docs/api-discovery/<collection-name>-analysis.md`
272
+
273
+ Sau khi ghi file, AI **DỪNG TOÀN BỘ HÀNH ĐỘNG CODE TIẾP THEO**, in bản Tóm tắt Điều hành (Executive Summary) ra cửa sổ chat và chờ người dùng lựa chọn bước đi tiếp theo.
274
+
275
+ ---
276
+
277
+ ## 4. Cấu Trúc 3 Tầng Thông Tin & Mẫu Báo Cáo Checkpoint Chuẩn
278
+
279
+ Báo cáo phân tích `docs/api-discovery/<collection>-analysis.md` đóng vai trò là **Hợp đồng Bàn giao Quyết định (Decision Handoff Contract)**. Để đảm bảo tính khách quan và khoa học, báo cáo BẮT BUỘC tách biệt rõ ràng 3 tầng thông tin:
280
+
281
+ ### 🏛️ Ba Tầng Thông Tin Tách Bạch (The 3-Tier Information Model)
282
+ 1. **Tầng 1: FACT — Thực tế quan sát được (What was observed & verified):**
283
+ - Không suy diễn, chỉ ghi nhận dữ liệu thực nghiệm đã chạy thật:
284
+ - Endpoint, HTTP Status (`200 OK`, `401 Unauthorized`).
285
+ - Response Body JSON thô nguyên bản.
286
+ - Response Latency (`ms`), Headers (`Content-Type`, `X-RateLimit`).
287
+ - Cấu trúc phân trang thực tế (`page`, `total`, `cursor`).
288
+ 2. **Tầng 2: ANALYSIS — AI phân tích chuyên môn (What was inferred & assessed):**
289
+ - Đánh giá kỹ nghệ dữ liệu từ dữ liệu thực nghiệm:
290
+ - Endpoint này có phù hợp làm Candidate Bronze Source không?
291
+ - Cấu trúc JSON có lồng nhau phức tạp (nested objects) cần giữ nguyên ở Bronze hay không?
292
+ - Phân trang có đòi hỏi vòng lặp lặp lại (loop iteration) khi ingest hay không?
293
+ - Có hiện tượng bất thường (anomalies), rate limiting hay schema không đồng nhất không?
294
+ 3. **Tầng 3: DECISION OPTIONS — Hướng có thể đi tiếp (Candidate next directions):**
295
+ - Các định hướng khả thi cho User lựa chọn:
296
+ - Option A: Bronze Ingestion Pipeline (NDJSON raw records).
297
+ - Option B: Postman Standardization (Collection chuẩn hóa, tests).
298
+ - Option C: Data Contract chính thức (Schema JSON, Data Dictionary, YAML).
299
+ - Option D: Data Quality Assertions (Kiểm tra null, type, unique).
300
+ - Option E: Deep Scenario Execution (Chạy tiếp các kịch bản ngoại lệ biên).
301
+ - ⚠️ **Ranh giới tối thượng:** **AI TUYỆT ĐỐI KHÔNG ĐƯỢC BIẾN TẦNG 3 THÀNH HÀNH ĐỘNG KHI CHƯA CÓ LỆNH RÕ RÀNG TỪ USER.**
302
+
303
+ ---
304
+
305
+ ### Mẫu Báo Cáo 10 Mục Hoàn Chỉnh
306
+
307
+ → Xem chi tiết tại `references/discovery-report-template.md`
308
+
309
+ ---
310
+
311
+ ## 5. Đặc Tả Bộ API Discovery Package (Khi User Duyệt Phase B)
312
+
313
+ Khi người dùng ra lệnh thực thi một trong các Options tiếp theo, hệ thống sẽ sinh ra bộ package hoàn chỉnh trong thư mục `api-discovery/`:
314
+
315
+ ```text
316
+ api-discovery/
317
+ ├── postman/
318
+ │ └── standardized_collection.json # Collection chuẩn: folder resource, real responses, pm.test
319
+ ├── bronze/
320
+ │ ├── api_responses.ndjson # Raw Bronze data (mỗi dòng 1 request-response record)
321
+ │ └── ingestion_manifest.json # Metadata phiên ingest, batch size, timestamps
322
+ ├── schema/
323
+ │ ├── api_schema.json # JSON Schema chính thức
324
+ │ └── data_dictionary.md # Từ điển dữ liệu chi tiết cho Data Analyst / BI
325
+ ├── quality/
326
+ │ └── api_quality_report.md # Báo cáo đo lường độ phủ, lỗi, độ trễ và bất thường
327
+ └── evidence/
328
+ └── execution_report.json # Log chi tiết kỹ thuật từng lần gọi mạng
329
+ ```
330
+
331
+ ### Cấu Trúc Raw Bronze & Data Contract
332
+
333
+ → Xem chi tiết tại `references/bronze-record-format.md`
334
+
335
+ → Xem chi tiết tại `references/data-contract-yaml.md`
336
+
337
+ ---
338
+
339
+ ## 6. Ranh Giới Kỹ Thuật & Cấm Kỵ Tuyệt Đối (Hard Guardrails)
340
+
341
+ - ❌ **CẤM TỰ Ý CODE HOẶC TẠO PIPELINE TRONG PHASE A:** Hoàn thành báo cáo `docs/api-discovery/<collection>-analysis.md` là PHẢI DỪNG LẠI. Không tự ý viết script ingestion hay tạo migration khi user chưa ra lệnh.
342
+ - ❌ **CẤM ÉP PASS ẢO / FAKE MOCK DATA (R-G-14.5):** Không được tự tạo JSON response giả vờ như đã chạy thật. Chưa chạy được thì ghi rõ `NOT_EXECUTED`.
343
+ - ❌ **CẤM CHẠY REQUEST PHÁ HỦY TRÊN PRODUCTION:** Mọi request `POST / PUT / PATCH / DELETE` trên môi trường production đều phải qua cổng kiểm soát `CONFIRM` và được người dùng duyệt rõ ràng từng endpoint.
344
+ - ❌ **CẤM ĐỂ LỘ SECRET / TOKEN TRONG OUTPUT:** Tất cả API keys, Bearer tokens, Passwords trong file output hoặc báo cáo PHẢI được che giấu (`[REDACTED_SECRET]`).
345
+ - ❌ **CẤM FLOOD REQUEST (RATE-LIMITING SAFETY):** Khi chạy runner gọi hàng loạt endpoint thật, phải áp dụng độ trễ (delay tối thiểu 200–500ms) giữa các request để tránh làm sập server thử nghiệm.
346
+
347
+ ---
348
+
349
+ ## 7. Định Dạng Báo Cáo Phản Hồi Khi Hoàn Tất Phase A
350
+
351
+ Sau khi xuất file báo cáo Checkpoint, AI phản hồi vào cửa sổ chat với định dạng Executive Summary ngắn gọn (không xả toàn bộ markdown dài):
352
+
353
+ ```markdown
354
+ 🔧 API & Data Discovery Summary [Role: <role> | Stack: <primary stack>]
355
+ ─────────────────────────────────────────────────────────────────────
356
+ Scope: Khám phá API Postman, thu thập bằng chứng thực tế và đánh giá Data Contract
357
+ Report: [docs/api-discovery/<collection>-analysis.md](file:///<workspace-root>/docs/api-discovery/<collection>-analysis.md)
358
+
359
+ 📊 Kết quả khám phá:
360
+ ✅ Endpoints phân tích: <total_count> endpoints
361
+ ✅ Thực thi an toàn: <executed_count> requests đã lấy response thật (Avg latency: <avg>ms)
362
+ ⏸️ Chưa thực thi: <skipped_count> requests (yêu cầu quyền ghi / thiếu credentials)
363
+ 📐 Schema phát hiện: <entity_count> data entities với từ điển kiểu dữ liệu chi tiết
364
+ 🧱 Bronze Assessment: Xác định <candidate_count> candidate sources cho Bronze layer
365
+
366
+ ⛔ CHECKPOINT ĐÃ THIẾT LẬP:
367
+ AI đã dừng lại và CHƯA tự ý sinh mã nguồn ingestion hay sửa đổi hệ thống.
368
+ Vui lòng xem báo cáo chi tiết và chọn bước đi tiếp theo:
369
+ 👉 Option A: Tạo Bronze Ingestion Pipeline & Raw NDJSON data
370
+ 👉 Option B: Chuẩn hóa lại file Postman Collection hoàn chỉnh
371
+ 👉 Option C: Thiết lập Formal Data Contract & Data Dictionary
372
+ 👉 Option D: Cấu hình bộ Quality Assertion Rules
373
+ 👉 Option E: Tiếp tục khám phá các kịch bản ngoại lệ sâu hơn
374
+ ```
375
+
376
+ ---
377
+
378
+ ## 8. Mô Hình Độ Tin Cậy (Confidence Model)
379
+
380
+ | Level | Condition | Action |
381
+ |-------|-----------|--------|
382
+ | HIGH | Real API response observed with HTTP status code | Report evidence as FACT |
383
+ | MEDIUM | Schema inferred from response structure | Note as HYPOTHESIS requiring validation |
384
+ | LOW | No API executed, only Postman collection parsed | Report as NOT_EXECUTED |
385
+
386
+ ---
387
+
388
+ ## 9. Thoái Ra Mã (Exit Codes)
389
+
390
+ | Code | Meaning | When |
391
+ |------|---------|------|
392
+ | SUCCESS | Phase A complete, checkpoint report generated, user reviewing | Report saved at docs/api-discovery/ |
393
+ | PARTIAL | Some endpoints could not be executed | NOT_EXECUTED entries in report |
394
+ | BLOCKED | Missing Postman collection, credentials, or network access | Cannot proceed with Phase A |
395
+ | FAILED | Critical error during discovery or report generation | Abort and report error |
396
+
397
+ ---
398
+
399
+ ## Platform-Specific Instructions
400
+
401
+ ### Antigravity (Google Gemini)
402
+ - Uses `.agents/AGENTS.md` as entry point
403
+ - Supports Cockpit integration
404
+ - Rewrite absolute paths for global mode
405
+ - `GEMINI.md` copied for global installs
406
+
407
+ ### Claude Code (Anthropic)
408
+ - Reads `.claude/CLAUDE.md` automatically
409
+ - Large context window (~200K tokens)
410
+ - Can handle full skill files without trimming
411
+ - Uses native tool format (Read, Write, Edit, Bash)
412
+
413
+ ### OpenCode (Open Source)
414
+ - Reads `.opencode/config.yaml`
415
+ - Context window ~128K tokens
416
+ - Keep skill files lean when possible
417
+ - Supports custom tool format
418
+
419
+ ---
420
+
421
+ ## Evidence Format
422
+
423
+ Every evidence claim must follow this format:
424
+
425
+ ```
426
+ [SEVERITY] discovery-phase: [phase-name]
427
+ Reason: [why this evidence matters]
428
+ Confidence: [HIGH|MEDIUM|LOW]
429
+ Fix: [suggestion if evidence points to a bug]
430
+ ```
431
+
432
+ ### Evidence Types
433
+
434
+ | Type | Example | Severity |
435
+ |------|---------|----------|
436
+ | API Response | HTTP 200 + JSON body | HIGH |
437
+ | Schema Match | Response matches OpenAPI spec | HIGH |
438
+ | Error Pattern | Stack trace + error code | MEDIUM |
439
+ | Missing Endpoint | 404 on discovered route | MEDIUM |
440
+ | Schema Mismatch | Field type differs | HIGH |
441
+
442
+ ---
443
+
444
+ ## Compliance
445
+
446
+ | Check | Status |
447
+ |-------|--------|
448
+ | Runtime Standard | 11/11 |
449
+ | Frontmatter Complete | ✅ |
450
+ | Platforms Field | ✅ |
451
+ | References Valid | ✅ |
452
+ | Decision Trees | PASS |
453
+ | Thresholds Defined | PASS |
454
+ | schema_version | 10.2.0 |
455
+ | runtime_version | 1 |
456
+ | platforms | [antigravity, claude, opencode] |
@@ -0,0 +1,47 @@
1
+ # Bronze Record Format — NDJSON (Newline Delimited JSON)
2
+
3
+ Mỗi dòng là một đối tượng JSON độc lập, bảo tồn trọn vẹn dữ liệu gốc và dữ liệu truy vết:
4
+
5
+ ```json
6
+ {
7
+ "ingestion_metadata": {
8
+ "ingestion_id": "b7a2d481-9f33-4a11-8e02-4876211c1209",
9
+ "ingested_at": "2026-09-15T10:20:31.402Z",
10
+ "source_type": "postman_collection",
11
+ "collection_name": "ECommerce-Core-API",
12
+ "endpoint": "GET /api/v1/orders",
13
+ "environment": "staging",
14
+ "status_code": 200,
15
+ "response_time_ms": 184
16
+ },
17
+ "raw_request": {
18
+ "method": "GET",
19
+ "url": "https://staging.api.example.com/api/v1/orders?page=1&pageSize=20",
20
+ "headers": {
21
+ "Accept": "application/json",
22
+ "Authorization": "Bearer [REDACTED_SECRET]"
23
+ }
24
+ },
25
+ "raw_response": {
26
+ "status": 200,
27
+ "status_text": "OK",
28
+ "headers": {
29
+ "content-type": "application/json; charset=utf-8",
30
+ "x-ratelimit-remaining": "59"
31
+ },
32
+ "body": {
33
+ "data": [
34
+ { "id": 501, "order_number": "ORD-2026-001", "total_amount": 1250000, "status": "COMPLETED" }
35
+ ],
36
+ "pagination": { "page": 1, "pageSize": 20, "total": 1 }
37
+ }
38
+ }
39
+ }
40
+ ```
41
+
42
+ ## Ví dụ nhiều bản ghi NDJSON:
43
+
44
+ ```ndjson
45
+ {"ingestion_metadata":{"ingestion_id":"b7a2d481-9f33-4a11-8e02-4876211c1209","ingested_at":"2026-09-15T10:20:31.402Z","source_type":"postman_collection","collection_name":"ECommerce-Core-API","endpoint":"GET /api/v1/orders","environment":"staging","status_code":200,"response_time_ms":184},"raw_request":{"method":"GET","url":"https://staging.api.example.com/api/v1/orders?page=1&pageSize=20","headers":{"Accept":"application/json","Authorization":"Bearer [REDACTED_SECRET]}},"raw_response":{"status":200,"status_text":"OK","headers":{"content-type":"application/json; charset=utf-8","x-ratelimit-remaining":"59"},"body":{"data":[{"id":501,"order_number":"ORD-2026-001","total_amount":1250000,"status":"COMPLETED"}],"pagination":{"page":1,"pageSize":20,"total":1}}}}
46
+ {"ingestion_metadata":{"ingestion_id":"c8b3e592-0a44-5b22-9f33-5987322d3110","ingested_at":"2026-09-15T10:21:15.100Z","source_type":"postman_collection","collection_name":"ECommerce-Core-API","endpoint":"GET /api/v1/users","environment":"staging","status_code":200,"response_time_ms":92},"raw_request":{"method":"GET","url":"https://staging.api.example.com/api/v1/users?page=1&pageSize=20","headers":{"Accept":"application/json","Authorization":"Bearer [REDACTED_SECRET]}},"raw_response":{"status":200,"status_text":"OK","headers":{"content-type":"application/json; charset=utf-8","x-ratelimit-remaining":"120"},"body":{"data":[{"id":1024,"name":"Nguyen Van A","createdAt":"2026-09-15T10:20:00Z"}],"pagination":{"page":1,"pageSize":20,"total":128}}}}
47
+ ```
@@ -0,0 +1,72 @@
1
+ # Data Contract YAML Template
2
+
3
+ Cấu trúc Data Contract YAML (`schema/data_contract.yaml`):
4
+
5
+ ```yaml
6
+ contract_version: "1.0.0"
7
+ dataset: "orders"
8
+ source_endpoint: "GET /api/v1/orders"
9
+ schema:
10
+ fields:
11
+ - name: "id"
12
+ type: "integer"
13
+ nullable: false
14
+ description: "Primary key của đơn hàng"
15
+ - name: "order_number"
16
+ type: "string"
17
+ nullable: false
18
+ format: "^ORD-[0-9]{4}-[0-9]+$"
19
+ - name: "total_amount"
20
+ type: "numeric"
21
+ nullable: false
22
+ - name: "status"
23
+ type: "string"
24
+ allowed_values: ["PENDING", "PROCESSING", "COMPLETED", "CANCELLED"]
25
+ quality_rules:
26
+ - rule: "id must be unique"
27
+ level: "critical"
28
+ - rule: "total_amount must be greater than or equal to 0"
29
+ level: "critical"
30
+ - rule: "order_number must not be null"
31
+ level: "critical"
32
+ ```
33
+
34
+ ## Ví dụ Data Contract cho Users dataset:
35
+
36
+ ```yaml
37
+ contract_version: "1.0.0"
38
+ dataset: "users"
39
+ source_endpoint: "GET /api/v1/users"
40
+ schema:
41
+ fields:
42
+ - name: "id"
43
+ type: "integer"
44
+ nullable: false
45
+ description: "Primary key của người dùng"
46
+ - name: "name"
47
+ type: "string"
48
+ nullable: false
49
+ description: "Họ và tên đầy đủ"
50
+ - name: "email"
51
+ type: "string"
52
+ nullable: true
53
+ format: "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$"
54
+ description: "Email liên hệ (có thể không có)"
55
+ - name: "createdAt"
56
+ type: "datetime"
57
+ nullable: false
58
+ format: "ISO-8601"
59
+ - name: "roles"
60
+ type: "array[string]"
61
+ nullable: false
62
+ description: "Danh sách vai trò của người dùng"
63
+ quality_rules:
64
+ - rule: "id must be unique"
65
+ level: "critical"
66
+ - rule: "email must match email format"
67
+ level: "high"
68
+ - rule: "name must not be empty string"
69
+ level: "critical"
70
+ - rule: "createdAt must be valid ISO-8601 datetime"
71
+ level: "high"
72
+ ```