ai-developer-skill-os 7.0.2 → 7.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (188) hide show
  1. package/.agents/AGENTS.md +44 -88
  2. package/.agents/CHANGELOG.md +69 -0
  3. package/.agents/LICENSE +21 -0
  4. package/.agents/README.md +59 -0
  5. package/.agents/_template/BEHAVIOR_SPEC.md +96 -0
  6. package/.agents/_template/examples/example-en.md +49 -0
  7. package/.agents/_template/examples/example-vi.md +49 -0
  8. package/.agents/docs/CHI_TIET_SKILLS.md +125 -0
  9. package/.agents/docs/GOVERNANCE.md +40 -0
  10. package/.agents/docs/HUONG_DAN_SU_DUNG.md +120 -0
  11. package/.agents/docs/SPEC.md +87 -0
  12. package/.agents/docs/adr/0001-intent-based-architecture.md +19 -0
  13. package/.agents/docs/adr/0002-kernel-freeze.md +21 -0
  14. package/.agents/docs/adr/0003-risk-based-verification.md +20 -0
  15. package/.agents/docs/adr/0004-progressive-evidence.md +19 -0
  16. package/.agents/docs/skill-classification.md +25 -0
  17. package/.agents/skills/qk-access-policy/SKILL.md +179 -0
  18. package/.agents/skills/qk-ai-builder/SKILL.md +215 -0
  19. package/.agents/skills/qk-api-lifecycle/SKILL.md +176 -0
  20. package/.agents/skills/qk-bug-resolution/SKILL.md +307 -0
  21. package/.agents/skills/qk-context-loader/SKILL.md +218 -0
  22. package/.agents/skills/qk-data-lifecycle/SKILL.md +192 -0
  23. package/.agents/skills/qk-db-optimizer/SKILL.md +196 -0
  24. package/.agents/skills/qk-design-to-code/SKILL.md +285 -0
  25. package/.agents/skills/qk-docs/SKILL.md +198 -0
  26. package/.agents/skills/qk-engineering-standard/SKILL.md +351 -0
  27. package/.agents/skills/qk-engineering-standard/rules/backend.md +122 -0
  28. package/.agents/skills/qk-engineering-standard/rules/database.md +3 -0
  29. package/.agents/skills/qk-engineering-standard/rules/frontend.md +152 -0
  30. package/.agents/skills/qk-engineering-standard/rules/security.md +3 -0
  31. package/.agents/skills/qk-engineering-standard/rules/testing.md +3 -0
  32. package/.agents/skills/qk-fe-api-integration/SKILL.md +326 -0
  33. package/.agents/skills/qk-feature-delivery/SKILL.md +305 -0
  34. package/.agents/skills/qk-help/SKILL.md +193 -0
  35. package/.agents/skills/qk-orchestrator/SKILL.md +277 -0
  36. package/.agents/skills/qk-orchestrator/references/routing-table.md +77 -0
  37. package/.agents/skills/qk-production-release/SKILL.md +284 -0
  38. package/.agents/skills/qk-project-bootstrap/SKILL.md +234 -0
  39. package/.agents/skills/qk-project-health/SKILL.md +199 -0
  40. package/.agents/skills/qk-project-memory/SKILL.md +172 -0
  41. package/.agents/skills/qk-system-evolution/SKILL.md +281 -0
  42. package/.agents/skills/qk-ui-audit/SKILL.md +314 -0
  43. package/.agents/skills/qk-ui-audit/references/anti-slop-checklist.md +136 -0
  44. package/.agents/skills/qk-ui-system-builder/SKILL.md +221 -0
  45. package/.agents/skills/qk-validation-gate/SKILL.md +359 -0
  46. package/.agents/skills.json +819 -0
  47. package/.github/workflows/ci.yml +1 -1
  48. package/.qk-ai-skill-os/CHANGELOG.md +69 -0
  49. package/.qk-ai-skill-os/LICENSE +21 -0
  50. package/.qk-ai-skill-os/README.md +59 -0
  51. package/.qk-ai-skill-os/_template/BEHAVIOR_SPEC.md +96 -0
  52. package/.qk-ai-skill-os/_template/examples/example-en.md +49 -0
  53. package/.qk-ai-skill-os/_template/examples/example-vi.md +49 -0
  54. package/.qk-ai-skill-os/docs/CHI_TIET_SKILLS.md +125 -0
  55. package/.qk-ai-skill-os/docs/GOVERNANCE.md +40 -0
  56. package/.qk-ai-skill-os/docs/HUONG_DAN_SU_DUNG.md +120 -0
  57. package/.qk-ai-skill-os/docs/SPEC.md +87 -0
  58. package/.qk-ai-skill-os/docs/adr/0001-intent-based-architecture.md +19 -0
  59. package/.qk-ai-skill-os/docs/adr/0002-kernel-freeze.md +21 -0
  60. package/.qk-ai-skill-os/docs/adr/0003-risk-based-verification.md +20 -0
  61. package/.qk-ai-skill-os/docs/adr/0004-progressive-evidence.md +19 -0
  62. package/.qk-ai-skill-os/docs/skill-classification.md +25 -0
  63. package/.qk-ai-skill-os/skills/_archive_old_skills/qk-accessibility-audit/SKILL.md +121 -0
  64. package/.qk-ai-skill-os/skills/_archive_old_skills/qk-agent-orchestrator/SKILL.md +179 -0
  65. package/.qk-ai-skill-os/skills/_archive_old_skills/qk-api-integration/SKILL.md +389 -0
  66. package/.qk-ai-skill-os/skills/_archive_old_skills/qk-auth-security/SKILL.md +96 -0
  67. package/.qk-ai-skill-os/skills/_archive_old_skills/qk-backend-architecture/SKILL.md +125 -0
  68. package/.qk-ai-skill-os/skills/_archive_old_skills/qk-bug-fix/SKILL.md +213 -0
  69. package/.qk-ai-skill-os/skills/_archive_old_skills/qk-component-generator/SKILL.md +136 -0
  70. package/.qk-ai-skill-os/skills/_archive_old_skills/qk-context-manager/SKILL.md +175 -0
  71. package/.qk-ai-skill-os/skills/_archive_old_skills/qk-database-engineer/SKILL.md +104 -0
  72. package/.qk-ai-skill-os/skills/_archive_old_skills/qk-deployment/SKILL.md +96 -0
  73. package/.qk-ai-skill-os/skills/_archive_old_skills/qk-design-system/SKILL.md +137 -0
  74. package/.qk-ai-skill-os/skills/_archive_old_skills/qk-form-builder/SKILL.md +140 -0
  75. package/.qk-ai-skill-os/skills/_archive_old_skills/qk-frontend-architecture/SKILL.md +155 -0
  76. package/.qk-ai-skill-os/skills/_archive_old_skills/qk-frontend-debug/SKILL.md +133 -0
  77. package/.qk-ai-skill-os/skills/_archive_old_skills/qk-frontend-performance/SKILL.md +129 -0
  78. package/.qk-ai-skill-os/skills/_archive_old_skills/qk-frontend-testing/SKILL.md +146 -0
  79. package/.qk-ai-skill-os/skills/_archive_old_skills/qk-git-engineer/SKILL.md +304 -0
  80. package/.qk-ai-skill-os/skills/_archive_old_skills/qk-help/SKILL.md +68 -0
  81. package/.qk-ai-skill-os/skills/_archive_old_skills/qk-migration/SKILL.md +284 -0
  82. package/.qk-ai-skill-os/skills/_archive_old_skills/qk-project-audit/SKILL.md +280 -0
  83. package/.qk-ai-skill-os/skills/_archive_old_skills/qk-refactor/SKILL.md +222 -0
  84. package/.qk-ai-skill-os/skills/_archive_old_skills/qk-state-management/SKILL.md +140 -0
  85. package/.qk-ai-skill-os/skills/_archive_old_skills/qk-table-crud-generator/SKILL.md +127 -0
  86. package/.qk-ai-skill-os/skills/_archive_old_skills/qk-ui-builder/SKILL.md +152 -0
  87. package/.qk-ai-skill-os/skills/_template/SKILL.md +238 -0
  88. package/.qk-ai-skill-os/skills/qk-access-policy/SKILL.md +179 -0
  89. package/.qk-ai-skill-os/skills/qk-ai-builder/SKILL.md +221 -0
  90. package/.qk-ai-skill-os/skills/qk-api-lifecycle/SKILL.md +176 -0
  91. package/.qk-ai-skill-os/skills/qk-bug-resolution/SKILL.md +307 -0
  92. package/.qk-ai-skill-os/skills/qk-context-loader/SKILL.md +218 -0
  93. package/.qk-ai-skill-os/skills/qk-data-lifecycle/SKILL.md +192 -0
  94. package/.qk-ai-skill-os/skills/qk-db-optimizer/SKILL.md +196 -0
  95. package/.qk-ai-skill-os/skills/qk-design-to-code/SKILL.md +291 -0
  96. package/.qk-ai-skill-os/skills/qk-docs/SKILL.md +198 -0
  97. package/.qk-ai-skill-os/skills/qk-engineering-standard/SKILL.md +351 -0
  98. package/.qk-ai-skill-os/skills/qk-engineering-standard/rules/backend.md +122 -0
  99. package/.qk-ai-skill-os/skills/qk-engineering-standard/rules/database.md +3 -0
  100. package/.qk-ai-skill-os/skills/qk-engineering-standard/rules/frontend.md +152 -0
  101. package/.qk-ai-skill-os/skills/qk-engineering-standard/rules/security.md +3 -0
  102. package/.qk-ai-skill-os/skills/qk-engineering-standard/rules/testing.md +3 -0
  103. package/.qk-ai-skill-os/skills/qk-fe-api-integration/SKILL.md +326 -0
  104. package/.qk-ai-skill-os/skills/qk-feature-delivery/SKILL.md +305 -0
  105. package/.qk-ai-skill-os/skills/qk-help/SKILL.md +193 -0
  106. package/.qk-ai-skill-os/skills/qk-orchestrator/SKILL.md +277 -0
  107. package/.qk-ai-skill-os/skills/qk-orchestrator/references/routing-table.md +77 -0
  108. package/.qk-ai-skill-os/skills/qk-production-release/SKILL.md +290 -0
  109. package/.qk-ai-skill-os/skills/qk-project-bootstrap/SKILL.md +240 -0
  110. package/.qk-ai-skill-os/skills/qk-project-health/SKILL.md +199 -0
  111. package/.qk-ai-skill-os/skills/qk-project-memory/SKILL.md +172 -0
  112. package/.qk-ai-skill-os/skills/qk-system-evolution/SKILL.md +285 -0
  113. package/.qk-ai-skill-os/skills/qk-ui-audit/SKILL.md +314 -0
  114. package/.qk-ai-skill-os/skills/qk-ui-audit/references/anti-slop-checklist.md +136 -0
  115. package/.qk-ai-skill-os/skills/qk-ui-system-builder/SKILL.md +225 -0
  116. package/.qk-ai-skill-os/skills/qk-validation-gate/SKILL.md +361 -0
  117. package/.qk-ai-skill-os/skills.json +819 -0
  118. package/CLAUDE.md +110 -0
  119. package/README.md +25 -3
  120. package/add_lang.js +21 -0
  121. package/add_lang.py +25 -0
  122. package/add_sections.py +53 -0
  123. package/bin/install.js +225 -170
  124. package/bin/lint.js +122 -0
  125. package/docs/CHI_TIET_SKILLS.md +26 -26
  126. package/docs/HUONG_DAN_SU_DUNG.md +3 -3
  127. package/docs/SPEC.md +70 -20
  128. package/framework/skill-schema.md +310 -0
  129. package/package.json +15 -4
  130. package/patch.js +15 -0
  131. package/patch.py +89 -0
  132. package/patch2.py +83 -0
  133. package/skills/_archive_old_skills/qk-accessibility-audit/SKILL.md +1 -0
  134. package/skills/_archive_old_skills/qk-agent-orchestrator/SKILL.md +1 -0
  135. package/skills/_archive_old_skills/qk-api-integration/SKILL.md +1 -0
  136. package/skills/_archive_old_skills/qk-auth-security/SKILL.md +1 -0
  137. package/skills/_archive_old_skills/qk-backend-architecture/SKILL.md +1 -0
  138. package/skills/_archive_old_skills/qk-bug-fix/SKILL.md +1 -0
  139. package/skills/_archive_old_skills/qk-component-generator/SKILL.md +1 -0
  140. package/skills/_archive_old_skills/qk-context-manager/SKILL.md +1 -0
  141. package/skills/_archive_old_skills/qk-database-engineer/SKILL.md +1 -0
  142. package/skills/_archive_old_skills/qk-deployment/SKILL.md +1 -0
  143. package/skills/_archive_old_skills/qk-design-system/SKILL.md +1 -0
  144. package/skills/_archive_old_skills/qk-form-builder/SKILL.md +1 -0
  145. package/skills/_archive_old_skills/qk-frontend-architecture/SKILL.md +1 -0
  146. package/skills/_archive_old_skills/qk-frontend-debug/SKILL.md +1 -0
  147. package/skills/_archive_old_skills/qk-frontend-performance/SKILL.md +1 -0
  148. package/skills/_archive_old_skills/qk-frontend-testing/SKILL.md +1 -0
  149. package/skills/_archive_old_skills/qk-git-engineer/SKILL.md +1 -0
  150. package/skills/_archive_old_skills/qk-help/SKILL.md +1 -0
  151. package/skills/_archive_old_skills/qk-migration/SKILL.md +1 -0
  152. package/skills/_archive_old_skills/qk-project-audit/SKILL.md +1 -0
  153. package/skills/_archive_old_skills/qk-refactor/SKILL.md +1 -0
  154. package/skills/_archive_old_skills/qk-state-management/SKILL.md +1 -0
  155. package/skills/_archive_old_skills/qk-table-crud-generator/SKILL.md +1 -0
  156. package/skills/_archive_old_skills/qk-ui-builder/SKILL.md +1 -0
  157. package/skills/_template/SKILL.md +238 -0
  158. package/skills/qk-access-policy/SKILL.md +179 -39
  159. package/skills/qk-ai-builder/SKILL.md +215 -40
  160. package/skills/qk-api-lifecycle/SKILL.md +176 -46
  161. package/skills/qk-bug-resolution/SKILL.md +307 -46
  162. package/skills/qk-context-loader/SKILL.md +218 -43
  163. package/skills/qk-data-lifecycle/SKILL.md +192 -44
  164. package/skills/qk-db-optimizer/SKILL.md +196 -41
  165. package/skills/qk-design-to-code/SKILL.md +285 -46
  166. package/skills/qk-docs/SKILL.md +198 -40
  167. package/skills/qk-engineering-standard/SKILL.md +351 -42
  168. package/skills/qk-fe-api-integration/SKILL.md +326 -55
  169. package/skills/qk-feature-delivery/SKILL.md +305 -48
  170. package/skills/qk-help/SKILL.md +178 -23
  171. package/skills/qk-orchestrator/SKILL.md +277 -42
  172. package/skills/qk-orchestrator/references/routing-table.md +77 -0
  173. package/skills/qk-production-release/SKILL.md +284 -41
  174. package/skills/qk-project-bootstrap/SKILL.md +234 -38
  175. package/skills/qk-project-health/SKILL.md +199 -40
  176. package/skills/qk-project-memory/SKILL.md +172 -40
  177. package/skills/qk-system-evolution/SKILL.md +281 -40
  178. package/skills/qk-ui-audit/SKILL.md +314 -42
  179. package/skills/qk-ui-audit/references/anti-slop-checklist.md +136 -0
  180. package/skills/qk-ui-system-builder/SKILL.md +221 -43
  181. package/skills/qk-validation-gate/SKILL.md +359 -40
  182. package/skills.json +813 -824
  183. package/specs/fixtures/user-payload.json +12 -0
  184. package/specs/regressions/api-integration-null-fields.yaml +19 -0
  185. package/temp_fix.js +61 -0
  186. package/tests/registry.test.js +1 -1
  187. package/update_template.js +28 -0
  188. package/skills/qk-policy-engine/SKILL.md +0 -39
@@ -1,39 +1,179 @@
1
- ---
2
- name: qk-access-policy
3
- category: security
4
- version: 7.0.0
5
- description: "Quản lý RBAC, ABAC thiết lập ranh giới bảo mật nghiêm ngặt."
6
- ---
7
-
8
- # qk-access-policy
9
-
10
- ## Scope
11
- - Role-Based and Attribute-Based Access Control configuration (Plan & Execute)
12
-
13
- ## Verbs
14
- - `[CONFIGURE]`: Setup explicit role hierarchies and access lists.
15
-
16
- ## Constraints
17
- ```yaml
18
- must:
19
- - "Explicitly define roles and permissions in a Matrix"
20
- - "Validate user identity before granting role-based access"
21
- must_not:
22
- - "Grant wildcard (*) permissions unless absolutely mandated by system architecture"
23
- - "Mix authentication logic with authorization logic"
24
- ```
25
-
26
- ## Policies
27
- ```yaml
28
- prefer:
29
- - "Attribute-Based Access Control (ABAC) for complex business logic"
30
- ```
31
-
32
- ## Escalation
33
- ```yaml
34
- stop:
35
- - "Access Matrix is contradictory or undefined"
36
- ```
37
-
38
- ## Output
39
- - RBAC/ABAC configurations and middleware.
1
+ ---
2
+ name: qk-access-policy
3
+ category: security
4
+ version: 7.5.0
5
+ description: "Quản lý RBAC, ABAC định nghĩa role matrix trước, implement middleware sau."
6
+ platforms: [antigravity, claude-code, cursor, windsurf, kilo-code]
7
+ execution_mode: deterministic
8
+ cost: medium
9
+ latency: medium
10
+ risk: high
11
+ side_effects: edit_files
12
+ produces: [code, report]
13
+ consumes: [user-description]
14
+ token_budget:
15
+ max_files_read: 3
16
+ max_lines_per_read: 100
17
+ max_shell_commands: 0
18
+ stop_early: true
19
+ exit_codes: [SUCCESS, BLOCKED, FAILED, PARTIAL]
20
+ skill_version: 7.5.0
21
+ runtime_version: 1
22
+ schema_version: 2
23
+ ---
24
+
25
+ # qk-access-policy — Access Control Designer
26
+
27
+ > **Language rule:** Code, identifiers, file names ? English. Explanations, summaries ? Vietnamese.
28
+
29
+ ---
30
+
31
+ ## Preconditions
32
+ - [ ] User roles and protected resources are defined
33
+ - [ ] Auth system (JWT, session, OAuth) is identified
34
+
35
+ ```
36
+ On missing precondition:
37
+ EXIT: BLOCKED
38
+ Message: "Cần định nghĩa: danh sách roles + resources cần bảo vệ."
39
+ ```
40
+
41
+ ---
42
+
43
+ ## Scope
44
+ - ✅ Define explicit Role-Permission Matrix before coding
45
+ - ✅ Implement middleware/guards based strictly on the matrix
46
+ - ✅ Separate auth (who are you?) from authz (what can you do?)
47
+
48
+ ## Non-Goals
49
+ - ❌ Grant wildcard (*) permissions
50
+ - ❌ Mix authentication logic with authorization logic
51
+ - ❌ Hardcode role checks in business logic (use middleware/guards)
52
+
53
+ ---
54
+
55
+ ## Priority Order
56
+ | P | Task | Skip Threshold |
57
+ |---|------|----------------|
58
+ | P1 | Define Role-Permission Matrix | Never |
59
+ | P2 | Implement deny-by-default middleware | Never |
60
+ | P3 | Add role guards to routes/controllers | Budget < 30% |
61
+ | P4 | Add audit logging for auth failures | Budget < 60% |
62
+
63
+ ---
64
+
65
+ ## Role-Permission Matrix Format (Required)
66
+
67
+ ```
68
+ Resource | admin | manager | user | guest
69
+ ─────────────────────────────────────────────────
70
+ GET /resource | ✅ | ✅ | ✅ | ✅
71
+ POST /resource | ✅ | ✅ | ❌ | ❌
72
+ DELETE /resource | ✅ | ❌ | ❌ | ❌
73
+ ```
74
+
75
+ ---
76
+
77
+ ## Workflow
78
+
79
+ ### Phase 1 — Matrix Definition
80
+ 1. List all roles and resources from requirements
81
+ 2. Create Role-Permission Matrix (table format above)
82
+ 3. Identify conflicts or contradictions
83
+
84
+ **Decision:** `IF matrix has contradiction → EXIT: BLOCKED — resolve ambiguity`
85
+
86
+ ### Phase 2 — Implementation
87
+ 1. Create deny-by-default guard/middleware
88
+ 2. Apply guards to routes using matrix
89
+ 3. Add auth failure logging
90
+
91
+ ### Phase 3 — Verification
92
+ 1. Read matrix vs implementation — spot check 3 routes
93
+
94
+ ---
95
+
96
+ ## Evidence Format
97
+ ```
98
+ [SEVERITY] src/middleware/auth.ts:LINE
99
+ Rule: [WILDCARD | MISSING_GUARD | SOC_VIOLATION | HARDCODED_ROLE]
100
+ Reason: [specific issue]
101
+ Confidence: HIGH
102
+ Fix: [specific change]
103
+ ```
104
+
105
+ ---
106
+
107
+ ## Exit Codes
108
+ | Code | Meaning | When |
109
+ |------|---------|------|
110
+ | SUCCESS | Matrix defined, middleware implemented, deny-by-default applied | Implementation complete |
111
+ | PARTIAL | Implemented but missing audit logging or some routes unguarded | Post-verification minor gaps |
112
+ | BLOCKED | Roles or resources undefined — cannot create matrix | Missing inputs |
113
+ | FAILED | Contradiction in matrix or auth/authz mixed | Architectural violation |
114
+
115
+ ---
116
+
117
+ ## Confidence Model
118
+ | Level | Condition | Action |
119
+ |-------|-----------|--------|
120
+ | HIGH | Roles and resources explicitly defined | Build matrix and implement |
121
+ | MEDIUM | Roles inferred from codebase | Build matrix, ask user to verify |
122
+ | LOW | Authentication strategy unknown | EXIT: BLOCKED |
123
+
124
+ ---
125
+
126
+ ## Severity
127
+ | Level | Definition | Example |
128
+ |-------|-----------|---------|
129
+ | CRITICAL | Route unguarded due to missing middleware | Anyone can access DELETE /users |
130
+ | HIGH | Hardcoded roles in business logic | `if (user.role === 'admin')` in service layer |
131
+ | MEDIUM | Wildcard permissions granted | `user` can access `*` |
132
+ | LOW | Audit log missing for auth failure | Unlogged 403 error |
133
+
134
+ ---
135
+
136
+ ## Retry Policy
137
+ ```
138
+ Route verification fails
139
+ └─ Route unguarded
140
+ ├─ Add missing guard to route
141
+ └─ Do NOT retry more than 1 time per route
142
+ ```
143
+
144
+ ---
145
+
146
+ ## Escalation Rules
147
+ ```
148
+ BLOCKED: Roles or resources undefined
149
+ Missing:
150
+ - List of user roles
151
+ - List of protected resources
152
+ Questions:
153
+ 1. Hệ thống có những role nào? (ví dụ: admin, user, manager)
154
+ 2. Những API/Route nào cần bảo vệ?
155
+ Recommended Assumptions:
156
+ - Deny-by-default for all non-public routes
157
+ ```
158
+
159
+ ---
160
+
161
+ ## Handoff Contract
162
+ ### Consumes
163
+ ```json
164
+ {
165
+ "from": "user",
166
+ "required_fields": ["roles", "resources"],
167
+ "optional_fields": ["auth_strategy"]
168
+ }
169
+ ```
170
+ ### Produces
171
+ ```json
172
+ {
173
+ "to": "user",
174
+ "output_fields": ["role_matrix", "middleware_files", "guarded_routes", "exit_code"]
175
+ }
176
+ ```
177
+
178
+ ---
179
+
@@ -1,40 +1,215 @@
1
- ---
2
- name: qk-ai-builder
3
- category: core
4
- version: 7.0.0
5
- description: "Thiết kế AI Logic, Prompts, RAG pipelines với bảo mật chống Injection."
6
- ---
7
-
8
- # qk-ai-builder
9
-
10
- ## Scope
11
- - AI integration, Prompt Engineering, and RAG architectures (Plan & Execute)
12
-
13
- ## Verbs
14
- - `[PROMPT]`: Design strict and deterministic prompts.
15
-
16
- ## Constraints
17
- ```yaml
18
- must:
19
- - "Include explicit constraints and negative constraints (must_not) in all prompts"
20
- - "Sanitize user inputs before feeding them to LLMs (Anti-Injection)"
21
- must_not:
22
- - "Create open-ended 'chat' prompts without strict system boundaries"
23
- - "Trust LLM output for critical logic without a validation step"
24
- ```
25
-
26
- ## Policies
27
- ```yaml
28
- prefer:
29
- - "Few-shot prompting with clear examples"
30
- - "Structured output (JSON) over raw text for API interactions"
31
- ```
32
-
33
- ## Escalation
34
- ```yaml
35
- stop:
36
- - "Prompt architecture lacks validation or security boundaries"
37
- ```
38
-
39
- ## Output
40
- - Prompts, RAG pipelines, and AI integration logic.
1
+ ---
2
+ name: qk-ai-builder
3
+ category: core
4
+ version: 7.5.0
5
+ description: "Thiết kế AI logic, Prompts, RAG pipelines với bảo mật chống Injection — structured output bắt buộc."
6
+ platforms: [antigravity, claude-code, cursor, windsurf, kilo-code]
7
+ execution_mode: deterministic
8
+ cost: high
9
+ latency: slow
10
+ risk: high
11
+ side_effects: edit_files
12
+ produces: [code, schema]
13
+ consumes: [user-description]
14
+ skill_version: 7.5.0
15
+ runtime_version: 1
16
+ schema_version: 2
17
+ token_budget:
18
+ max_files_read: 3
19
+ max_lines_per_read: 100
20
+ max_shell_commands: 0
21
+ stop_early: true
22
+ exit_codes: [SUCCESS, BLOCKED, FAILED, PARTIAL]
23
+ ---
24
+
25
+ # qk-ai-builder — AI Integration Designer
26
+
27
+ > **Language rule:** Code, identifiers, file names ? English. Explanations, summaries ? Vietnamese.
28
+
29
+ ---
30
+
31
+ ## Preconditions
32
+ - [ ] AI task is defined: what input → what output
33
+ - [ ] LLM provider is specified (OpenAI, Anthropic, Gemini, local)
34
+
35
+ ---
36
+
37
+ ## Scope
38
+ - ✅ Design strict, deterministic system prompts
39
+ - ✅ Sanitize user inputs before LLM (Anti-Injection)
40
+ - Validate LLM output before using in business logic
41
+ - ✅ Structured output (JSON schema) over raw text
42
+
43
+ ## Non-Goals
44
+ - ❌ Open-ended chat prompts without system boundaries
45
+ - ❌ Trust LLM output for critical logic without validation
46
+ - ❌ Use raw user input directly in prompts
47
+
48
+ ---
49
+
50
+ ## System Prompt Template (Required Structure)
51
+
52
+ ```
53
+ [ROLE]
54
+ You are a [specific role]. You [specific expertise].
55
+
56
+ [TASK]
57
+ Your task is to [exact task description].
58
+
59
+ [CONSTRAINTS]
60
+ - Always [constraint 1]
61
+ - Never [constraint 2]
62
+ - If [edge case] → [specific action]
63
+
64
+ [OUTPUT FORMAT]
65
+ Return ONLY valid JSON matching this schema:
66
+ {
67
+ "field1": "string",
68
+ "field2": number,
69
+ "confidence": "high|medium|low"
70
+ }
71
+
72
+ [EXAMPLES]
73
+ Input: [example]
74
+ Output: {"field1": "...", "field2": 0, "confidence": "high"}
75
+ ```
76
+
77
+ ---
78
+
79
+ ## Anti-Injection Checklist
80
+ ```
81
+ [ ] User input is wrapped in XML tags: <user_input>{input}</user_input>
82
+ [ ] System instructions are separate from user content
83
+ [ ] Input is validated/sanitized before injection (no raw HTML/JS)
84
+ [ ] Max token limit set for user input
85
+ [ ] Output is parsed as JSON (not eval'd)
86
+ [ ] Confidence field in output triggers human review if "low"
87
+ ```
88
+
89
+ ---
90
+
91
+ ## RAG Pipeline Pattern
92
+ ```
93
+ User Query
94
+ └─ Sanitize + embed query
95
+ └─ Vector search (top-K = 5)
96
+ └─ Re-rank by relevance
97
+ └─ Build prompt: [System] + [Retrieved Context] + [User Query]
98
+ └─ LLM call
99
+ └─ Validate output schema
100
+ └─ Return to user
101
+ ```
102
+
103
+ ---
104
+
105
+
106
+ ---
107
+
108
+ ## Priority Order
109
+
110
+
111
+ ---
112
+
113
+ ## Workflow
114
+
115
+
116
+ ---
117
+
118
+ ## Output Format
119
+
120
+
121
+ ---
122
+ ## Exit Codes
123
+ | Code | Meaning | When |
124
+ |------|---------|------|
125
+ | SUCCESS | Prompt designed with all required sections, anti-injection applied | All checks passed |
126
+ | PARTIAL | Prompt works but missing examples or output validation | Medium confidence result |
127
+ | BLOCKED | Task or output format not defined clearly enough | Cannot design without clear spec |
128
+ | FAILED | Prompt design has security vulnerability (direct injection risk) | Security gate failure |
129
+
130
+ ---
131
+
132
+ ## Confidence Model
133
+ | Level | Condition | Action |
134
+ |-------|-----------|--------|
135
+ | HIGH | Task clearly defined, output format specified, examples provided | Build directly |
136
+ | MEDIUM | Task clear but output format ambiguous | Note assumption, add validation layer |
137
+ | LOW | Task too vague ("make an AI assistant") | EXIT: BLOCKED — define specific task |
138
+
139
+ ---
140
+
141
+ ## Severity
142
+ | Level | Definition | Example |
143
+ |-------|-----------|---------|
144
+ | CRITICAL | Prompt injection attack possible | User input directly in system prompt |
145
+ | HIGH | LLM output used without validation in business logic | JSON parse without schema check |
146
+ | MEDIUM | Missing examples leads to inconsistent output | No few-shot examples in prompt |
147
+ | LOW | Output format not explicitly stated | Returns text instead of JSON |
148
+
149
+ ---
150
+
151
+ ## Evidence Format
152
+ ```
153
+ [SEVERITY] src/prompts/[name].ts:LINE
154
+ Issue: [specific vulnerability or gap]
155
+ Confidence: HIGH
156
+ Fix: [specific change]
157
+ ```
158
+
159
+ **Example:**
160
+ ```
161
+ [CRITICAL] src/prompts/chat.ts:34
162
+ Issue: User input `${userMessage}` injected directly in system prompt — injection risk
163
+ Confidence: HIGH
164
+ Fix: Wrap in <user_input>{userMessage}</user_input> XML tags
165
+ ```
166
+
167
+ ---
168
+
169
+ ## Retry Policy
170
+ ```
171
+ LLM output validation fails
172
+ └─ Retry with stronger output format instruction (add explicit JSON schema)
173
+ ├─ PASS on retry → EXIT: SUCCESS, note "required stronger schema enforcement"
174
+ └─ FAIL on retry → EXIT: PARTIAL — add human review gate
175
+ └─ Do NOT auto-retry more than 1 time — risk of infinite loop
176
+ ```
177
+
178
+ ---
179
+
180
+ ## Escalation Rules
181
+ ```
182
+ BLOCKED: AI task not specific enough to design prompt
183
+ Missing:
184
+ - Specific task description (what input → what output)
185
+ - Output format specification (JSON schema or text structure)
186
+ Questions:
187
+ 1. Input cụ thể là gì? (user text, document, structured data)
188
+ 2. Output cần trả về dạng gì? (JSON với field gì / plain text)
189
+ Recommended Assumptions (if proceeding):
190
+ - Structured JSON output with confidence field
191
+ - Deny-by-default: reject off-topic requests in system prompt
192
+ ```
193
+
194
+ ---
195
+
196
+ ## Handoff Contract
197
+ ### Consumes
198
+ ```json
199
+ {
200
+ "from": "user",
201
+ "required_fields": ["task_description", "input_type", "output_format"],
202
+ "optional_fields": ["examples", "llm_provider", "max_tokens"]
203
+ }
204
+ ```
205
+ ### Produces
206
+ ```json
207
+ {
208
+ "to": "user or qk-validation-gate",
209
+ "output_fields": ["system_prompt", "output_schema", "anti_injection_checklist", "exit_code"]
210
+ }
211
+ ```
212
+
213
+ ---
214
+
215
+
@@ -1,46 +1,176 @@
1
- ---
2
- name: qk-api-lifecycle
3
- category: fullstack
4
- version: 7.0.0
5
- description: "Thiết kế, triển khai, và tích hợp các API endpoints với kỷ luật Zero-Trust."
6
- ---
7
-
8
- # qk-api-lifecycle
9
-
10
- ## Scope
11
- - API design, endpoints, contracts, and lifecycle management (Plan & Execute)
12
- - Zero-Trust validation of API schemas.
13
-
14
- ## Verbs
15
- - `[DEFINE]`: Create strict API contracts before implementation.
16
- - `[IMPLEMENT]`: Build endpoints strictly adhering to the defined contract.
17
-
18
- ## Constraints
19
- ```yaml
20
- must:
21
- - "Define clear request/response contracts (OpenAPI/Swagger) BEFORE coding"
22
- - "Ensure backward compatibility on existing endpoints"
23
- - "Validate all incoming data against the strict schema"
24
- must_not:
25
- - "Introduce breaking changes without versioning"
26
- - "Bypass authentication or authorization checks"
27
- - "Hallucinate or guess external API shapes without evidence"
28
- ```
29
-
30
- ## Policies
31
- ```yaml
32
- prefer:
33
- - "RESTful resource naming conventions"
34
- - "Meaningful HTTP status codes"
35
- - "Strict type-checking and validation over loose parsing"
36
- ```
37
-
38
- ## Escalation
39
- ```yaml
40
- stop:
41
- - "Required API contracts or models are missing"
42
- - "Major breaking change detected on production APIs"
43
- ```
44
-
45
- ## Output
46
- - API endpoints, controllers, and strict documentation.
1
+ ---
2
+ name: qk-api-lifecycle
3
+ category: fullstack
4
+ version: 7.5.0
5
+ description: "Thiết kế, triển khai API endpoints với Zero-Trust — contract trước, code sau."
6
+ platforms: [antigravity, claude-code, cursor, windsurf, kilo-code]
7
+ execution_mode: deterministic
8
+
9
+ cost: medium
10
+ latency: medium
11
+ risk: medium
12
+ side_effects: edit_files
13
+ produces: [code, report]
14
+ consumes: [context-graph, user-description]
15
+
16
+ token_budget:
17
+ max_files_read: 3
18
+ max_lines_per_read: 150
19
+ max_shell_commands: 1
20
+ stop_early: true
21
+
22
+ exit_codes: [SUCCESS, BLOCKED, FAILED, PARTIAL]
23
+ skill_version: 7.5.0
24
+ runtime_version: 1
25
+ schema_version: 2
26
+ ---
27
+
28
+ # qk-api-lifecycle — API Design & Implementation
29
+
30
+ > **Language rule:** Code, identifiers, file names ? English. Explanations, summaries ? Vietnamese.
31
+
32
+ ---
33
+
34
+ ## Preconditions
35
+ - [ ] API purpose and resource name are defined
36
+ - [ ] Request/response shape is specified (or sample JSON provided)
37
+
38
+ ```
39
+ On missing precondition:
40
+ EXIT: BLOCKED
41
+ Message: "Cần định nghĩa: resource name + expected request/response shape trước khi code."
42
+ ```
43
+
44
+ ---
45
+
46
+ ## Scope
47
+ - ✅ Define OpenAPI/Swagger contract BEFORE writing code
48
+ - ✅ Implement endpoint strictly to contract
49
+ - ✅ Validate all inputs, handle all error cases
50
+ - ✅ Ensure backward compatibility
51
+
52
+ ## Non-Goals
53
+ - ❌ Introduce breaking changes without versioning
54
+ - ❌ Bypass auth checks
55
+ - ❌ Guess external API shapes without evidence
56
+
57
+ ---
58
+
59
+ ## Priority Order
60
+
61
+ | Priority | Task | Skip Threshold |
62
+ |----------|------|----------------|
63
+ | P1 | Contract definition (TypeScript types) | Never |
64
+ | P2 | Success response + correct status code | Never |
65
+ | P3 | Input validation middleware | Never |
66
+ | P4 | Error responses (400, 401, 404, 422, 500) | Budget < 30% |
67
+ | P5 | Documentation (JSDoc or OpenAPI annotation) | Budget < 60% |
68
+
69
+ ---
70
+
71
+ ## Workflow
72
+
73
+ ### Phase 1 — Contract Definition
74
+ 1. Define TypeScript interfaces for Request + Response
75
+ 2. Specify HTTP method, route, status codes
76
+ 3. Document error cases
77
+
78
+ **Decision:**
79
+ ```
80
+ IF contract is clear → go to Phase 2
81
+ ELSE → EXIT: BLOCKED — define contract first
82
+ ```
83
+
84
+ ### Phase 2 — Implementation
85
+ 1. Build route handler strictly matching contract
86
+ 2. Add input validation (zod/yup/class-validator)
87
+ 3. Handle all error cases with correct HTTP status
88
+
89
+ ### Phase 3 — Verification
90
+ 1. Read implemented code vs defined contract
91
+ 2. Verify: method, route, response shape, error codes match
92
+
93
+ **Decision:**
94
+ ```
95
+ IF contract and implementation match → EXIT: SUCCESS
96
+ ELSE → fix gaps, EXIT: PARTIAL
97
+ ```
98
+
99
+ ---
100
+
101
+ ## Confidence Model
102
+ | Level | Condition | Action |
103
+ |-------|-----------|--------|
104
+ | HIGH | Contract defined, implementation matches | Report SUCCESS |
105
+ | MEDIUM | Contract inferred from context | Note assumption |
106
+ | LOW | No contract, guessing from usage | EXIT: BLOCKED |
107
+
108
+ ---
109
+
110
+ ## Evidence Format
111
+ ```
112
+ [SEVERITY] src/routes/[resource].ts:LINE
113
+ Issue: [mismatch between contract and implementation]
114
+ Confidence: HIGH
115
+ Fix: [specific change needed]
116
+ ```
117
+
118
+ ---
119
+
120
+ ## Handoff Contract
121
+ ### Consumes
122
+ ```json
123
+ { "from": "user", "required_fields": ["resource_name", "request_shape", "response_shape"] }
124
+ ```
125
+ ### Produces
126
+ ```json
127
+ { "to": "qk-validation-gate", "output_fields": ["route_file", "types_file", "contract_doc", "exit_code"] }
128
+ ```
129
+
130
+ ---
131
+
132
+ ## Exit Codes
133
+ | Code | Meaning | When |
134
+ |------|---------|------|
135
+ | SUCCESS | Contract defined, implemented, verified | Implementation matches contract |
136
+ | PARTIAL | Implemented but missing error cases or docs | Core logic done, edge cases missing |
137
+ | BLOCKED | No contract defined — cannot code | Missing payload/schema |
138
+ | FAILED | Implementation breaks existing contract | Backward incompatibility |
139
+
140
+ ---
141
+
142
+ ## Severity
143
+ | Level | Definition | Example |
144
+ |-------|-----------|---------|
145
+ | CRITICAL | Broken contract on public API | Renamed `userId` to `id` in response |
146
+ | HIGH | Missing input validation | SQL Injection or crash on null input |
147
+ | MEDIUM | Returning 500 for validation errors | Not using 400/422 |
148
+ | LOW | Missing JSDoc | Undocumented route |
149
+
150
+ ---
151
+
152
+ ## Retry Policy
153
+ ```
154
+ Contract verification fails
155
+ └─ Implementation does not match contract
156
+ ├─ Fix route handler to match contract
157
+ └─ Do NOT retry more than 1 time
158
+ ```
159
+
160
+ ---
161
+
162
+ ## Escalation Rules
163
+ ```
164
+ BLOCKED: No contract defined
165
+ Missing:
166
+ - Request payload structure
167
+ - Response payload structure
168
+ Questions:
169
+ 1. Payload gửi lên (Request) có những field gì?
170
+ 2. Payload trả về (Response) có cấu trúc thế nào?
171
+ Recommended Assumptions:
172
+ - Default JSON response with `{ data, message }` wrapper
173
+ ```
174
+
175
+ ---
176
+