ai-developer-skill-os 7.5.0 → 8.1.4

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 (377) hide show
  1. package/.agents/CHANGELOG.md +2 -1
  2. package/.agents/README.md +51 -10
  3. package/.agents/docs/ARCHITECTURE.md +156 -0
  4. package/.agents/docs/CHI_TIET_SKILLS.md +2 -1
  5. package/.agents/docs/MIGRATION-CLEANUP-V8.1.3.md +36 -0
  6. package/.agents/docs/MIGRATION-STATUS.md +35 -0
  7. package/.agents/docs/MIGRATION-V8.md +10 -0
  8. package/.agents/docs/ROADMAP-V8.2.md +78 -0
  9. package/.agents/docs/V8-CERTIFICATION.md +27 -0
  10. package/.agents/docs/VERSIONING.md +95 -0
  11. package/.agents/docs/decisions/ADR-001-v8-migration.md +58 -0
  12. package/.agents/docs/decisions/ADR-002-workflow-separation.md +50 -0
  13. package/.agents/docs/decisions/ADR-003-registry-generated.md +54 -0
  14. package/.agents/docs/decisions/ADR-008-skill-boundary-review.md +27 -0
  15. package/.agents/docs/schemas/learning.schema.yml +69 -0
  16. package/.agents/docs/schemas/skill.schema.yml +188 -0
  17. package/.agents/docs/schemas/workflow.schema.yml +33 -0
  18. package/.agents/knowledge/design-intelligence/industries/ecommerce.md +3 -0
  19. package/.agents/knowledge/design-intelligence/industries/fintech.md +3 -0
  20. package/.agents/knowledge/design-intelligence/industries/healthcare.md +3 -0
  21. package/.agents/learnings/draft/README.md +37 -0
  22. package/.agents/registry/capability-graph.yml +500 -0
  23. package/.agents/registry/skills-index.yml +525 -0
  24. package/.agents/reports/RELEASE-CHECKLIST.md +29 -0
  25. package/.agents/reports/architecture-audit.md +13 -0
  26. package/.agents/reports/graph-health.md +20 -0
  27. package/.agents/reports/skill-audit.md +215 -0
  28. package/.agents/rules/coding.md +102 -0
  29. package/.agents/rules/command-safety.md +21 -0
  30. package/.agents/rules/global.md +135 -0
  31. package/.agents/rules/priorities.yml +24 -0
  32. package/.agents/rules/safety.md +84 -0
  33. package/.agents/rules/security.md +13 -0
  34. package/.agents/rules/skill-quality.md +14 -0
  35. package/.agents/skills/_template/SKILL.md +132 -0
  36. package/.agents/skills/qk-access-policy/SKILL.md +61 -5
  37. package/.agents/skills/qk-agent-observability/SKILL.md +73 -0
  38. package/.agents/skills/qk-ai-builder/SKILL.md +62 -5
  39. package/.agents/skills/qk-api-lifecycle/SKILL.md +59 -6
  40. package/.agents/skills/qk-bug-resolution/SKILL.md +64 -6
  41. package/.agents/skills/qk-context-loader/SKILL.md +63 -11
  42. package/.agents/skills/qk-data-lifecycle/SKILL.md +61 -5
  43. package/.agents/skills/qk-db-optimizer/SKILL.md +61 -5
  44. package/.agents/skills/qk-design-system-engineering/SKILL.md +112 -0
  45. package/.agents/skills/qk-devops-platform/SKILL.md +117 -0
  46. package/.agents/skills/qk-docs/SKILL.md +62 -6
  47. package/.agents/skills/qk-engineering-standard/SKILL.md +62 -12
  48. package/.agents/skills/qk-fe-api-integration/SKILL.md +60 -6
  49. package/.agents/skills/qk-feature-delivery/SKILL.md +65 -6
  50. package/.agents/skills/qk-frontend-architecture/SKILL.md +134 -0
  51. package/.agents/skills/qk-help/SKILL.md +245 -193
  52. package/.agents/skills/qk-orchestrator/SKILL.md +67 -13
  53. package/.agents/skills/qk-orchestrator/references/routing-table.md +4 -3
  54. package/.agents/skills/qk-product-specification/SKILL.md +130 -0
  55. package/.agents/skills/qk-production-release/SKILL.md +59 -6
  56. package/.agents/skills/qk-project-bootstrap/SKILL.md +68 -7
  57. package/.agents/skills/qk-project-health/SKILL.md +63 -6
  58. package/.agents/skills/qk-project-memory/SKILL.md +109 -6
  59. package/.agents/skills/qk-security-audit/SKILL.md +135 -0
  60. package/.agents/skills/qk-system-evolution/SKILL.md +63 -12
  61. package/.agents/skills/qk-test-engineering/SKILL.md +139 -0
  62. package/.agents/skills/qk-ui-audit/SKILL.md +63 -8
  63. package/.agents/skills/qk-ui-builder/SKILL.md +509 -0
  64. package/.agents/skills/qk-ui-builder/references/anti-patterns.md +295 -0
  65. package/.agents/skills/qk-ui-builder/references/color.md +115 -0
  66. package/.agents/skills/qk-ui-builder/references/component-cookbook.md +1194 -0
  67. package/.agents/skills/qk-ui-builder/references/copy.md +250 -0
  68. package/.agents/skills/qk-ui-builder/references/interaction-and-states.md +115 -0
  69. package/.agents/skills/qk-ui-builder/references/layout-and-space.md +111 -0
  70. package/.agents/skills/qk-ui-builder/references/macrostructures/01-bento-grid.md +48 -0
  71. package/.agents/skills/qk-ui-builder/references/macrostructures/02-long-document.md +50 -0
  72. package/.agents/skills/qk-ui-builder/references/macrostructures/03-marquee-hero.md +51 -0
  73. package/.agents/skills/qk-ui-builder/references/macrostructures/04-stat-led.md +49 -0
  74. package/.agents/skills/qk-ui-builder/references/macrostructures/05-workbench.md +44 -0
  75. package/.agents/skills/qk-ui-builder/references/macrostructures/06-conversational-faq.md +50 -0
  76. package/.agents/skills/qk-ui-builder/references/macrostructures/07-manifesto.md +51 -0
  77. package/.agents/skills/qk-ui-builder/references/macrostructures/08-photographic.md +50 -0
  78. package/.agents/skills/qk-ui-builder/references/macrostructures/09-quote-led.md +50 -0
  79. package/.agents/skills/qk-ui-builder/references/macrostructures/11-catalogue.md +49 -0
  80. package/.agents/skills/qk-ui-builder/references/macrostructures/12-letter.md +49 -0
  81. package/.agents/skills/qk-ui-builder/references/macrostructures/13-index-first.md +49 -0
  82. package/.agents/skills/qk-ui-builder/references/macrostructures/14-narrative-workflow.md +48 -0
  83. package/.agents/skills/qk-ui-builder/references/macrostructures/15-split-studio.md +48 -0
  84. package/.agents/skills/qk-ui-builder/references/macrostructures/16-feature-stack.md +51 -0
  85. package/.agents/skills/qk-ui-builder/references/macrostructures/17-type-specimen.md +48 -0
  86. package/.agents/skills/qk-ui-builder/references/macrostructures/18-portfolio-grid.md +48 -0
  87. package/.agents/skills/qk-ui-builder/references/macrostructures/19-map-diagram.md +50 -0
  88. package/.agents/skills/qk-ui-builder/references/macrostructures/20-ecosystem-index.md +48 -0
  89. package/.agents/skills/qk-ui-builder/references/macrostructures/21-component-playground.md +45 -0
  90. package/.agents/skills/qk-ui-builder/references/macrostructures.md +38 -0
  91. package/.agents/skills/qk-ui-builder/references/motion.md +95 -0
  92. package/.agents/skills/qk-ui-builder/references/responsive.md +115 -0
  93. package/.agents/skills/qk-ui-builder/references/slop-test.md +135 -0
  94. package/.agents/skills/qk-ui-builder/references/structure.md +280 -0
  95. package/.agents/skills/qk-ui-builder/references/themes/atmospheric.md +53 -0
  96. package/.agents/skills/qk-ui-builder/references/themes/carnival.md +52 -0
  97. package/.agents/skills/qk-ui-builder/references/themes/cobalt.md +52 -0
  98. package/.agents/skills/qk-ui-builder/references/themes/editorial.md +52 -0
  99. package/.agents/skills/qk-ui-builder/references/themes/garden.md +52 -0
  100. package/.agents/skills/qk-ui-builder/references/themes/hum.md +52 -0
  101. package/.agents/skills/qk-ui-builder/references/themes/lumen.md +52 -0
  102. package/.agents/skills/qk-ui-builder/references/themes/midnight.md +52 -0
  103. package/.agents/skills/qk-ui-builder/references/themes/modern-minimal.md +52 -0
  104. package/.agents/skills/qk-ui-builder/references/themes/playful.md +52 -0
  105. package/.agents/skills/qk-ui-builder/references/themes/specimen.md +52 -0
  106. package/.agents/skills/qk-ui-builder/references/themes/terminal.md +52 -0
  107. package/.agents/skills/qk-ui-builder/references/typography.md +129 -0
  108. package/.agents/skills/qk-ui-system-builder/SKILL.md +61 -5
  109. package/.agents/skills/qk-validation-gate/SKILL.md +63 -11
  110. package/.agents/skills/qk-web-quality-gate/SKILL.md +114 -0
  111. package/.agents/workflows/_schema.yml +109 -0
  112. package/.agents/workflows/bug-resolution.yml +101 -0
  113. package/.agents/workflows/code-review.yml +77 -0
  114. package/.agents/workflows/documentation.yml +75 -0
  115. package/.agents/workflows/feature-delivery.yml +103 -0
  116. package/.agents/workflows/refactor.yml +81 -0
  117. package/.agents/workflows/research.yml +60 -0
  118. package/.agents/workflows/security-audit.yml +72 -0
  119. package/.agents/workflows/skill-evolution.yml +65 -0
  120. package/.agents/workflows/spec-driven-development.yml +57 -0
  121. package/CHANGELOG.md +91 -69
  122. package/README.md +50 -45
  123. package/bin/install.js +57 -309
  124. package/package.json +14 -3
  125. package/tooling/generate-evaluation-cases.cjs +44 -0
  126. package/tooling/generate-registry.js +157 -0
  127. package/tooling/run-aar.js +143 -0
  128. package/tooling/validate-graph.js +87 -0
  129. package/tooling/validate-skills.js +102 -0
  130. package/.agents/_template/BEHAVIOR_SPEC.md +0 -96
  131. package/.agents/_template/examples/example-en.md +0 -49
  132. package/.agents/_template/examples/example-vi.md +0 -49
  133. package/.agents/skills/qk-design-to-code/SKILL.md +0 -285
  134. package/.agents/skills.json +0 -819
  135. package/.github/workflows/ci.yml +0 -56
  136. package/.qk-ai-skill-os/CHANGELOG.md +0 -69
  137. package/.qk-ai-skill-os/LICENSE +0 -21
  138. package/.qk-ai-skill-os/README.md +0 -59
  139. package/.qk-ai-skill-os/_template/BEHAVIOR_SPEC.md +0 -96
  140. package/.qk-ai-skill-os/_template/examples/example-en.md +0 -49
  141. package/.qk-ai-skill-os/_template/examples/example-vi.md +0 -49
  142. package/.qk-ai-skill-os/docs/CHI_TIET_SKILLS.md +0 -125
  143. package/.qk-ai-skill-os/docs/GOVERNANCE.md +0 -40
  144. package/.qk-ai-skill-os/docs/HUONG_DAN_SU_DUNG.md +0 -120
  145. package/.qk-ai-skill-os/docs/SPEC.md +0 -87
  146. package/.qk-ai-skill-os/docs/adr/0001-intent-based-architecture.md +0 -19
  147. package/.qk-ai-skill-os/docs/adr/0002-kernel-freeze.md +0 -21
  148. package/.qk-ai-skill-os/docs/adr/0003-risk-based-verification.md +0 -20
  149. package/.qk-ai-skill-os/docs/adr/0004-progressive-evidence.md +0 -19
  150. package/.qk-ai-skill-os/docs/skill-classification.md +0 -25
  151. package/.qk-ai-skill-os/skills/_archive_old_skills/qk-accessibility-audit/SKILL.md +0 -121
  152. package/.qk-ai-skill-os/skills/_archive_old_skills/qk-agent-orchestrator/SKILL.md +0 -179
  153. package/.qk-ai-skill-os/skills/_archive_old_skills/qk-api-integration/SKILL.md +0 -389
  154. package/.qk-ai-skill-os/skills/_archive_old_skills/qk-auth-security/SKILL.md +0 -96
  155. package/.qk-ai-skill-os/skills/_archive_old_skills/qk-backend-architecture/SKILL.md +0 -125
  156. package/.qk-ai-skill-os/skills/_archive_old_skills/qk-bug-fix/SKILL.md +0 -213
  157. package/.qk-ai-skill-os/skills/_archive_old_skills/qk-component-generator/SKILL.md +0 -136
  158. package/.qk-ai-skill-os/skills/_archive_old_skills/qk-context-manager/SKILL.md +0 -175
  159. package/.qk-ai-skill-os/skills/_archive_old_skills/qk-database-engineer/SKILL.md +0 -104
  160. package/.qk-ai-skill-os/skills/_archive_old_skills/qk-deployment/SKILL.md +0 -96
  161. package/.qk-ai-skill-os/skills/_archive_old_skills/qk-design-system/SKILL.md +0 -137
  162. package/.qk-ai-skill-os/skills/_archive_old_skills/qk-form-builder/SKILL.md +0 -140
  163. package/.qk-ai-skill-os/skills/_archive_old_skills/qk-frontend-architecture/SKILL.md +0 -155
  164. package/.qk-ai-skill-os/skills/_archive_old_skills/qk-frontend-debug/SKILL.md +0 -133
  165. package/.qk-ai-skill-os/skills/_archive_old_skills/qk-frontend-performance/SKILL.md +0 -129
  166. package/.qk-ai-skill-os/skills/_archive_old_skills/qk-frontend-testing/SKILL.md +0 -146
  167. package/.qk-ai-skill-os/skills/_archive_old_skills/qk-git-engineer/SKILL.md +0 -304
  168. package/.qk-ai-skill-os/skills/_archive_old_skills/qk-help/SKILL.md +0 -68
  169. package/.qk-ai-skill-os/skills/_archive_old_skills/qk-migration/SKILL.md +0 -284
  170. package/.qk-ai-skill-os/skills/_archive_old_skills/qk-project-audit/SKILL.md +0 -280
  171. package/.qk-ai-skill-os/skills/_archive_old_skills/qk-refactor/SKILL.md +0 -222
  172. package/.qk-ai-skill-os/skills/_archive_old_skills/qk-state-management/SKILL.md +0 -140
  173. package/.qk-ai-skill-os/skills/_archive_old_skills/qk-table-crud-generator/SKILL.md +0 -127
  174. package/.qk-ai-skill-os/skills/_archive_old_skills/qk-ui-builder/SKILL.md +0 -152
  175. package/.qk-ai-skill-os/skills/_template/SKILL.md +0 -238
  176. package/.qk-ai-skill-os/skills/qk-access-policy/SKILL.md +0 -179
  177. package/.qk-ai-skill-os/skills/qk-ai-builder/SKILL.md +0 -221
  178. package/.qk-ai-skill-os/skills/qk-api-lifecycle/SKILL.md +0 -176
  179. package/.qk-ai-skill-os/skills/qk-bug-resolution/SKILL.md +0 -307
  180. package/.qk-ai-skill-os/skills/qk-context-loader/SKILL.md +0 -218
  181. package/.qk-ai-skill-os/skills/qk-data-lifecycle/SKILL.md +0 -192
  182. package/.qk-ai-skill-os/skills/qk-db-optimizer/SKILL.md +0 -196
  183. package/.qk-ai-skill-os/skills/qk-design-to-code/SKILL.md +0 -291
  184. package/.qk-ai-skill-os/skills/qk-docs/SKILL.md +0 -198
  185. package/.qk-ai-skill-os/skills/qk-engineering-standard/SKILL.md +0 -351
  186. package/.qk-ai-skill-os/skills/qk-engineering-standard/rules/backend.md +0 -122
  187. package/.qk-ai-skill-os/skills/qk-engineering-standard/rules/database.md +0 -3
  188. package/.qk-ai-skill-os/skills/qk-engineering-standard/rules/frontend.md +0 -152
  189. package/.qk-ai-skill-os/skills/qk-engineering-standard/rules/security.md +0 -3
  190. package/.qk-ai-skill-os/skills/qk-engineering-standard/rules/testing.md +0 -3
  191. package/.qk-ai-skill-os/skills/qk-fe-api-integration/SKILL.md +0 -326
  192. package/.qk-ai-skill-os/skills/qk-feature-delivery/SKILL.md +0 -305
  193. package/.qk-ai-skill-os/skills/qk-help/SKILL.md +0 -193
  194. package/.qk-ai-skill-os/skills/qk-orchestrator/SKILL.md +0 -277
  195. package/.qk-ai-skill-os/skills/qk-orchestrator/references/routing-table.md +0 -77
  196. package/.qk-ai-skill-os/skills/qk-production-release/SKILL.md +0 -290
  197. package/.qk-ai-skill-os/skills/qk-project-bootstrap/SKILL.md +0 -240
  198. package/.qk-ai-skill-os/skills/qk-project-health/SKILL.md +0 -199
  199. package/.qk-ai-skill-os/skills/qk-project-memory/SKILL.md +0 -172
  200. package/.qk-ai-skill-os/skills/qk-system-evolution/SKILL.md +0 -285
  201. package/.qk-ai-skill-os/skills/qk-ui-audit/SKILL.md +0 -314
  202. package/.qk-ai-skill-os/skills/qk-ui-audit/references/anti-slop-checklist.md +0 -136
  203. package/.qk-ai-skill-os/skills/qk-ui-system-builder/SKILL.md +0 -225
  204. package/.qk-ai-skill-os/skills/qk-validation-gate/SKILL.md +0 -361
  205. package/.qk-ai-skill-os/skills.json +0 -819
  206. package/CLAUDE.md +0 -110
  207. package/_template/BEHAVIOR_SPEC.md +0 -96
  208. package/_template/examples/example-en.md +0 -49
  209. package/_template/examples/example-vi.md +0 -49
  210. package/add_lang.js +0 -21
  211. package/add_lang.py +0 -25
  212. package/add_sections.py +0 -53
  213. package/bin/lint.js +0 -122
  214. package/docs/CHI_TIET_SKILLS.md +0 -125
  215. package/docs/GOVERNANCE.md +0 -40
  216. package/docs/HUONG_DAN_SU_DUNG.md +0 -120
  217. package/docs/SPEC.md +0 -87
  218. package/docs/adr/0001-intent-based-architecture.md +0 -19
  219. package/docs/adr/0002-kernel-freeze.md +0 -21
  220. package/docs/adr/0003-risk-based-verification.md +0 -20
  221. package/docs/adr/0004-progressive-evidence.md +0 -19
  222. package/docs/skill-classification.md +0 -25
  223. package/fix_seeds.js +0 -22
  224. package/framework/KERNEL.md +0 -83
  225. package/framework/bias-library/cosmetic-refactor.md +0 -21
  226. package/framework/bias-library/enterprise-crud.md +0 -21
  227. package/framework/bias-library/fake-ui-slop.md +0 -20
  228. package/framework/bias-library/hallucinated-tools.md +0 -20
  229. package/framework/bias-library/missing-ui-states.md +0 -19
  230. package/framework/bias-library/over-indexing.md +0 -20
  231. package/framework/bias-library/swallow-errors.md +0 -19
  232. package/framework/bias-library/ui-only-security.md +0 -17
  233. package/framework/decision-primitives.md +0 -47
  234. package/framework/dial-library/complexity-budget.md +0 -13
  235. package/framework/dial-library/granularity.md +0 -13
  236. package/framework/dial-library/optimization-strategy.md +0 -13
  237. package/framework/dial-library/strictness.md +0 -13
  238. package/framework/rule-library/delegation-only.md +0 -9
  239. package/framework/rule-library/minimal-diff.md +0 -9
  240. package/framework/skill-schema.md +0 -310
  241. package/knowledge/backend/nodejs.md +0 -52
  242. package/knowledge/frontend/react.md +0 -81
  243. package/migrate-to-v6.js +0 -130
  244. package/migrate.js +0 -147
  245. package/migrate.py +0 -133
  246. package/migrate_all.cjs +0 -96
  247. package/patch.js +0 -15
  248. package/patch.py +0 -89
  249. package/patch2.py +0 -83
  250. package/rename.js +0 -64
  251. package/skills/_archive_old_skills/qk-accessibility-audit/SKILL.md +0 -121
  252. package/skills/_archive_old_skills/qk-agent-orchestrator/SKILL.md +0 -179
  253. package/skills/_archive_old_skills/qk-api-integration/SKILL.md +0 -389
  254. package/skills/_archive_old_skills/qk-auth-security/SKILL.md +0 -96
  255. package/skills/_archive_old_skills/qk-backend-architecture/SKILL.md +0 -125
  256. package/skills/_archive_old_skills/qk-bug-fix/SKILL.md +0 -213
  257. package/skills/_archive_old_skills/qk-component-generator/SKILL.md +0 -136
  258. package/skills/_archive_old_skills/qk-context-manager/SKILL.md +0 -175
  259. package/skills/_archive_old_skills/qk-database-engineer/SKILL.md +0 -104
  260. package/skills/_archive_old_skills/qk-deployment/SKILL.md +0 -96
  261. package/skills/_archive_old_skills/qk-design-system/SKILL.md +0 -137
  262. package/skills/_archive_old_skills/qk-form-builder/SKILL.md +0 -140
  263. package/skills/_archive_old_skills/qk-frontend-architecture/SKILL.md +0 -155
  264. package/skills/_archive_old_skills/qk-frontend-debug/SKILL.md +0 -133
  265. package/skills/_archive_old_skills/qk-frontend-performance/SKILL.md +0 -129
  266. package/skills/_archive_old_skills/qk-frontend-testing/SKILL.md +0 -146
  267. package/skills/_archive_old_skills/qk-git-engineer/SKILL.md +0 -304
  268. package/skills/_archive_old_skills/qk-help/SKILL.md +0 -68
  269. package/skills/_archive_old_skills/qk-migration/SKILL.md +0 -284
  270. package/skills/_archive_old_skills/qk-project-audit/SKILL.md +0 -280
  271. package/skills/_archive_old_skills/qk-refactor/SKILL.md +0 -222
  272. package/skills/_archive_old_skills/qk-state-management/SKILL.md +0 -140
  273. package/skills/_archive_old_skills/qk-table-crud-generator/SKILL.md +0 -127
  274. package/skills/_archive_old_skills/qk-ui-builder/SKILL.md +0 -152
  275. package/skills/_template/SKILL.md +0 -238
  276. package/skills/qk-access-policy/SKILL.md +0 -179
  277. package/skills/qk-ai-builder/SKILL.md +0 -215
  278. package/skills/qk-api-lifecycle/SKILL.md +0 -176
  279. package/skills/qk-bug-resolution/SKILL.md +0 -307
  280. package/skills/qk-context-loader/SKILL.md +0 -218
  281. package/skills/qk-data-lifecycle/SKILL.md +0 -192
  282. package/skills/qk-db-optimizer/SKILL.md +0 -196
  283. package/skills/qk-design-to-code/SKILL.md +0 -285
  284. package/skills/qk-docs/SKILL.md +0 -198
  285. package/skills/qk-engineering-standard/SKILL.md +0 -351
  286. package/skills/qk-engineering-standard/rules/backend.md +0 -122
  287. package/skills/qk-engineering-standard/rules/database.md +0 -3
  288. package/skills/qk-engineering-standard/rules/frontend.md +0 -152
  289. package/skills/qk-engineering-standard/rules/security.md +0 -3
  290. package/skills/qk-engineering-standard/rules/testing.md +0 -3
  291. package/skills/qk-fe-api-integration/SKILL.md +0 -326
  292. package/skills/qk-feature-delivery/SKILL.md +0 -305
  293. package/skills/qk-help/SKILL.md +0 -193
  294. package/skills/qk-orchestrator/SKILL.md +0 -277
  295. package/skills/qk-orchestrator/references/routing-table.md +0 -77
  296. package/skills/qk-production-release/SKILL.md +0 -284
  297. package/skills/qk-project-bootstrap/SKILL.md +0 -234
  298. package/skills/qk-project-health/SKILL.md +0 -199
  299. package/skills/qk-project-memory/SKILL.md +0 -172
  300. package/skills/qk-system-evolution/SKILL.md +0 -281
  301. package/skills/qk-ui-audit/SKILL.md +0 -314
  302. package/skills/qk-ui-audit/references/anti-slop-checklist.md +0 -136
  303. package/skills/qk-ui-system-builder/SKILL.md +0 -221
  304. package/skills/qk-validation-gate/SKILL.md +0 -359
  305. package/skills.json +0 -819
  306. package/specs/contracts/behavior-contract.yaml +0 -40
  307. package/specs/expectations/qk-bug-resolution.yaml +0 -35
  308. package/specs/fixtures/user-payload.json +0 -12
  309. package/specs/regressions/api-integration-null-fields.yaml +0 -19
  310. package/specs/scenarios/fix-login-nullref.yaml +0 -3
  311. package/taste-skill/.claude-plugin/marketplace.json +0 -20
  312. package/taste-skill/.claude-plugin/plugin.json +0 -19
  313. package/taste-skill/.github/FUNDING.yml +0 -1
  314. package/taste-skill/.github/copilot-instructions.md +0 -11
  315. package/taste-skill/CHANGELOG.md +0 -111
  316. package/taste-skill/LICENSE +0 -21
  317. package/taste-skill/README.md +0 -212
  318. package/taste-skill/assets/.gitkeep +0 -0
  319. package/taste-skill/assets/readme-banner.webp +0 -0
  320. package/taste-skill/assets/readme-buttons/btn-agent-skills.webp +0 -0
  321. package/taste-skill/assets/readme-buttons/btn-changelog.webp +0 -0
  322. package/taste-skill/assets/readme-buttons/btn-mit.webp +0 -0
  323. package/taste-skill/assets/readme-buttons/btn-site.webp +0 -0
  324. package/taste-skill/assets/readme-buttons/btn-tools.webp +0 -0
  325. package/taste-skill/assets/readme-cta-tasteskill.svg +0 -5
  326. package/taste-skill/assets/sponsors/animations-dev.webp +0 -0
  327. package/taste-skill/assets/sponsors/emil-animations-dev.webp +0 -0
  328. package/taste-skill/assets/taste-skill-logo.png +0 -0
  329. package/taste-skill/assets/taste-skill-logo.webp +0 -0
  330. package/taste-skill/assets/vercel-oss-program-badge.svg +0 -44
  331. package/taste-skill/examples/floria-bottom.webp +0 -0
  332. package/taste-skill/examples/floria-full.webp +0 -0
  333. package/taste-skill/examples/floria-top.webp +0 -0
  334. package/taste-skill/research/README.md +0 -8
  335. package/taste-skill/research/laziness/README.md +0 -25
  336. package/taste-skill/research/laziness/findings/empirical-results.md +0 -58
  337. package/taste-skill/research/laziness/findings/references.md +0 -20
  338. package/taste-skill/research/laziness/remediation/architectural-patterns.md +0 -55
  339. package/taste-skill/research/laziness/remediation/parameter-tuning.md +0 -44
  340. package/taste-skill/research/laziness/remediation/prompt-engineering.md +0 -52
  341. package/taste-skill/research/laziness/remediation/reference-prompts.md +0 -79
  342. package/taste-skill/research/laziness/root-causes/cognitive-shortcuts.md +0 -23
  343. package/taste-skill/research/laziness/root-causes/output-limits.md +0 -39
  344. package/taste-skill/research/laziness/root-causes/rlhf-and-compute.md +0 -27
  345. package/taste-skill/research/laziness/root-causes/training-data-bias.md +0 -28
  346. package/taste-skill/scripts/build-emil-sponsor-row.mjs +0 -41
  347. package/taste-skill/scripts/convert-readme-assets-webp.mjs +0 -142
  348. package/taste-skill/scripts/process-readme-buttons.mjs +0 -108
  349. package/taste-skill/scripts/process-sponsor-badge.mjs +0 -83
  350. package/taste-skill/skill.sh +0 -25
  351. package/taste-skill/skills/brandkit/SKILL.md +0 -798
  352. package/taste-skill/skills/brutalist-skill/SKILL.md +0 -92
  353. package/taste-skill/skills/gpt-tasteskill/SKILL.md +0 -74
  354. package/taste-skill/skills/image-to-code-skill/SKILL.md +0 -1228
  355. package/taste-skill/skills/imagegen-frontend-mobile/SKILL.md +0 -1465
  356. package/taste-skill/skills/imagegen-frontend-web/SKILL.md +0 -987
  357. package/taste-skill/skills/llms.txt +0 -13
  358. package/taste-skill/skills/minimalist-skill/SKILL.md +0 -85
  359. package/taste-skill/skills/output-skill/SKILL.md +0 -49
  360. package/taste-skill/skills/redesign-skill/SKILL.md +0 -178
  361. package/taste-skill/skills/soft-skill/SKILL.md +0 -98
  362. package/taste-skill/skills/stitch-skill/DESIGN.md +0 -121
  363. package/taste-skill/skills/stitch-skill/SKILL.md +0 -184
  364. package/taste-skill/skills/taste-skill/SKILL.md +0 -1206
  365. package/taste-skill/skills/taste-skill-v1/SKILL.md +0 -226
  366. package/temp_fix.js +0 -61
  367. package/templates/DESIGN.md +0 -38
  368. package/templates/bug-report.md +0 -21
  369. package/templates/design-report.md +0 -21
  370. package/templates/feature-report.md +0 -20
  371. package/templates/review-report.md +0 -21
  372. package/templates/skill-template.md +0 -38
  373. package/tests/behavior-conformance.test.js +0 -154
  374. package/tests/install-script.test.js +0 -38
  375. package/tests/registry.test.js +0 -111
  376. package/update_template.js +0 -28
  377. package/vitest.config.js +0 -11
@@ -1,127 +0,0 @@
1
- ---
2
- name: qk-table-crud-generator
3
- description: >-
4
- Tạo các bảng dữ liệu admin với đầy đủ tính năng phân trang, sắp xếp, lọc và thao tác thêm/sửa/xóa (CRUD).
5
- version: 1.0.0
6
- category: frontend
7
- tags: [table, data-grid, crud, admin, pagination, sorting]
8
- platforms: [antigravity, claude-code, kilo-code, cursor, windsurf]
9
- ---
10
-
11
- # Table & CRUD Generator
12
-
13
- > **Language rule:**
14
- > Use English for: code, identifiers, file names, architecture terms, technical decisions.
15
- > Use the user's language for: explanations, questions, summaries, and feedback.
16
- > The user may write in any language — detect and match it automatically.
17
-
18
- ---
19
-
20
- ## Trigger
21
-
22
- Activate this skill when:
23
- - User says "create an admin table", "build a user list", "add data grid"
24
- - User needs a view to manage a list of entities with CRUD capabilities
25
- - A feature requires complex data presentation (sorting, filtering, pagination)
26
-
27
- ---
28
-
29
- ## Scope
30
-
31
- - ✅ Generate a data table using design system components or libraries (e.g., TanStack Table)
32
- - ✅ Implement client-side or server-side pagination, sorting, and filtering
33
- - ✅ Add UI actions for Create, Edit, and Delete (modals or routing)
34
- - ✅ Integrate with `api-integration` hooks for data fetching and mutations
35
- - ✅ Handle loading, error, and empty states gracefully
36
-
37
- ---
38
-
39
- ## Non-goals
40
-
41
- - ❌ Do NOT build the backend API for the CRUD operations (assume they exist or delegate)
42
- - ❌ Do NOT use raw `<table>` tags if a powerful data-grid library is already installed
43
-
44
- ---
45
-
46
- ## Workflow
47
-
48
- ### Phase 1 — Data Model & Requirements
49
-
50
- 1. Understand the entity (e.g., `User`, `Product`).
51
- 2. Identify columns to display.
52
- 3. Determine operations needed (e.g., just Read/Delete, or full CRUD).
53
- 4. Decide on Pagination strategy: Server-side (URL params) or Client-side (in-memory).
54
-
55
- ---
56
-
57
- ### Phase 2 — Table Component Setup
58
-
59
- 1. Check for table libraries (e.g., `@tanstack/react-table`, MUI DataGrid, AntD Table).
60
- 2. Define column definitions (headers, accessor keys, cell formatters).
61
- 3. Set up the table UI wrapper.
62
-
63
- ---
64
-
65
- ### Phase 3 — Data Integration
66
-
67
- Connect to the state/API layer (e.g., React Query).
68
- - `useQuery` for fetching the list. Pass pagination/sorting state.
69
- - Handle `isLoading` → show skeleton or spinner.
70
- - Handle empty data → show empty state component.
71
-
72
- ---
73
-
74
- ### Phase 4 — CRUD Actions
75
-
76
- Implement actions (usually in an "Actions" column or toolbar):
77
- - **Create:** Button opening a Modal (delegate to `form-builder`) or routing to `/new`.
78
- - **Edit:** Button opening an Edit Modal or routing to `/edit/:id`.
79
- - **Delete:** Button opening a confirmation dialog, calling delete mutation on confirm.
80
-
81
- ---
82
-
83
- ## Decision Tree
84
-
85
- ```
86
- Is the dataset large (requires backend pagination)?
87
- ├── Yes → Implement Server-side pagination (sync state with URL search params)
88
- └── No → Implement Client-side pagination (fetch all once, slice in UI)
89
-
90
- Does the project use TanStack Table (React Table)?
91
- ├── Yes → Use `useReactTable` to manage table state and column definitions
92
- └── No → Use the project's specific UI library table component
93
- ```
94
-
95
- ---
96
-
97
- ## Output Format
98
-
99
- ```
100
- 📊 Table & CRUD Generated
101
- ─────────────────────────────────────────────────
102
- Entity: [Entity Name]
103
- Features: [Pagination (Server), Sorting, CRUD actions]
104
-
105
- Components Created:
106
- ✅ [Entity]Table.tsx
107
- ✅ [Entity]Columns.tsx
108
- ✅ DeleteConfirmModal.tsx
109
-
110
- Integration:
111
- - Fetching: Linked to `use[Entity]List` hook
112
- - Mutations: Linked to Create/Update/Delete hooks
113
-
114
- 🔗 Next Steps:
115
- If Create/Edit forms are needed, delegate to `form-builder`.
116
- ```
117
-
118
- ---
119
-
120
- ## Validation Checklist
121
-
122
- - [ ] Columns are defined correctly
123
- - [ ] Loading and empty states are handled
124
- - [ ] Pagination/sorting state is managed properly
125
- - [ ] CRUD actions trigger the correct mutations or navigations
126
- - [ ] Delete actions have a confirmation step
127
-
@@ -1,152 +0,0 @@
1
- ---
2
- name: qk-ui-builder
3
- description: >-
4
- Xây dựng các màn hình và layout phức tạp từ yêu cầu, tái sử dụng component và đảm bảo responsive.
5
- version: 1.0.0
6
- category: frontend
7
- tags: [ui, layout, screens, pages, styling, responsive]
8
- platforms: [antigravity, claude-code, kilo-code, cursor, windsurf]
9
- ---
10
-
11
- # UI Builder
12
-
13
- > **Language rule:**
14
- > Use English for: code, identifiers, file names, architecture terms, technical decisions.
15
- > Use the user's language for: explanations, questions, summaries, and feedback.
16
- > The user may write in any language — detect and match it automatically.
17
-
18
- ---
19
-
20
- ## Trigger
21
-
22
- Activate this skill when:
23
- - User wants to create a new page, screen, or view
24
- - User provides a mockup, wireframe, or visual description
25
- - User asks to "build a layout", "create a dashboard", "make the profile page"
26
- - Refactoring a large, messy view into a structured layout
27
-
28
- ---
29
-
30
- ## Scope
31
-
32
- - ✅ Translate requirements into a component hierarchy
33
- - ✅ Build layouts using Grid, Flexbox, and project styling conventions
34
- - ✅ Ensure responsive design (mobile-first or desktop-first based on project)
35
- - ✅ Integrate existing shared components (Buttons, Cards, Inputs) via `design-system` rules
36
- - ✅ Define placeholders for data and logic (to be filled by `api-integration` or `state-management`)
37
-
38
- ---
39
-
40
- ## Non-goals
41
-
42
- - ❌ Do NOT build backend APIs
43
- - ❌ Do NOT implement complex global state (delegate to `state-management`)
44
- - ❌ Do NOT invent new core UI components if they already exist in the design system
45
- - ❌ Do NOT write raw HTML (`<button>`) if a shared component (`<Button>`) exists
46
-
47
- ---
48
-
49
- ## Workflow
50
-
51
- ### Phase 1 — Requirement Analysis
52
-
53
- 1. Understand the goal: What screen are we building?
54
- 2. Identify major sections: Header, Sidebar, Main Content, Footer, Modals.
55
- 3. Identify data requirements: What data will populate this view? (Use mock data initially).
56
-
57
- ---
58
-
59
- ### Phase 2 — Component Hierarchy Planning
60
-
61
- Break the screen down into smaller components.
62
- **Rule of thumb:** If a section has complex logic or is reusable, it should be a separate component.
63
-
64
- *Example:*
65
- ```text
66
- UserProfilePage
67
- ├── ProfileHeader
68
- │ ├── Avatar
69
- │ └── UserStats
70
- ├── UserSettingsForm (delegate to form-builder)
71
- └── UserActivityList
72
- ```
73
-
74
- ---
75
-
76
- ### Phase 3 — Design System Integration
77
-
78
- *(Relies on output from `design-system` skill)*
79
- Identify which existing components will be used for each part of the hierarchy.
80
-
81
- - Buttons → `<Button>`
82
- - Layouts → `<Container>`, `<Grid>`
83
- - Typography → `<Typography variant="h2">` or Tailwind text classes
84
-
85
- ---
86
-
87
- ### Phase 4 — Implementation
88
-
89
- Write the code.
90
- 1. Build the layout skeleton first (Flexbox/Grid).
91
- 2. Add static/mock data to visualize the structure.
92
- 3. Apply styling for layout, spacing, and typography.
93
- 4. Ensure responsive behavior (e.g., stack columns on mobile).
94
-
95
- ---
96
-
97
- ### Phase 5 — Validation
98
-
99
- - [ ] Does it match the requirements?
100
- - [ ] Is it responsive?
101
- - [ ] Does it strictly use the design system?
102
- - [ ] Is the code clean and well-structured (not one giant file)?
103
-
104
- ---
105
-
106
- ## Decision Tree
107
-
108
- ```
109
- Is a section of the UI highly complex or forms a distinct logical unit?
110
- ├── Yes → Extract it into its own component file (e.g., `ProfileHeader.tsx`)
111
- └── No → Keep it inline in the main layout file for now
112
-
113
- Does a required base component (e.g., DatePicker) exist in the project?
114
- ├── Yes → Import and use it
115
- └── No → Use a standard HTML fallback or instruct `component-generator` to build it later
116
-
117
- Is the UI data-heavy (like a complex form or table)?
118
- ├── Yes → Delegate specific sections to `form-builder` or `table-crud-generator`
119
- └── No → Build it fully within `ui-builder`
120
- ```
121
-
122
- ---
123
-
124
- ## Output Format
125
-
126
- ```
127
- 🎨 UI Builder Summary
128
- ─────────────────────────────────────────────────
129
- Screen: [Name of the screen/view built]
130
-
131
- Component Hierarchy:
132
- [Tree showing parent and child components]
133
-
134
- 📁 Files Created/Modified:
135
- ✅ [path/to/Page.tsx]
136
- ✅ [path/to/SubComponent.tsx]
137
-
138
- 🛠️ Implementation Details:
139
- - Responsive: [Yes - describe breakpoints used]
140
- - Mock Data: [Added placeholders for API integration]
141
-
142
- 🔗 Next Steps:
143
- → Need to wire up API? Route to `api-integration`.
144
- → Need complex state? Route to `state-management`.
145
- ```
146
-
147
- ---
148
-
149
- ## Examples
150
-
151
- See `examples/` folder.
152
-
@@ -1,238 +0,0 @@
1
- ---
2
- name: qk-[skill-name]
3
- category: [core|frontend|backend|fullstack|security|qa|maintenance|devops|utilities]
4
- version: 7.5.0
5
- description: "[One sentence — what it does]"
6
- platforms: [antigravity, claude-code, cursor, windsurf, kilo-code]
7
- execution_mode: deterministic
8
-
9
- # Orchestrator routing metadata
10
- cost: [low|medium|high]
11
- latency: [fast|medium|slow]
12
- risk: [low|medium|high]
13
- side_effects: [edit_files|run_commands|read_only|none]
14
- produces: [report|code|schema|plan|tokens]
15
- consumes: [context-graph|design-md|stack-trace|json-payload|none]
16
-
17
- token_budget:
18
- max_files_read: 3
19
- max_lines_per_read: 150
20
- max_shell_commands: 2
21
- stop_early: true
22
-
23
- exit_codes: [SUCCESS, BLOCKED, FAILED, PARTIAL]
24
- ---
25
-
26
- # qk-[skill-name]
27
-
28
- > **Language rule:** Code, identifiers, file names → English. Explanations, summaries → Vietnamese (match user language).
29
-
30
- ---
31
-
32
- ## Preconditions
33
- Before executing, verify ALL exist. STOP with `BLOCKED` if any is missing.
34
-
35
- - [ ] [Precondition 1 — e.g., "Repository is accessible"]
36
- - [ ] [Precondition 2 — e.g., "DESIGN.md exists in project root"]
37
-
38
- ```
39
- On missing precondition:
40
- EXIT: BLOCKED
41
- Message: "[Precondition X] not found. Please provide: [what]"
42
- ```
43
-
44
- ---
45
-
46
- ## Scope
47
- - ✅ [What this skill explicitly DOES]
48
- - ✅ [What this skill explicitly DOES]
49
-
50
- ## Non-Goals
51
- - ❌ [Anti-pattern 1] — because [why]
52
- - ❌ [Anti-pattern 2]
53
- - ❌ Never create helper scripts (Node.js/Python/shell) to apply patches — edit files directly
54
- - ❌ Never read entire files > 150 lines — use targeted reads (StartLine:EndLine)
55
-
56
- ---
57
-
58
- ## Priority Order
59
- When token budget is insufficient, execute checks in this order:
60
-
61
- | Priority | Check | Skip Threshold |
62
- |----------|-------|----------------|
63
- | P1 | [Most critical — never skip] | Never |
64
- | P2 | [High priority] | Budget < 30% |
65
- | P3 | [Medium priority] | Budget < 50% |
66
- | P4 | [Low priority — always optional] | Budget < 70% |
67
-
68
- ---
69
-
70
- ## Workflow
71
-
72
- ### Phase 1 — [Name: e.g., Triage]
73
-
74
- **Steps:**
75
- 1. [Concrete step — specify tool: `grep_search` / `view_file[L1:L50]` / `run_command`]
76
- 2. [Next step]
77
-
78
- **Exit When (stop this phase, move to next):**
79
- - [Condition A — e.g., "Root cause identified"]
80
- - [Condition B — e.g., "`max_files_read` reached"]
81
-
82
- **On Blocked:**
83
- ```
84
- EXIT: BLOCKED
85
- Missing: [what specific info is needed]
86
- Questions:
87
- 1. [Specific question to user]
88
- ```
89
-
90
- ---
91
-
92
- ### Phase 2 — [Name: e.g., Analyze]
93
-
94
- **Steps:**
95
- 1. [Step]
96
-
97
- **Decision:**
98
- ```
99
- IF [condition met]
100
- → proceed to Phase 3
101
- ELSE IF [edge case]
102
- → EXIT: PARTIAL — note: [what was missed]
103
- ELSE
104
- → ESCALATE
105
- ```
106
-
107
- ---
108
-
109
- ### Phase 3 — [Name: e.g., Execute]
110
-
111
- **Steps:**
112
- 1. Apply fix using `replace_file_content` or `multi_replace_file_content` — NEVER via scripts
113
- 2. [Verification step]
114
-
115
- **Exit When:**
116
- - Fix applied and verified → EXIT: SUCCESS
117
- - Fix applied but unverifiable → EXIT: PARTIAL
118
-
119
- ---
120
-
121
- ## Confidence Model
122
-
123
- | Level | Condition | Action |
124
- |-------|-----------|--------|
125
- | HIGH | Direct evidence (file:line, stack trace, exact match) | Proceed |
126
- | MEDIUM | Inferred from patterns or similar code | Note assumption, proceed carefully |
127
- | LOW | Assumption without evidence | STOP — ask user before proceeding |
128
-
129
- ---
130
-
131
- ## Severity
132
-
133
- | Level | Definition | Example |
134
- |-------|-----------|---------|
135
- | CRITICAL | Data loss / security breach / app down | Hardcoded secret, SQL injection |
136
- | HIGH | Core feature broken, blocking users | Null crash, broken API |
137
- | MEDIUM | Degraded UX, workaround exists | Cyclomatic > 10, missing loading state |
138
- | LOW | Style/cosmetic, non-blocking | Missing comment, minor inconsistency |
139
-
140
- ---
141
-
142
- ## Evidence Format
143
-
144
- Every finding MUST use this format:
145
- ```
146
- [SEVERITY] path/to/file.ts:LINE
147
- Reason: [why this is a violation or finding]
148
- Confidence: [HIGH|MEDIUM|LOW]
149
- Fix: [one-line suggestion]
150
- ```
151
-
152
- **Example:**
153
- ```
154
- [HIGH] src/auth.service.ts:132
155
- Reason: Function length 64 lines exceeds threshold of 30
156
- Confidence: HIGH
157
- Fix: Extract token validation to `validateToken()`
158
- ```
159
-
160
- ---
161
-
162
- ## Retry Policy
163
-
164
- ```
165
- Action fails
166
- └─ Attempt auto-fix (if fix is deterministic)
167
- └─ Re-run verification
168
- ├─ PASS → EXIT: SUCCESS
169
- └─ FAIL (2nd time) → EXIT: PARTIAL + report
170
- └─ Do NOT retry more than 2 times
171
- └─ 3rd failure → ESCALATE to user
172
- ```
173
-
174
- ---
175
-
176
- ## Escalation Rules
177
-
178
- When blocked, **never just "STOP"** — return structured response:
179
-
180
- ```
181
- BLOCKED: [Reason — specific, not vague]
182
- Missing:
183
- - [Specific artifact or information needed]
184
- Questions:
185
- 1. [Specific question]
186
- 2. [Specific question]
187
- Recommended Assumptions (if you want me to proceed anyway):
188
- - [Safe assumption 1]
189
- - [Safe assumption 2]
190
- ```
191
-
192
- ---
193
-
194
- ## Handoff Contract
195
-
196
- ### Consumes (Input from upstream)
197
- ```json
198
- {
199
- "from": "[skill-name or 'user']",
200
- "required_fields": ["field1", "field2"],
201
- "optional_fields": ["field3"]
202
- }
203
- ```
204
-
205
- ### Produces (Output for downstream)
206
- ```json
207
- {
208
- "to": "[skill-name or 'user']",
209
- "output_fields": ["changed_files", "summary", "confidence", "exit_code"]
210
- }
211
- ```
212
-
213
- ---
214
-
215
- ## Output Format
216
-
217
- ```
218
- [SKILL_NAME] Result
219
- ─────────────────────────────────────────────────
220
- Status: [SUCCESS | PARTIAL | BLOCKED | FAILED]
221
- Confidence: [HIGH | MEDIUM | LOW]
222
-
223
- [Section specific to this skill]
224
-
225
- Exit Code: [SUCCESS | PARTIAL | BLOCKED | FAILED]
226
- ```
227
-
228
- ---
229
-
230
- ## Exit Codes
231
-
232
- | Code | Meaning | Orchestrator Action |
233
- |------|---------|---------------------|
234
- | SUCCESS | All checks passed, task complete | Continue pipeline |
235
- | PARTIAL | Task done with degraded quality or skipped P3/P4 checks | Notify user, continue |
236
- | BLOCKED | Missing precondition or ambiguous requirement | STOP, ask user |
237
- | FAILED | Task failed after 2 retry attempts | STOP, report error |
238
-
@@ -1,179 +0,0 @@
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
-