code-ai-installer 1.2.0 → 1.3.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 (925) hide show
  1. package/.agents/a11y_baseline/SKILL.md +260 -41
  2. package/.agents/a11y_baseline/agents/claude.json +2 -2
  3. package/.agents/a11y_baseline/agents/copilot.json +2 -2
  4. package/.agents/a11y_baseline/agents/gemini.json +2 -2
  5. package/.agents/a11y_baseline/agents/openai.yaml +1 -1
  6. package/.agents/a11y_baseline/agents/qwen.json +2 -2
  7. package/.agents/a11y_baseline/agents/skill.yaml +2 -2
  8. package/.agents/adr_log/SKILL.md +369 -69
  9. package/.agents/adr_log/agents/claude.json +2 -2
  10. package/.agents/adr_log/agents/copilot.json +2 -2
  11. package/.agents/adr_log/agents/gemini.json +2 -2
  12. package/.agents/adr_log/agents/openai.yaml +1 -1
  13. package/.agents/adr_log/agents/qwen.json +2 -2
  14. package/.agents/adr_log/agents/skill.yaml +2 -2
  15. package/.agents/api_contract_compliance_review/SKILL.md +224 -18
  16. package/.agents/api_contract_compliance_review/agents/claude.json +2 -2
  17. package/.agents/api_contract_compliance_review/agents/copilot.json +2 -2
  18. package/.agents/api_contract_compliance_review/agents/gemini.json +2 -2
  19. package/.agents/api_contract_compliance_review/agents/openai.yaml +1 -1
  20. package/.agents/api_contract_compliance_review/agents/qwen.json +2 -2
  21. package/.agents/api_contract_compliance_review/agents/skill.yaml +2 -2
  22. package/.agents/api_contracts/SKILL.md +329 -42
  23. package/.agents/api_contracts/agents/claude.json +2 -2
  24. package/.agents/api_contracts/agents/copilot.json +2 -2
  25. package/.agents/api_contracts/agents/gemini.json +2 -2
  26. package/.agents/api_contracts/agents/openai.yaml +1 -1
  27. package/.agents/api_contracts/agents/qwen.json +2 -2
  28. package/.agents/api_contracts/agents/skill.yaml +2 -2
  29. package/.agents/architecture_compliance_review/SKILL.md +213 -17
  30. package/.agents/architecture_compliance_review/agents/claude.json +2 -2
  31. package/.agents/architecture_compliance_review/agents/copilot.json +2 -2
  32. package/.agents/architecture_compliance_review/agents/gemini.json +2 -2
  33. package/.agents/architecture_compliance_review/agents/openai.yaml +1 -1
  34. package/.agents/architecture_compliance_review/agents/qwen.json +2 -2
  35. package/.agents/architecture_compliance_review/agents/skill.yaml +2 -2
  36. package/.agents/architecture_doc/SKILL.md +384 -92
  37. package/.agents/architecture_doc/agents/claude.json +2 -2
  38. package/.agents/architecture_doc/agents/copilot.json +2 -2
  39. package/.agents/architecture_doc/agents/gemini.json +2 -2
  40. package/.agents/architecture_doc/agents/openai.yaml +1 -1
  41. package/.agents/architecture_doc/agents/qwen.json +2 -2
  42. package/.agents/architecture_doc/agents/skill.yaml +2 -2
  43. package/.agents/board/SKILL.md +232 -43
  44. package/.agents/board/agents/claude.json +2 -2
  45. package/.agents/board/agents/copilot.json +2 -2
  46. package/.agents/board/agents/gemini.json +2 -2
  47. package/.agents/board/agents/openai.yaml +1 -1
  48. package/.agents/board/agents/qwen.json +2 -2
  49. package/.agents/board/agents/skill.yaml +2 -2
  50. package/.agents/cloud_infrastructure_security/SKILL.md +277 -68
  51. package/.agents/cloud_infrastructure_security/agents/claude.json +2 -2
  52. package/.agents/cloud_infrastructure_security/agents/copilot.json +2 -2
  53. package/.agents/cloud_infrastructure_security/agents/gemini.json +2 -2
  54. package/.agents/cloud_infrastructure_security/agents/openai.yaml +1 -1
  55. package/.agents/cloud_infrastructure_security/agents/qwen.json +2 -2
  56. package/.agents/cloud_infrastructure_security/agents/skill.yaml +2 -2
  57. package/.agents/code_review_checklist/SKILL.md +200 -47
  58. package/.agents/code_review_checklist/agents/claude.json +2 -2
  59. package/.agents/code_review_checklist/agents/copilot.json +2 -2
  60. package/.agents/code_review_checklist/agents/gemini.json +2 -2
  61. package/.agents/code_review_checklist/agents/openai.yaml +1 -1
  62. package/.agents/code_review_checklist/agents/qwen.json +2 -2
  63. package/.agents/code_review_checklist/agents/skill.yaml +2 -2
  64. package/.agents/current_state_analysis/SKILL.md +225 -44
  65. package/.agents/current_state_analysis/agents/claude.json +2 -2
  66. package/.agents/current_state_analysis/agents/copilot.json +2 -2
  67. package/.agents/current_state_analysis/agents/gemini.json +2 -2
  68. package/.agents/current_state_analysis/agents/openai.yaml +1 -1
  69. package/.agents/current_state_analysis/agents/qwen.json +2 -2
  70. package/.agents/current_state_analysis/agents/skill.yaml +2 -2
  71. package/.agents/data_model/SKILL.md +285 -40
  72. package/.agents/data_model/agents/claude.json +2 -2
  73. package/.agents/data_model/agents/copilot.json +2 -2
  74. package/.agents/data_model/agents/gemini.json +2 -2
  75. package/.agents/data_model/agents/openai.yaml +1 -1
  76. package/.agents/data_model/agents/qwen.json +2 -2
  77. package/.agents/data_model/agents/skill.yaml +2 -2
  78. package/.agents/dependency_supply_chain_review/SKILL.md +300 -20
  79. package/.agents/dependency_supply_chain_review/agents/claude.json +2 -2
  80. package/.agents/dependency_supply_chain_review/agents/copilot.json +2 -2
  81. package/.agents/dependency_supply_chain_review/agents/gemini.json +2 -2
  82. package/.agents/dependency_supply_chain_review/agents/openai.yaml +1 -1
  83. package/.agents/dependency_supply_chain_review/agents/qwen.json +2 -2
  84. package/.agents/dependency_supply_chain_review/agents/skill.yaml +2 -2
  85. package/.agents/deployment_ci_plan/SKILL.md +410 -51
  86. package/.agents/deployment_ci_plan/agents/claude.json +3 -2
  87. package/.agents/deployment_ci_plan/agents/copilot.json +3 -2
  88. package/.agents/deployment_ci_plan/agents/gemini.json +3 -2
  89. package/.agents/deployment_ci_plan/agents/openai.yaml +1 -1
  90. package/.agents/deployment_ci_plan/agents/qwen.json +3 -2
  91. package/.agents/deployment_ci_plan/agents/skill.yaml +2 -1
  92. package/.agents/design_intake/SKILL.md +225 -71
  93. package/.agents/design_intake/agents/claude.json +2 -2
  94. package/.agents/design_intake/agents/copilot.json +2 -2
  95. package/.agents/design_intake/agents/gemini.json +2 -2
  96. package/.agents/design_intake/agents/openai.yaml +1 -1
  97. package/.agents/design_intake/agents/qwen.json +2 -2
  98. package/.agents/design_intake/agents/skill.yaml +2 -2
  99. package/.agents/design_parity_review/SKILL.md +216 -73
  100. package/.agents/design_systems/SKILL.md +432 -15
  101. package/.agents/design_systems/agents/claude.json +2 -2
  102. package/.agents/design_systems/agents/copilot.json +2 -2
  103. package/.agents/design_systems/agents/gemini.json +2 -2
  104. package/.agents/design_systems/agents/openai.yaml +1 -1
  105. package/.agents/design_systems/agents/qwen.json +2 -2
  106. package/.agents/design_systems/agents/skill.yaml +2 -2
  107. package/.agents/dev_reference_snippets/SKILL.md +305 -117
  108. package/.agents/dev_reference_snippets/agents/claude.json +2 -2
  109. package/.agents/dev_reference_snippets/agents/copilot.json +2 -2
  110. package/.agents/dev_reference_snippets/agents/gemini.json +2 -2
  111. package/.agents/dev_reference_snippets/agents/openai.yaml +1 -1
  112. package/.agents/dev_reference_snippets/agents/qwen.json +2 -2
  113. package/.agents/dev_reference_snippets/agents/skill.yaml +2 -2
  114. package/.agents/docker_kubernetes_architecture/SKILL.md +480 -145
  115. package/.agents/docker_kubernetes_architecture/agents/claude.json +2 -2
  116. package/.agents/docker_kubernetes_architecture/agents/copilot.json +2 -2
  117. package/.agents/docker_kubernetes_architecture/agents/gemini.json +2 -2
  118. package/.agents/docker_kubernetes_architecture/agents/openai.yaml +1 -1
  119. package/.agents/docker_kubernetes_architecture/agents/qwen.json +2 -2
  120. package/.agents/docker_kubernetes_architecture/agents/skill.yaml +2 -2
  121. package/.agents/es2025_beast_practices/SKILL.md +433 -8
  122. package/.agents/es2025_beast_practices/agents/claude.json +2 -2
  123. package/.agents/es2025_beast_practices/agents/copilot.json +2 -2
  124. package/.agents/es2025_beast_practices/agents/gemini.json +2 -2
  125. package/.agents/es2025_beast_practices/agents/openai.yaml +1 -1
  126. package/.agents/es2025_beast_practices/agents/qwen.json +2 -2
  127. package/.agents/es2025_beast_practices/agents/skill.yaml +2 -2
  128. package/.agents/gates/SKILL.md +134 -35
  129. package/.agents/gates/agents/claude.json +2 -2
  130. package/.agents/gates/agents/copilot.json +2 -2
  131. package/.agents/gates/agents/gemini.json +2 -2
  132. package/.agents/gates/agents/openai.yaml +1 -1
  133. package/.agents/gates/agents/qwen.json +2 -2
  134. package/.agents/gates/agents/skill.yaml +2 -2
  135. package/.agents/go_beast_practices/SKILL.md +557 -23
  136. package/.agents/go_beast_practices/agents/claude.json +2 -2
  137. package/.agents/go_beast_practices/agents/copilot.json +2 -2
  138. package/.agents/go_beast_practices/agents/gemini.json +2 -2
  139. package/.agents/go_beast_practices/agents/openai.yaml +1 -1
  140. package/.agents/go_beast_practices/agents/qwen.json +2 -2
  141. package/.agents/go_beast_practices/agents/skill.yaml +2 -2
  142. package/.agents/google_stitch_skill/SKILL.md +1 -1
  143. package/.agents/google_stitch_skill/agents/claude.json +5 -6
  144. package/.agents/google_stitch_skill/agents/copilot.json +5 -6
  145. package/.agents/google_stitch_skill/agents/gemini.json +5 -6
  146. package/.agents/google_stitch_skill/agents/openai.yaml +1 -1
  147. package/.agents/google_stitch_skill/agents/qwen.json +5 -6
  148. package/.agents/google_stitch_skill/agents/skill.yaml +4 -5
  149. package/.agents/handoff/SKILL.md +212 -52
  150. package/.agents/handoff/agents/claude.json +2 -2
  151. package/.agents/handoff/agents/copilot.json +2 -2
  152. package/.agents/handoff/agents/gemini.json +2 -2
  153. package/.agents/handoff/agents/openai.yaml +1 -1
  154. package/.agents/handoff/agents/qwen.json +2 -2
  155. package/.agents/handoff/agents/skill.yaml +2 -2
  156. package/.agents/k8s_manifests_conventions/SKILL.md +548 -176
  157. package/.agents/k8s_manifests_conventions/agents/claude.json +2 -2
  158. package/.agents/k8s_manifests_conventions/agents/copilot.json +2 -2
  159. package/.agents/k8s_manifests_conventions/agents/gemini.json +2 -2
  160. package/.agents/k8s_manifests_conventions/agents/openai.yaml +1 -1
  161. package/.agents/k8s_manifests_conventions/agents/qwen.json +2 -2
  162. package/.agents/k8s_manifests_conventions/agents/skill.yaml +2 -2
  163. package/.agents/memory/SKILL.md +219 -29
  164. package/.agents/memory/agents/claude.json +2 -2
  165. package/.agents/memory/agents/copilot.json +2 -2
  166. package/.agents/memory/agents/gemini.json +2 -2
  167. package/.agents/memory/agents/openai.yaml +1 -1
  168. package/.agents/memory/agents/qwen.json +2 -2
  169. package/.agents/memory/agents/skill.yaml +2 -2
  170. package/.agents/mongodb_mongoose_best_practices/SKILL.md +724 -236
  171. package/.agents/mongodb_mongoose_best_practices/agents/claude.json +2 -2
  172. package/.agents/mongodb_mongoose_best_practices/agents/copilot.json +2 -2
  173. package/.agents/mongodb_mongoose_best_practices/agents/gemini.json +2 -2
  174. package/.agents/mongodb_mongoose_best_practices/agents/openai.yaml +1 -1
  175. package/.agents/mongodb_mongoose_best_practices/agents/qwen.json +2 -2
  176. package/.agents/mongodb_mongoose_best_practices/agents/skill.yaml +2 -2
  177. package/.agents/n8n_pinecone_qdrant_supabase/SKILL.md +671 -59
  178. package/.agents/n8n_pinecone_qdrant_supabase/agents/claude.json +2 -2
  179. package/.agents/n8n_pinecone_qdrant_supabase/agents/copilot.json +2 -2
  180. package/.agents/n8n_pinecone_qdrant_supabase/agents/gemini.json +2 -2
  181. package/.agents/n8n_pinecone_qdrant_supabase/agents/openai.yaml +1 -1
  182. package/.agents/n8n_pinecone_qdrant_supabase/agents/qwen.json +2 -2
  183. package/.agents/n8n_pinecone_qdrant_supabase/agents/skill.yaml +2 -2
  184. package/.agents/node_express_beast_practices/SKILL.md +729 -30
  185. package/.agents/node_express_beast_practices/agents/claude.json +1 -1
  186. package/.agents/node_express_beast_practices/agents/copilot.json +1 -1
  187. package/.agents/node_express_beast_practices/agents/gemini.json +1 -1
  188. package/.agents/node_express_beast_practices/agents/openai.yaml +1 -1
  189. package/.agents/node_express_beast_practices/agents/qwen.json +1 -1
  190. package/.agents/node_express_beast_practices/agents/skill.yaml +1 -1
  191. package/.agents/observability_logging/SKILL.md +499 -16
  192. package/.agents/observability_logging/agents/claude.json +2 -2
  193. package/.agents/observability_logging/agents/copilot.json +2 -2
  194. package/.agents/observability_logging/agents/gemini.json +2 -2
  195. package/.agents/observability_logging/agents/openai.yaml +1 -1
  196. package/.agents/observability_logging/agents/qwen.json +2 -2
  197. package/.agents/observability_logging/agents/skill.yaml +2 -2
  198. package/.agents/observability_plan/SKILL.md +279 -38
  199. package/.agents/observability_plan/agents/claude.json +3 -2
  200. package/.agents/observability_plan/agents/copilot.json +3 -2
  201. package/.agents/observability_plan/agents/gemini.json +3 -2
  202. package/.agents/observability_plan/agents/openai.yaml +1 -1
  203. package/.agents/observability_plan/agents/qwen.json +3 -2
  204. package/.agents/observability_plan/agents/skill.yaml +2 -1
  205. package/.agents/observability_review/SKILL.md +254 -20
  206. package/.agents/observability_review/agents/claude.json +2 -2
  207. package/.agents/observability_review/agents/copilot.json +2 -2
  208. package/.agents/observability_review/agents/gemini.json +2 -2
  209. package/.agents/observability_review/agents/openai.yaml +1 -1
  210. package/.agents/observability_review/agents/qwen.json +2 -2
  211. package/.agents/observability_review/agents/skill.yaml +2 -2
  212. package/.agents/performance_review_baseline/SKILL.md +239 -17
  213. package/.agents/performance_review_baseline/agents/claude.json +2 -2
  214. package/.agents/performance_review_baseline/agents/copilot.json +2 -2
  215. package/.agents/performance_review_baseline/agents/gemini.json +2 -2
  216. package/.agents/performance_review_baseline/agents/openai.yaml +1 -1
  217. package/.agents/performance_review_baseline/agents/qwen.json +2 -2
  218. package/.agents/performance_review_baseline/agents/skill.yaml +2 -2
  219. package/.agents/pm_backlog/SKILL.md +250 -32
  220. package/.agents/pm_backlog/agents/claude.json +2 -2
  221. package/.agents/pm_backlog/agents/copilot.json +2 -2
  222. package/.agents/pm_backlog/agents/gemini.json +2 -2
  223. package/.agents/pm_backlog/agents/openai.yaml +1 -1
  224. package/.agents/pm_backlog/agents/qwen.json +2 -2
  225. package/.agents/pm_backlog/agents/skill.yaml +2 -2
  226. package/.agents/pm_interview/SKILL.md +197 -56
  227. package/.agents/pm_interview/agents/claude.json +2 -2
  228. package/.agents/pm_interview/agents/copilot.json +2 -2
  229. package/.agents/pm_interview/agents/gemini.json +2 -2
  230. package/.agents/pm_interview/agents/openai.yaml +1 -1
  231. package/.agents/pm_interview/agents/qwen.json +2 -2
  232. package/.agents/pm_interview/agents/skill.yaml +2 -2
  233. package/.agents/pm_prd/SKILL.md +215 -56
  234. package/.agents/pm_prd/agents/claude.json +2 -2
  235. package/.agents/pm_prd/agents/copilot.json +2 -2
  236. package/.agents/pm_prd/agents/gemini.json +2 -2
  237. package/.agents/pm_prd/agents/openai.yaml +1 -1
  238. package/.agents/pm_prd/agents/qwen.json +2 -2
  239. package/.agents/pm_prd/agents/skill.yaml +2 -2
  240. package/.agents/qa_api_contract_tests/SKILL.md +207 -16
  241. package/.agents/qa_api_contract_tests/agents/claude.json +2 -2
  242. package/.agents/qa_api_contract_tests/agents/copilot.json +2 -2
  243. package/.agents/qa_api_contract_tests/agents/gemini.json +2 -2
  244. package/.agents/qa_api_contract_tests/agents/openai.yaml +1 -1
  245. package/.agents/qa_api_contract_tests/agents/qwen.json +2 -2
  246. package/.agents/qa_api_contract_tests/agents/skill.yaml +2 -2
  247. package/.agents/qa_manual_run/SKILL.md +209 -16
  248. package/.agents/qa_manual_run/agents/claude.json +2 -2
  249. package/.agents/qa_manual_run/agents/copilot.json +2 -2
  250. package/.agents/qa_manual_run/agents/gemini.json +2 -2
  251. package/.agents/qa_manual_run/agents/openai.yaml +1 -1
  252. package/.agents/qa_manual_run/agents/qwen.json +2 -2
  253. package/.agents/qa_manual_run/agents/skill.yaml +2 -2
  254. package/.agents/qa_regression_baseline/SKILL.md +217 -0
  255. package/.agents/qa_regression_baseline/agents/claude.json +19 -0
  256. package/.agents/qa_regression_baseline/agents/copilot.json +19 -0
  257. package/.agents/qa_regression_baseline/agents/gemini.json +19 -0
  258. package/.agents/qa_regression_baseline/agents/openai.yaml +8 -0
  259. package/.agents/qa_regression_baseline/agents/qwen.json +19 -0
  260. package/.agents/qa_regression_baseline/agents/skill.yaml +23 -0
  261. package/.agents/qa_security_smoke_tests/SKILL.md +188 -14
  262. package/.agents/qa_security_smoke_tests/agents/claude.json +2 -2
  263. package/.agents/qa_security_smoke_tests/agents/copilot.json +2 -2
  264. package/.agents/qa_security_smoke_tests/agents/gemini.json +2 -2
  265. package/.agents/qa_security_smoke_tests/agents/openai.yaml +1 -1
  266. package/.agents/qa_security_smoke_tests/agents/qwen.json +2 -2
  267. package/.agents/qa_security_smoke_tests/agents/skill.yaml +2 -2
  268. package/.agents/qa_test_plan/SKILL.md +203 -20
  269. package/.agents/qa_test_plan/agents/claude.json +2 -2
  270. package/.agents/qa_test_plan/agents/copilot.json +2 -2
  271. package/.agents/qa_test_plan/agents/gemini.json +2 -2
  272. package/.agents/qa_test_plan/agents/openai.yaml +1 -1
  273. package/.agents/qa_test_plan/agents/qwen.json +2 -2
  274. package/.agents/qa_test_plan/agents/skill.yaml +2 -2
  275. package/.agents/qa_ui_a11y_smoke/SKILL.md +230 -12
  276. package/.agents/qa_ui_a11y_smoke/agents/claude.json +2 -2
  277. package/.agents/qa_ui_a11y_smoke/agents/copilot.json +2 -2
  278. package/.agents/qa_ui_a11y_smoke/agents/gemini.json +2 -2
  279. package/.agents/qa_ui_a11y_smoke/agents/openai.yaml +1 -1
  280. package/.agents/qa_ui_a11y_smoke/agents/qwen.json +2 -2
  281. package/.agents/qa_ui_a11y_smoke/agents/skill.yaml +2 -2
  282. package/.agents/react_15_3_wix_iframe/SKILL.md +411 -12
  283. package/.agents/react_15_3_wix_iframe/agents/claude.json +2 -2
  284. package/.agents/react_15_3_wix_iframe/agents/copilot.json +2 -2
  285. package/.agents/react_15_3_wix_iframe/agents/gemini.json +2 -2
  286. package/.agents/react_15_3_wix_iframe/agents/openai.yaml +1 -1
  287. package/.agents/react_15_3_wix_iframe/agents/qwen.json +2 -2
  288. package/.agents/react_15_3_wix_iframe/agents/skill.yaml +2 -2
  289. package/.agents/react_beast_practices/SKILL.md +285 -18
  290. package/.agents/react_beast_practices/agents/claude.json +2 -2
  291. package/.agents/react_beast_practices/agents/copilot.json +2 -2
  292. package/.agents/react_beast_practices/agents/gemini.json +2 -2
  293. package/.agents/react_beast_practices/agents/openai.yaml +1 -1
  294. package/.agents/react_beast_practices/agents/qwen.json +2 -2
  295. package/.agents/react_beast_practices/agents/skill.yaml +2 -2
  296. package/.agents/release_gate/SKILL.md +213 -77
  297. package/.agents/release_gate/agents/claude.json +2 -2
  298. package/.agents/release_gate/agents/copilot.json +2 -2
  299. package/.agents/release_gate/agents/gemini.json +2 -2
  300. package/.agents/release_gate/agents/openai.yaml +1 -1
  301. package/.agents/release_gate/agents/qwen.json +2 -2
  302. package/.agents/release_gate/agents/skill.yaml +2 -2
  303. package/.agents/release_gate_checklist_template/SKILL.md +182 -68
  304. package/.agents/review_reference_snippets/SKILL.md +116 -0
  305. package/.agents/security_baseline_dev/SKILL.md +496 -16
  306. package/.agents/security_baseline_dev/agents/claude.json +2 -2
  307. package/.agents/security_baseline_dev/agents/copilot.json +2 -2
  308. package/.agents/security_baseline_dev/agents/gemini.json +2 -2
  309. package/.agents/security_baseline_dev/agents/openai.yaml +1 -1
  310. package/.agents/security_baseline_dev/agents/qwen.json +2 -2
  311. package/.agents/security_baseline_dev/agents/skill.yaml +2 -2
  312. package/.agents/security_review/SKILL.md +277 -55
  313. package/.agents/security_review_baseline/SKILL.md +119 -25
  314. package/.agents/security_review_baseline/agents/claude.json +2 -2
  315. package/.agents/security_review_baseline/agents/copilot.json +2 -2
  316. package/.agents/security_review_baseline/agents/gemini.json +2 -2
  317. package/.agents/security_review_baseline/agents/openai.yaml +1 -1
  318. package/.agents/security_review_baseline/agents/qwen.json +2 -2
  319. package/.agents/security_review_baseline/agents/skill.yaml +2 -2
  320. package/.agents/state_rtk_beast_practices/SKILL.md +735 -15
  321. package/.agents/state_rtk_beast_practices/agents/claude.json +2 -2
  322. package/.agents/state_rtk_beast_practices/agents/copilot.json +2 -2
  323. package/.agents/state_rtk_beast_practices/agents/gemini.json +2 -2
  324. package/.agents/state_rtk_beast_practices/agents/openai.yaml +1 -1
  325. package/.agents/state_rtk_beast_practices/agents/qwen.json +2 -2
  326. package/.agents/state_rtk_beast_practices/agents/skill.yaml +2 -2
  327. package/.agents/state_zustand_beast_practices/SKILL.md +808 -11
  328. package/.agents/state_zustand_beast_practices/agents/claude.json +2 -2
  329. package/.agents/state_zustand_beast_practices/agents/copilot.json +2 -2
  330. package/.agents/state_zustand_beast_practices/agents/gemini.json +2 -2
  331. package/.agents/state_zustand_beast_practices/agents/openai.yaml +1 -1
  332. package/.agents/state_zustand_beast_practices/agents/qwen.json +2 -2
  333. package/.agents/state_zustand_beast_practices/agents/skill.yaml +2 -2
  334. package/.agents/styling_css_stack/SKILL.md +558 -12
  335. package/.agents/styling_css_stack/agents/claude.json +2 -2
  336. package/.agents/styling_css_stack/agents/copilot.json +2 -2
  337. package/.agents/styling_css_stack/agents/gemini.json +2 -2
  338. package/.agents/styling_css_stack/agents/openai.yaml +1 -1
  339. package/.agents/styling_css_stack/agents/qwen.json +2 -2
  340. package/.agents/styling_css_stack/agents/skill.yaml +2 -2
  341. package/.agents/system_design_checklist/SKILL.md +207 -48
  342. package/.agents/system_design_checklist/agents/claude.json +3 -2
  343. package/.agents/system_design_checklist/agents/copilot.json +3 -2
  344. package/.agents/system_design_checklist/agents/gemini.json +3 -2
  345. package/.agents/system_design_checklist/agents/openai.yaml +1 -1
  346. package/.agents/system_design_checklist/agents/qwen.json +3 -2
  347. package/.agents/system_design_checklist/agents/skill.yaml +2 -1
  348. package/.agents/tailwind_beast_practices/SKILL.md +512 -0
  349. package/.agents/tailwind_beast_practices/agents/claude.json +18 -0
  350. package/.agents/tailwind_beast_practices/agents/copilot.json +18 -0
  351. package/.agents/tailwind_beast_practices/agents/gemini.json +18 -0
  352. package/.agents/tailwind_beast_practices/agents/openai.yaml +8 -0
  353. package/.agents/tailwind_beast_practices/agents/qwen.json +18 -0
  354. package/.agents/tailwind_beast_practices/agents/skill.yaml +22 -0
  355. package/.agents/tanstack_beast_practices/SKILL.md +465 -11
  356. package/.agents/tanstack_beast_practices/agents/claude.json +2 -2
  357. package/.agents/tanstack_beast_practices/agents/copilot.json +2 -2
  358. package/.agents/tanstack_beast_practices/agents/gemini.json +2 -2
  359. package/.agents/tanstack_beast_practices/agents/openai.yaml +1 -1
  360. package/.agents/tanstack_beast_practices/agents/qwen.json +2 -2
  361. package/.agents/tanstack_beast_practices/agents/skill.yaml +2 -2
  362. package/.agents/tdd_workflow/SKILL.md +441 -22
  363. package/.agents/tdd_workflow/agents/claude.json +2 -2
  364. package/.agents/tdd_workflow/agents/copilot.json +2 -2
  365. package/.agents/tdd_workflow/agents/gemini.json +2 -2
  366. package/.agents/tdd_workflow/agents/openai.yaml +1 -1
  367. package/.agents/tdd_workflow/agents/qwen.json +2 -2
  368. package/.agents/tdd_workflow/agents/skill.yaml +2 -2
  369. package/.agents/testing_strategy_js/SKILL.md +636 -30
  370. package/.agents/testing_strategy_js/agents/claude.json +2 -2
  371. package/.agents/testing_strategy_js/agents/copilot.json +2 -2
  372. package/.agents/testing_strategy_js/agents/gemini.json +2 -2
  373. package/.agents/testing_strategy_js/agents/openai.yaml +1 -1
  374. package/.agents/testing_strategy_js/agents/qwen.json +2 -2
  375. package/.agents/testing_strategy_js/agents/skill.yaml +2 -2
  376. package/.agents/tests_quality_review/SKILL.md +279 -18
  377. package/.agents/tests_quality_review/agents/claude.json +2 -2
  378. package/.agents/tests_quality_review/agents/copilot.json +2 -2
  379. package/.agents/tests_quality_review/agents/gemini.json +2 -2
  380. package/.agents/tests_quality_review/agents/openai.yaml +1 -1
  381. package/.agents/tests_quality_review/agents/qwen.json +2 -2
  382. package/.agents/tests_quality_review/agents/skill.yaml +2 -2
  383. package/.agents/threat_model_baseline/SKILL.md +210 -57
  384. package/.agents/threat_model_baseline/agents/claude.json +2 -2
  385. package/.agents/threat_model_baseline/agents/copilot.json +2 -2
  386. package/.agents/threat_model_baseline/agents/gemini.json +2 -2
  387. package/.agents/threat_model_baseline/agents/openai.yaml +1 -1
  388. package/.agents/threat_model_baseline/agents/qwen.json +2 -2
  389. package/.agents/threat_model_baseline/agents/skill.yaml +2 -2
  390. package/.agents/tooling_bun_biome/SKILL.md +539 -17
  391. package/.agents/tooling_bun_biome/agents/claude.json +2 -2
  392. package/.agents/tooling_bun_biome/agents/copilot.json +2 -2
  393. package/.agents/tooling_bun_biome/agents/gemini.json +2 -2
  394. package/.agents/tooling_bun_biome/agents/openai.yaml +1 -1
  395. package/.agents/tooling_bun_biome/agents/qwen.json +2 -2
  396. package/.agents/tooling_bun_biome/agents/skill.yaml +2 -2
  397. package/.agents/typescript_beast_practices/SKILL.md +427 -8
  398. package/.agents/typescript_beast_practices/agents/claude.json +2 -2
  399. package/.agents/typescript_beast_practices/agents/copilot.json +2 -2
  400. package/.agents/typescript_beast_practices/agents/gemini.json +2 -2
  401. package/.agents/typescript_beast_practices/agents/openai.yaml +1 -1
  402. package/.agents/typescript_beast_practices/agents/qwen.json +2 -2
  403. package/.agents/typescript_beast_practices/agents/skill.yaml +2 -2
  404. package/.agents/ui_a11y_smoke_review/SKILL.md +195 -15
  405. package/.agents/ui_a11y_smoke_review/agents/claude.json +2 -2
  406. package/.agents/ui_a11y_smoke_review/agents/copilot.json +2 -2
  407. package/.agents/ui_a11y_smoke_review/agents/gemini.json +2 -2
  408. package/.agents/ui_a11y_smoke_review/agents/openai.yaml +1 -1
  409. package/.agents/ui_a11y_smoke_review/agents/qwen.json +2 -2
  410. package/.agents/ui_a11y_smoke_review/agents/skill.yaml +2 -2
  411. package/.agents/ui_inventory/SKILL.md +277 -50
  412. package/.agents/ui_inventory/agents/claude.json +2 -2
  413. package/.agents/ui_inventory/agents/copilot.json +2 -2
  414. package/.agents/ui_inventory/agents/gemini.json +2 -2
  415. package/.agents/ui_inventory/agents/openai.yaml +1 -1
  416. package/.agents/ui_inventory/agents/qwen.json +2 -2
  417. package/.agents/ui_inventory/agents/skill.yaml +2 -2
  418. package/.agents/ux_discovery/SKILL.md +214 -48
  419. package/.agents/ux_discovery/agents/claude.json +2 -2
  420. package/.agents/ux_discovery/agents/copilot.json +2 -2
  421. package/.agents/ux_discovery/agents/gemini.json +2 -2
  422. package/.agents/ux_discovery/agents/openai.yaml +1 -1
  423. package/.agents/ux_discovery/agents/qwen.json +2 -2
  424. package/.agents/ux_discovery/agents/skill.yaml +2 -2
  425. package/.agents/ux_spec/SKILL.md +282 -56
  426. package/.agents/ux_spec/agents/claude.json +2 -2
  427. package/.agents/ux_spec/agents/copilot.json +2 -2
  428. package/.agents/ux_spec/agents/gemini.json +2 -2
  429. package/.agents/ux_spec/agents/openai.yaml +1 -1
  430. package/.agents/ux_spec/agents/qwen.json +2 -2
  431. package/.agents/ux_spec/agents/skill.yaml +2 -2
  432. package/.agents/wix_iframe_sdk/SKILL.md +277 -48
  433. package/.agents/wix_iframe_sdk/agents/claude.json +2 -2
  434. package/.agents/wix_iframe_sdk/agents/copilot.json +2 -2
  435. package/.agents/wix_iframe_sdk/agents/gemini.json +2 -2
  436. package/.agents/wix_iframe_sdk/agents/openai.yaml +1 -1
  437. package/.agents/wix_iframe_sdk/agents/qwen.json +2 -2
  438. package/.agents/wix_iframe_sdk/agents/skill.yaml +2 -2
  439. package/.agents/wix_self_hosted_embedded_script/SKILL.md +605 -82
  440. package/.agents/wix_self_hosted_embedded_script/agents/claude.json +2 -2
  441. package/.agents/wix_self_hosted_embedded_script/agents/copilot.json +2 -2
  442. package/.agents/wix_self_hosted_embedded_script/agents/gemini.json +2 -2
  443. package/.agents/wix_self_hosted_embedded_script/agents/openai.yaml +1 -1
  444. package/.agents/wix_self_hosted_embedded_script/agents/qwen.json +2 -2
  445. package/.agents/wix_self_hosted_embedded_script/agents/skill.yaml +2 -2
  446. package/AGENTS.yaml +2 -0
  447. package/agents/conductor.md +50 -0
  448. package/agents/devops.md +31 -1
  449. package/agents/orchestrator.claude.json +2 -0
  450. package/agents/orchestrator.copilot.json +2 -0
  451. package/agents/orchestrator.gemini.json +2 -0
  452. package/agents/orchestrator.openai.yaml +2 -0
  453. package/agents/orchestrator.qwen.json +2 -0
  454. package/agents/reviewer.md +0 -1
  455. package/agents/senior_full_stack.md +1 -0
  456. package/agents/tester.md +1 -1
  457. package/agents/ux_ui_designer.md +2 -2
  458. package/locales/en/.agents/a11y_baseline/SKILL.md +260 -41
  459. package/locales/en/.agents/a11y_baseline/agents/claude.json +3 -2
  460. package/locales/en/.agents/a11y_baseline/agents/copilot.json +3 -2
  461. package/locales/en/.agents/a11y_baseline/agents/gemini.json +3 -2
  462. package/locales/en/.agents/a11y_baseline/agents/openai.yaml +1 -1
  463. package/locales/en/.agents/a11y_baseline/agents/qwen.json +3 -2
  464. package/locales/en/.agents/a11y_baseline/agents/skill.yaml +2 -1
  465. package/locales/en/.agents/adr_log/SKILL.md +330 -30
  466. package/locales/en/.agents/adr_log/agents/claude.json +5 -5
  467. package/locales/en/.agents/adr_log/agents/copilot.json +5 -5
  468. package/locales/en/.agents/adr_log/agents/gemini.json +5 -5
  469. package/locales/en/.agents/adr_log/agents/openai.yaml +3 -3
  470. package/locales/en/.agents/adr_log/agents/qwen.json +5 -5
  471. package/locales/en/.agents/adr_log/agents/skill.yaml +5 -5
  472. package/locales/en/.agents/api_contract_compliance_review/SKILL.md +218 -12
  473. package/locales/en/.agents/api_contract_compliance_review/agents/claude.json +2 -2
  474. package/locales/en/.agents/api_contract_compliance_review/agents/copilot.json +2 -2
  475. package/locales/en/.agents/api_contract_compliance_review/agents/gemini.json +2 -2
  476. package/locales/en/.agents/api_contract_compliance_review/agents/openai.yaml +1 -1
  477. package/locales/en/.agents/api_contract_compliance_review/agents/qwen.json +2 -2
  478. package/locales/en/.agents/api_contract_compliance_review/agents/skill.yaml +2 -2
  479. package/locales/en/.agents/api_contracts/SKILL.md +323 -36
  480. package/locales/en/.agents/api_contracts/agents/claude.json +2 -2
  481. package/locales/en/.agents/api_contracts/agents/copilot.json +2 -2
  482. package/locales/en/.agents/api_contracts/agents/gemini.json +2 -2
  483. package/locales/en/.agents/api_contracts/agents/openai.yaml +1 -1
  484. package/locales/en/.agents/api_contracts/agents/qwen.json +2 -2
  485. package/locales/en/.agents/api_contracts/agents/skill.yaml +2 -2
  486. package/locales/en/.agents/architecture_compliance_review/SKILL.md +206 -10
  487. package/locales/en/.agents/architecture_compliance_review/agents/claude.json +5 -4
  488. package/locales/en/.agents/architecture_compliance_review/agents/copilot.json +5 -4
  489. package/locales/en/.agents/architecture_compliance_review/agents/gemini.json +5 -4
  490. package/locales/en/.agents/architecture_compliance_review/agents/openai.yaml +3 -3
  491. package/locales/en/.agents/architecture_compliance_review/agents/qwen.json +5 -4
  492. package/locales/en/.agents/architecture_compliance_review/agents/skill.yaml +5 -4
  493. package/locales/en/.agents/architecture_doc/SKILL.md +374 -82
  494. package/locales/en/.agents/architecture_doc/agents/claude.json +2 -2
  495. package/locales/en/.agents/architecture_doc/agents/copilot.json +2 -2
  496. package/locales/en/.agents/architecture_doc/agents/gemini.json +2 -2
  497. package/locales/en/.agents/architecture_doc/agents/openai.yaml +1 -1
  498. package/locales/en/.agents/architecture_doc/agents/qwen.json +2 -2
  499. package/locales/en/.agents/architecture_doc/agents/skill.yaml +2 -2
  500. package/locales/en/.agents/board/SKILL.md +232 -43
  501. package/locales/en/.agents/board/agents/claude.json +2 -2
  502. package/locales/en/.agents/board/agents/copilot.json +2 -2
  503. package/locales/en/.agents/board/agents/gemini.json +2 -2
  504. package/locales/en/.agents/board/agents/openai.yaml +1 -1
  505. package/locales/en/.agents/board/agents/qwen.json +2 -2
  506. package/locales/en/.agents/board/agents/skill.yaml +2 -2
  507. package/locales/en/.agents/cloud_infrastructure_security/SKILL.md +277 -68
  508. package/locales/en/.agents/cloud_infrastructure_security/agents/claude.json +5 -4
  509. package/locales/en/.agents/cloud_infrastructure_security/agents/copilot.json +5 -4
  510. package/locales/en/.agents/cloud_infrastructure_security/agents/gemini.json +5 -4
  511. package/locales/en/.agents/cloud_infrastructure_security/agents/openai.yaml +3 -3
  512. package/locales/en/.agents/cloud_infrastructure_security/agents/qwen.json +5 -4
  513. package/locales/en/.agents/cloud_infrastructure_security/agents/skill.yaml +5 -4
  514. package/locales/en/.agents/code_review_checklist/SKILL.md +194 -41
  515. package/locales/en/.agents/code_review_checklist/agents/claude.json +2 -2
  516. package/locales/en/.agents/code_review_checklist/agents/copilot.json +2 -2
  517. package/locales/en/.agents/code_review_checklist/agents/gemini.json +2 -2
  518. package/locales/en/.agents/code_review_checklist/agents/openai.yaml +1 -1
  519. package/locales/en/.agents/code_review_checklist/agents/qwen.json +2 -2
  520. package/locales/en/.agents/code_review_checklist/agents/skill.yaml +2 -2
  521. package/locales/en/.agents/current_state_analysis/SKILL.md +225 -44
  522. package/locales/en/.agents/current_state_analysis/agents/claude.json +5 -4
  523. package/locales/en/.agents/current_state_analysis/agents/copilot.json +5 -4
  524. package/locales/en/.agents/current_state_analysis/agents/gemini.json +5 -4
  525. package/locales/en/.agents/current_state_analysis/agents/openai.yaml +3 -3
  526. package/locales/en/.agents/current_state_analysis/agents/qwen.json +5 -4
  527. package/locales/en/.agents/current_state_analysis/agents/skill.yaml +5 -4
  528. package/locales/en/.agents/data_model/SKILL.md +277 -32
  529. package/locales/en/.agents/data_model/agents/claude.json +2 -2
  530. package/locales/en/.agents/data_model/agents/copilot.json +2 -2
  531. package/locales/en/.agents/data_model/agents/gemini.json +2 -2
  532. package/locales/en/.agents/data_model/agents/openai.yaml +1 -1
  533. package/locales/en/.agents/data_model/agents/qwen.json +2 -2
  534. package/locales/en/.agents/data_model/agents/skill.yaml +2 -2
  535. package/locales/en/.agents/dependency_supply_chain_review/SKILL.md +291 -11
  536. package/locales/en/.agents/dependency_supply_chain_review/agents/claude.json +5 -4
  537. package/locales/en/.agents/dependency_supply_chain_review/agents/copilot.json +5 -4
  538. package/locales/en/.agents/dependency_supply_chain_review/agents/gemini.json +5 -4
  539. package/locales/en/.agents/dependency_supply_chain_review/agents/openai.yaml +3 -3
  540. package/locales/en/.agents/dependency_supply_chain_review/agents/qwen.json +5 -4
  541. package/locales/en/.agents/dependency_supply_chain_review/agents/skill.yaml +5 -4
  542. package/locales/en/.agents/deployment_ci_plan/SKILL.md +404 -45
  543. package/locales/en/.agents/deployment_ci_plan/agents/claude.json +2 -2
  544. package/locales/en/.agents/deployment_ci_plan/agents/copilot.json +2 -2
  545. package/locales/en/.agents/deployment_ci_plan/agents/gemini.json +2 -2
  546. package/locales/en/.agents/deployment_ci_plan/agents/openai.yaml +1 -1
  547. package/locales/en/.agents/deployment_ci_plan/agents/qwen.json +2 -2
  548. package/locales/en/.agents/deployment_ci_plan/agents/skill.yaml +2 -2
  549. package/locales/en/.agents/design_intake/SKILL.md +221 -67
  550. package/locales/en/.agents/design_intake/agents/claude.json +4 -5
  551. package/locales/en/.agents/design_intake/agents/copilot.json +4 -5
  552. package/locales/en/.agents/design_intake/agents/gemini.json +4 -5
  553. package/locales/en/.agents/design_intake/agents/openai.yaml +3 -3
  554. package/locales/en/.agents/design_intake/agents/qwen.json +4 -5
  555. package/locales/en/.agents/design_intake/agents/skill.yaml +4 -5
  556. package/locales/en/.agents/design_parity_review/SKILL.md +216 -60
  557. package/locales/en/.agents/design_parity_review/agents/claude.json +2 -3
  558. package/locales/en/.agents/design_parity_review/agents/copilot.json +2 -3
  559. package/locales/en/.agents/design_parity_review/agents/gemini.json +2 -3
  560. package/locales/en/.agents/design_parity_review/agents/openai.yaml +2 -2
  561. package/locales/en/.agents/design_parity_review/agents/qwen.json +2 -3
  562. package/locales/en/.agents/design_parity_review/agents/skill.yaml +2 -3
  563. package/locales/en/.agents/design_systems/SKILL.md +432 -15
  564. package/locales/en/.agents/design_systems/agents/claude.json +2 -2
  565. package/locales/en/.agents/design_systems/agents/copilot.json +2 -2
  566. package/locales/en/.agents/design_systems/agents/gemini.json +2 -2
  567. package/locales/en/.agents/design_systems/agents/openai.yaml +1 -1
  568. package/locales/en/.agents/design_systems/agents/qwen.json +2 -2
  569. package/locales/en/.agents/design_systems/agents/skill.yaml +2 -2
  570. package/locales/en/.agents/dev_reference_snippets/SKILL.md +585 -397
  571. package/locales/en/.agents/dev_reference_snippets/agents/claude.json +2 -2
  572. package/locales/en/.agents/dev_reference_snippets/agents/copilot.json +2 -2
  573. package/locales/en/.agents/dev_reference_snippets/agents/gemini.json +2 -2
  574. package/locales/en/.agents/dev_reference_snippets/agents/openai.yaml +1 -1
  575. package/locales/en/.agents/dev_reference_snippets/agents/qwen.json +2 -2
  576. package/locales/en/.agents/dev_reference_snippets/agents/skill.yaml +2 -2
  577. package/locales/en/.agents/docker_kubernetes_architecture/SKILL.md +473 -137
  578. package/locales/en/.agents/docker_kubernetes_architecture/agents/claude.json +5 -4
  579. package/locales/en/.agents/docker_kubernetes_architecture/agents/copilot.json +5 -4
  580. package/locales/en/.agents/docker_kubernetes_architecture/agents/gemini.json +5 -4
  581. package/locales/en/.agents/docker_kubernetes_architecture/agents/openai.yaml +3 -3
  582. package/locales/en/.agents/docker_kubernetes_architecture/agents/qwen.json +5 -4
  583. package/locales/en/.agents/docker_kubernetes_architecture/agents/skill.yaml +5 -4
  584. package/locales/en/.agents/es2025_beast_practices/SKILL.md +440 -15
  585. package/locales/en/.agents/es2025_beast_practices/agents/claude.json +4 -4
  586. package/locales/en/.agents/es2025_beast_practices/agents/copilot.json +4 -4
  587. package/locales/en/.agents/es2025_beast_practices/agents/gemini.json +4 -4
  588. package/locales/en/.agents/es2025_beast_practices/agents/openai.yaml +3 -3
  589. package/locales/en/.agents/es2025_beast_practices/agents/qwen.json +4 -4
  590. package/locales/en/.agents/es2025_beast_practices/agents/skill.yaml +4 -4
  591. package/locales/en/.agents/gates/SKILL.md +128 -29
  592. package/locales/en/.agents/gates/agents/claude.json +2 -2
  593. package/locales/en/.agents/gates/agents/copilot.json +2 -2
  594. package/locales/en/.agents/gates/agents/gemini.json +2 -2
  595. package/locales/en/.agents/gates/agents/openai.yaml +1 -1
  596. package/locales/en/.agents/gates/agents/qwen.json +2 -2
  597. package/locales/en/.agents/gates/agents/skill.yaml +2 -2
  598. package/locales/en/.agents/go_beast_practices/SKILL.md +557 -23
  599. package/locales/en/.agents/go_beast_practices/agents/claude.json +5 -4
  600. package/locales/en/.agents/go_beast_practices/agents/copilot.json +5 -4
  601. package/locales/en/.agents/go_beast_practices/agents/gemini.json +5 -4
  602. package/locales/en/.agents/go_beast_practices/agents/openai.yaml +3 -3
  603. package/locales/en/.agents/go_beast_practices/agents/qwen.json +5 -4
  604. package/locales/en/.agents/go_beast_practices/agents/skill.yaml +5 -4
  605. package/locales/en/.agents/google_stitch_skill/SKILL.md +507 -71
  606. package/locales/en/.agents/google_stitch_skill/agents/claude.json +5 -6
  607. package/locales/en/.agents/google_stitch_skill/agents/copilot.json +5 -6
  608. package/locales/en/.agents/google_stitch_skill/agents/gemini.json +5 -6
  609. package/locales/en/.agents/google_stitch_skill/agents/openai.yaml +1 -1
  610. package/locales/en/.agents/google_stitch_skill/agents/qwen.json +5 -6
  611. package/locales/en/.agents/google_stitch_skill/agents/skill.yaml +4 -5
  612. package/locales/en/.agents/handoff/SKILL.md +206 -46
  613. package/locales/en/.agents/handoff/agents/claude.json +5 -5
  614. package/locales/en/.agents/handoff/agents/copilot.json +5 -5
  615. package/locales/en/.agents/handoff/agents/gemini.json +5 -5
  616. package/locales/en/.agents/handoff/agents/openai.yaml +3 -3
  617. package/locales/en/.agents/handoff/agents/qwen.json +5 -5
  618. package/locales/en/.agents/handoff/agents/skill.yaml +5 -5
  619. package/locales/en/.agents/k8s_manifests_conventions/SKILL.md +540 -167
  620. package/locales/en/.agents/k8s_manifests_conventions/agents/claude.json +2 -2
  621. package/locales/en/.agents/k8s_manifests_conventions/agents/copilot.json +2 -2
  622. package/locales/en/.agents/k8s_manifests_conventions/agents/gemini.json +2 -2
  623. package/locales/en/.agents/k8s_manifests_conventions/agents/openai.yaml +1 -1
  624. package/locales/en/.agents/k8s_manifests_conventions/agents/qwen.json +2 -2
  625. package/locales/en/.agents/k8s_manifests_conventions/agents/skill.yaml +2 -2
  626. package/locales/en/.agents/memory/SKILL.md +211 -21
  627. package/locales/en/.agents/memory/agents/claude.json +5 -4
  628. package/locales/en/.agents/memory/agents/copilot.json +5 -4
  629. package/locales/en/.agents/memory/agents/gemini.json +5 -4
  630. package/locales/en/.agents/memory/agents/openai.yaml +3 -3
  631. package/locales/en/.agents/memory/agents/qwen.json +5 -4
  632. package/locales/en/.agents/memory/agents/skill.yaml +5 -4
  633. package/locales/en/.agents/mongodb_mongoose_best_practices/SKILL.md +669 -178
  634. package/locales/en/.agents/mongodb_mongoose_best_practices/agents/claude.json +4 -5
  635. package/locales/en/.agents/mongodb_mongoose_best_practices/agents/copilot.json +4 -5
  636. package/locales/en/.agents/mongodb_mongoose_best_practices/agents/gemini.json +4 -5
  637. package/locales/en/.agents/mongodb_mongoose_best_practices/agents/openai.yaml +3 -3
  638. package/locales/en/.agents/mongodb_mongoose_best_practices/agents/qwen.json +4 -5
  639. package/locales/en/.agents/mongodb_mongoose_best_practices/agents/skill.yaml +4 -5
  640. package/locales/en/.agents/n8n_pinecone_qdrant_supabase/SKILL.md +669 -57
  641. package/locales/en/.agents/n8n_pinecone_qdrant_supabase/agents/claude.json +5 -5
  642. package/locales/en/.agents/n8n_pinecone_qdrant_supabase/agents/copilot.json +5 -5
  643. package/locales/en/.agents/n8n_pinecone_qdrant_supabase/agents/gemini.json +5 -5
  644. package/locales/en/.agents/n8n_pinecone_qdrant_supabase/agents/openai.yaml +3 -3
  645. package/locales/en/.agents/n8n_pinecone_qdrant_supabase/agents/qwen.json +5 -5
  646. package/locales/en/.agents/n8n_pinecone_qdrant_supabase/agents/skill.yaml +5 -5
  647. package/locales/en/.agents/node_express_beast_practices/SKILL.md +718 -19
  648. package/locales/en/.agents/node_express_beast_practices/agents/claude.json +1 -1
  649. package/locales/en/.agents/node_express_beast_practices/agents/copilot.json +1 -1
  650. package/locales/en/.agents/node_express_beast_practices/agents/gemini.json +1 -1
  651. package/locales/en/.agents/node_express_beast_practices/agents/openai.yaml +1 -1
  652. package/locales/en/.agents/node_express_beast_practices/agents/qwen.json +1 -1
  653. package/locales/en/.agents/node_express_beast_practices/agents/skill.yaml +1 -1
  654. package/locales/en/.agents/observability_logging/SKILL.md +499 -16
  655. package/locales/en/.agents/observability_logging/agents/claude.json +4 -4
  656. package/locales/en/.agents/observability_logging/agents/copilot.json +4 -4
  657. package/locales/en/.agents/observability_logging/agents/gemini.json +4 -4
  658. package/locales/en/.agents/observability_logging/agents/openai.yaml +3 -3
  659. package/locales/en/.agents/observability_logging/agents/qwen.json +4 -4
  660. package/locales/en/.agents/observability_logging/agents/skill.yaml +4 -4
  661. package/locales/en/.agents/observability_plan/SKILL.md +273 -32
  662. package/locales/en/.agents/observability_plan/agents/claude.json +6 -4
  663. package/locales/en/.agents/observability_plan/agents/copilot.json +6 -4
  664. package/locales/en/.agents/observability_plan/agents/gemini.json +6 -4
  665. package/locales/en/.agents/observability_plan/agents/openai.yaml +3 -3
  666. package/locales/en/.agents/observability_plan/agents/qwen.json +6 -4
  667. package/locales/en/.agents/observability_plan/agents/skill.yaml +5 -3
  668. package/locales/en/.agents/observability_review/SKILL.md +245 -11
  669. package/locales/en/.agents/observability_review/agents/claude.json +6 -4
  670. package/locales/en/.agents/observability_review/agents/copilot.json +6 -4
  671. package/locales/en/.agents/observability_review/agents/gemini.json +6 -4
  672. package/locales/en/.agents/observability_review/agents/openai.yaml +3 -3
  673. package/locales/en/.agents/observability_review/agents/qwen.json +6 -4
  674. package/locales/en/.agents/observability_review/agents/skill.yaml +5 -3
  675. package/locales/en/.agents/performance_review_baseline/SKILL.md +232 -10
  676. package/locales/en/.agents/performance_review_baseline/agents/claude.json +5 -4
  677. package/locales/en/.agents/performance_review_baseline/agents/copilot.json +5 -4
  678. package/locales/en/.agents/performance_review_baseline/agents/gemini.json +5 -4
  679. package/locales/en/.agents/performance_review_baseline/agents/openai.yaml +3 -3
  680. package/locales/en/.agents/performance_review_baseline/agents/qwen.json +5 -4
  681. package/locales/en/.agents/performance_review_baseline/agents/skill.yaml +5 -4
  682. package/locales/en/.agents/pm_backlog/SKILL.md +239 -21
  683. package/locales/en/.agents/pm_backlog/agents/claude.json +2 -2
  684. package/locales/en/.agents/pm_backlog/agents/copilot.json +2 -2
  685. package/locales/en/.agents/pm_backlog/agents/gemini.json +2 -2
  686. package/locales/en/.agents/pm_backlog/agents/openai.yaml +1 -1
  687. package/locales/en/.agents/pm_backlog/agents/qwen.json +2 -2
  688. package/locales/en/.agents/pm_backlog/agents/skill.yaml +2 -2
  689. package/locales/en/.agents/pm_interview/SKILL.md +178 -37
  690. package/locales/en/.agents/pm_interview/agents/claude.json +5 -4
  691. package/locales/en/.agents/pm_interview/agents/copilot.json +5 -4
  692. package/locales/en/.agents/pm_interview/agents/gemini.json +5 -4
  693. package/locales/en/.agents/pm_interview/agents/openai.yaml +3 -3
  694. package/locales/en/.agents/pm_interview/agents/qwen.json +5 -4
  695. package/locales/en/.agents/pm_interview/agents/skill.yaml +5 -4
  696. package/locales/en/.agents/pm_prd/SKILL.md +197 -38
  697. package/locales/en/.agents/pm_prd/agents/claude.json +2 -2
  698. package/locales/en/.agents/pm_prd/agents/copilot.json +2 -2
  699. package/locales/en/.agents/pm_prd/agents/gemini.json +2 -2
  700. package/locales/en/.agents/pm_prd/agents/openai.yaml +1 -1
  701. package/locales/en/.agents/pm_prd/agents/qwen.json +2 -2
  702. package/locales/en/.agents/pm_prd/agents/skill.yaml +2 -2
  703. package/locales/en/.agents/qa_api_contract_tests/SKILL.md +207 -16
  704. package/locales/en/.agents/qa_api_contract_tests/agents/claude.json +2 -2
  705. package/locales/en/.agents/qa_api_contract_tests/agents/copilot.json +2 -2
  706. package/locales/en/.agents/qa_api_contract_tests/agents/gemini.json +2 -2
  707. package/locales/en/.agents/qa_api_contract_tests/agents/openai.yaml +1 -1
  708. package/locales/en/.agents/qa_api_contract_tests/agents/qwen.json +2 -2
  709. package/locales/en/.agents/qa_api_contract_tests/agents/skill.yaml +2 -2
  710. package/locales/en/.agents/qa_browser_testing/SKILL.md +254 -86
  711. package/locales/en/.agents/qa_e2e_playwright/SKILL.md +313 -116
  712. package/locales/en/.agents/qa_manual_run/SKILL.md +202 -9
  713. package/locales/en/.agents/qa_manual_run/agents/claude.json +2 -2
  714. package/locales/en/.agents/qa_manual_run/agents/copilot.json +2 -2
  715. package/locales/en/.agents/qa_manual_run/agents/gemini.json +2 -2
  716. package/locales/en/.agents/qa_manual_run/agents/openai.yaml +1 -1
  717. package/locales/en/.agents/qa_manual_run/agents/qwen.json +2 -2
  718. package/locales/en/.agents/qa_manual_run/agents/skill.yaml +2 -2
  719. package/locales/en/.agents/qa_regression_baseline/SKILL.md +217 -0
  720. package/locales/en/.agents/qa_regression_baseline/agents/claude.json +19 -0
  721. package/locales/en/.agents/qa_regression_baseline/agents/copilot.json +19 -0
  722. package/locales/en/.agents/qa_regression_baseline/agents/gemini.json +19 -0
  723. package/locales/en/.agents/qa_regression_baseline/agents/openai.yaml +8 -0
  724. package/locales/en/.agents/qa_regression_baseline/agents/qwen.json +19 -0
  725. package/locales/en/.agents/qa_regression_baseline/agents/skill.yaml +23 -0
  726. package/locales/en/.agents/qa_security_smoke_tests/SKILL.md +182 -8
  727. package/locales/en/.agents/qa_security_smoke_tests/agents/claude.json +2 -2
  728. package/locales/en/.agents/qa_security_smoke_tests/agents/copilot.json +2 -2
  729. package/locales/en/.agents/qa_security_smoke_tests/agents/gemini.json +2 -2
  730. package/locales/en/.agents/qa_security_smoke_tests/agents/openai.yaml +1 -1
  731. package/locales/en/.agents/qa_security_smoke_tests/agents/qwen.json +2 -2
  732. package/locales/en/.agents/qa_security_smoke_tests/agents/skill.yaml +2 -2
  733. package/locales/en/.agents/qa_test_plan/SKILL.md +197 -14
  734. package/locales/en/.agents/qa_test_plan/agents/claude.json +2 -2
  735. package/locales/en/.agents/qa_test_plan/agents/copilot.json +2 -2
  736. package/locales/en/.agents/qa_test_plan/agents/gemini.json +2 -2
  737. package/locales/en/.agents/qa_test_plan/agents/openai.yaml +1 -1
  738. package/locales/en/.agents/qa_test_plan/agents/qwen.json +2 -2
  739. package/locales/en/.agents/qa_test_plan/agents/skill.yaml +2 -2
  740. package/locales/en/.agents/qa_ui_a11y_smoke/SKILL.md +224 -6
  741. package/locales/en/.agents/qa_ui_a11y_smoke/agents/claude.json +5 -4
  742. package/locales/en/.agents/qa_ui_a11y_smoke/agents/copilot.json +5 -4
  743. package/locales/en/.agents/qa_ui_a11y_smoke/agents/gemini.json +5 -4
  744. package/locales/en/.agents/qa_ui_a11y_smoke/agents/openai.yaml +3 -3
  745. package/locales/en/.agents/qa_ui_a11y_smoke/agents/qwen.json +5 -4
  746. package/locales/en/.agents/qa_ui_a11y_smoke/agents/skill.yaml +5 -4
  747. package/locales/en/.agents/react_15_3_wix_iframe/SKILL.md +419 -20
  748. package/locales/en/.agents/react_15_3_wix_iframe/agents/claude.json +2 -2
  749. package/locales/en/.agents/react_15_3_wix_iframe/agents/copilot.json +2 -2
  750. package/locales/en/.agents/react_15_3_wix_iframe/agents/gemini.json +2 -2
  751. package/locales/en/.agents/react_15_3_wix_iframe/agents/openai.yaml +1 -1
  752. package/locales/en/.agents/react_15_3_wix_iframe/agents/qwen.json +2 -2
  753. package/locales/en/.agents/react_15_3_wix_iframe/agents/skill.yaml +2 -2
  754. package/locales/en/.agents/react_beast_practices/SKILL.md +285 -18
  755. package/locales/en/.agents/react_beast_practices/agents/claude.json +4 -4
  756. package/locales/en/.agents/react_beast_practices/agents/copilot.json +4 -4
  757. package/locales/en/.agents/react_beast_practices/agents/gemini.json +4 -4
  758. package/locales/en/.agents/react_beast_practices/agents/openai.yaml +3 -3
  759. package/locales/en/.agents/react_beast_practices/agents/qwen.json +4 -4
  760. package/locales/en/.agents/react_beast_practices/agents/skill.yaml +4 -4
  761. package/locales/en/.agents/release_gate/SKILL.md +205 -69
  762. package/locales/en/.agents/release_gate/agents/claude.json +5 -4
  763. package/locales/en/.agents/release_gate/agents/copilot.json +5 -4
  764. package/locales/en/.agents/release_gate/agents/gemini.json +5 -4
  765. package/locales/en/.agents/release_gate/agents/openai.yaml +3 -3
  766. package/locales/en/.agents/release_gate/agents/qwen.json +5 -4
  767. package/locales/en/.agents/release_gate/agents/skill.yaml +5 -4
  768. package/locales/en/.agents/release_gate_checklist_template/SKILL.md +175 -61
  769. package/locales/en/.agents/review_reference_snippets/SKILL.md +163 -46
  770. package/locales/en/.agents/security_baseline_dev/SKILL.md +496 -16
  771. package/locales/en/.agents/security_baseline_dev/agents/claude.json +2 -2
  772. package/locales/en/.agents/security_baseline_dev/agents/copilot.json +2 -2
  773. package/locales/en/.agents/security_baseline_dev/agents/gemini.json +2 -2
  774. package/locales/en/.agents/security_baseline_dev/agents/openai.yaml +1 -1
  775. package/locales/en/.agents/security_baseline_dev/agents/qwen.json +2 -2
  776. package/locales/en/.agents/security_baseline_dev/agents/skill.yaml +2 -2
  777. package/locales/en/.agents/security_review/SKILL.md +277 -55
  778. package/locales/en/.agents/security_review_baseline/SKILL.md +111 -17
  779. package/locales/en/.agents/security_review_baseline/agents/claude.json +2 -2
  780. package/locales/en/.agents/security_review_baseline/agents/copilot.json +2 -2
  781. package/locales/en/.agents/security_review_baseline/agents/gemini.json +2 -2
  782. package/locales/en/.agents/security_review_baseline/agents/openai.yaml +1 -1
  783. package/locales/en/.agents/security_review_baseline/agents/qwen.json +2 -2
  784. package/locales/en/.agents/security_review_baseline/agents/skill.yaml +2 -2
  785. package/locales/en/.agents/state_rtk_beast_practices/SKILL.md +735 -15
  786. package/locales/en/.agents/state_rtk_beast_practices/agents/claude.json +2 -2
  787. package/locales/en/.agents/state_rtk_beast_practices/agents/copilot.json +2 -2
  788. package/locales/en/.agents/state_rtk_beast_practices/agents/gemini.json +2 -2
  789. package/locales/en/.agents/state_rtk_beast_practices/agents/openai.yaml +1 -1
  790. package/locales/en/.agents/state_rtk_beast_practices/agents/qwen.json +2 -2
  791. package/locales/en/.agents/state_rtk_beast_practices/agents/skill.yaml +2 -2
  792. package/locales/en/.agents/state_zustand_beast_practices/SKILL.md +808 -11
  793. package/locales/en/.agents/state_zustand_beast_practices/agents/claude.json +2 -2
  794. package/locales/en/.agents/state_zustand_beast_practices/agents/copilot.json +2 -2
  795. package/locales/en/.agents/state_zustand_beast_practices/agents/gemini.json +2 -2
  796. package/locales/en/.agents/state_zustand_beast_practices/agents/openai.yaml +1 -1
  797. package/locales/en/.agents/state_zustand_beast_practices/agents/qwen.json +2 -2
  798. package/locales/en/.agents/state_zustand_beast_practices/agents/skill.yaml +2 -2
  799. package/locales/en/.agents/styling_css_stack/SKILL.md +558 -12
  800. package/locales/en/.agents/styling_css_stack/agents/claude.json +5 -5
  801. package/locales/en/.agents/styling_css_stack/agents/copilot.json +5 -5
  802. package/locales/en/.agents/styling_css_stack/agents/gemini.json +5 -5
  803. package/locales/en/.agents/styling_css_stack/agents/openai.yaml +3 -3
  804. package/locales/en/.agents/styling_css_stack/agents/qwen.json +5 -5
  805. package/locales/en/.agents/styling_css_stack/agents/skill.yaml +5 -5
  806. package/locales/en/.agents/system_design_checklist/SKILL.md +199 -40
  807. package/locales/en/.agents/system_design_checklist/agents/claude.json +3 -2
  808. package/locales/en/.agents/system_design_checklist/agents/copilot.json +3 -2
  809. package/locales/en/.agents/system_design_checklist/agents/gemini.json +3 -2
  810. package/locales/en/.agents/system_design_checklist/agents/openai.yaml +1 -1
  811. package/locales/en/.agents/system_design_checklist/agents/qwen.json +3 -2
  812. package/locales/en/.agents/system_design_checklist/agents/skill.yaml +2 -1
  813. package/locales/en/.agents/tailwind_beast_practices/SKILL.md +512 -0
  814. package/locales/en/.agents/tailwind_beast_practices/agents/claude.json +18 -0
  815. package/locales/en/.agents/tailwind_beast_practices/agents/copilot.json +18 -0
  816. package/locales/en/.agents/tailwind_beast_practices/agents/gemini.json +18 -0
  817. package/locales/en/.agents/tailwind_beast_practices/agents/openai.yaml +8 -0
  818. package/locales/en/.agents/tailwind_beast_practices/agents/qwen.json +18 -0
  819. package/locales/en/.agents/tailwind_beast_practices/agents/skill.yaml +22 -0
  820. package/locales/en/.agents/tanstack_beast_practices/SKILL.md +473 -19
  821. package/locales/en/.agents/tanstack_beast_practices/agents/claude.json +2 -2
  822. package/locales/en/.agents/tanstack_beast_practices/agents/copilot.json +2 -2
  823. package/locales/en/.agents/tanstack_beast_practices/agents/gemini.json +2 -2
  824. package/locales/en/.agents/tanstack_beast_practices/agents/openai.yaml +1 -1
  825. package/locales/en/.agents/tanstack_beast_practices/agents/qwen.json +2 -2
  826. package/locales/en/.agents/tanstack_beast_practices/agents/skill.yaml +2 -2
  827. package/locales/en/.agents/tdd_workflow/SKILL.md +453 -34
  828. package/locales/en/.agents/tdd_workflow/agents/claude.json +2 -2
  829. package/locales/en/.agents/tdd_workflow/agents/copilot.json +2 -2
  830. package/locales/en/.agents/tdd_workflow/agents/gemini.json +2 -2
  831. package/locales/en/.agents/tdd_workflow/agents/openai.yaml +1 -1
  832. package/locales/en/.agents/tdd_workflow/agents/qwen.json +2 -2
  833. package/locales/en/.agents/tdd_workflow/agents/skill.yaml +2 -2
  834. package/locales/en/.agents/testing_strategy_js/SKILL.md +636 -30
  835. package/locales/en/.agents/testing_strategy_js/agents/claude.json +2 -2
  836. package/locales/en/.agents/testing_strategy_js/agents/copilot.json +2 -2
  837. package/locales/en/.agents/testing_strategy_js/agents/gemini.json +2 -2
  838. package/locales/en/.agents/testing_strategy_js/agents/openai.yaml +1 -1
  839. package/locales/en/.agents/testing_strategy_js/agents/qwen.json +2 -2
  840. package/locales/en/.agents/testing_strategy_js/agents/skill.yaml +2 -2
  841. package/locales/en/.agents/tests_quality_review/SKILL.md +279 -18
  842. package/locales/en/.agents/tests_quality_review/agents/claude.json +2 -2
  843. package/locales/en/.agents/tests_quality_review/agents/copilot.json +2 -2
  844. package/locales/en/.agents/tests_quality_review/agents/gemini.json +2 -2
  845. package/locales/en/.agents/tests_quality_review/agents/openai.yaml +1 -1
  846. package/locales/en/.agents/tests_quality_review/agents/qwen.json +2 -2
  847. package/locales/en/.agents/tests_quality_review/agents/skill.yaml +2 -2
  848. package/locales/en/.agents/threat_model_baseline/SKILL.md +202 -49
  849. package/locales/en/.agents/threat_model_baseline/agents/claude.json +2 -2
  850. package/locales/en/.agents/threat_model_baseline/agents/copilot.json +2 -2
  851. package/locales/en/.agents/threat_model_baseline/agents/gemini.json +2 -2
  852. package/locales/en/.agents/threat_model_baseline/agents/openai.yaml +1 -1
  853. package/locales/en/.agents/threat_model_baseline/agents/qwen.json +2 -2
  854. package/locales/en/.agents/threat_model_baseline/agents/skill.yaml +2 -2
  855. package/locales/en/.agents/tooling_bun_biome/SKILL.md +531 -9
  856. package/locales/en/.agents/tooling_bun_biome/agents/claude.json +5 -5
  857. package/locales/en/.agents/tooling_bun_biome/agents/copilot.json +5 -5
  858. package/locales/en/.agents/tooling_bun_biome/agents/gemini.json +5 -5
  859. package/locales/en/.agents/tooling_bun_biome/agents/openai.yaml +3 -3
  860. package/locales/en/.agents/tooling_bun_biome/agents/qwen.json +5 -5
  861. package/locales/en/.agents/tooling_bun_biome/agents/skill.yaml +5 -5
  862. package/locales/en/.agents/typescript_beast_practices/SKILL.md +434 -15
  863. package/locales/en/.agents/typescript_beast_practices/agents/claude.json +2 -2
  864. package/locales/en/.agents/typescript_beast_practices/agents/copilot.json +2 -2
  865. package/locales/en/.agents/typescript_beast_practices/agents/gemini.json +2 -2
  866. package/locales/en/.agents/typescript_beast_practices/agents/openai.yaml +1 -1
  867. package/locales/en/.agents/typescript_beast_practices/agents/qwen.json +2 -2
  868. package/locales/en/.agents/typescript_beast_practices/agents/skill.yaml +2 -2
  869. package/locales/en/.agents/ui_a11y_smoke_review/SKILL.md +189 -9
  870. package/locales/en/.agents/ui_a11y_smoke_review/agents/claude.json +5 -5
  871. package/locales/en/.agents/ui_a11y_smoke_review/agents/copilot.json +5 -5
  872. package/locales/en/.agents/ui_a11y_smoke_review/agents/gemini.json +5 -5
  873. package/locales/en/.agents/ui_a11y_smoke_review/agents/openai.yaml +3 -3
  874. package/locales/en/.agents/ui_a11y_smoke_review/agents/qwen.json +5 -5
  875. package/locales/en/.agents/ui_a11y_smoke_review/agents/skill.yaml +5 -5
  876. package/locales/en/.agents/ui_inventory/SKILL.md +271 -44
  877. package/locales/en/.agents/ui_inventory/agents/claude.json +2 -2
  878. package/locales/en/.agents/ui_inventory/agents/copilot.json +2 -2
  879. package/locales/en/.agents/ui_inventory/agents/gemini.json +2 -2
  880. package/locales/en/.agents/ui_inventory/agents/openai.yaml +1 -1
  881. package/locales/en/.agents/ui_inventory/agents/qwen.json +2 -2
  882. package/locales/en/.agents/ui_inventory/agents/skill.yaml +2 -2
  883. package/locales/en/.agents/ux_discovery/SKILL.md +199 -33
  884. package/locales/en/.agents/ux_discovery/agents/claude.json +2 -2
  885. package/locales/en/.agents/ux_discovery/agents/copilot.json +2 -2
  886. package/locales/en/.agents/ux_discovery/agents/gemini.json +2 -2
  887. package/locales/en/.agents/ux_discovery/agents/openai.yaml +1 -1
  888. package/locales/en/.agents/ux_discovery/agents/qwen.json +2 -2
  889. package/locales/en/.agents/ux_discovery/agents/skill.yaml +2 -2
  890. package/locales/en/.agents/ux_spec/SKILL.md +276 -50
  891. package/locales/en/.agents/ux_spec/agents/claude.json +2 -2
  892. package/locales/en/.agents/ux_spec/agents/copilot.json +2 -2
  893. package/locales/en/.agents/ux_spec/agents/gemini.json +2 -2
  894. package/locales/en/.agents/ux_spec/agents/openai.yaml +1 -1
  895. package/locales/en/.agents/ux_spec/agents/qwen.json +2 -2
  896. package/locales/en/.agents/ux_spec/agents/skill.yaml +2 -2
  897. package/locales/en/.agents/wix_iframe_sdk/SKILL.md +271 -42
  898. package/locales/en/.agents/wix_iframe_sdk/agents/claude.json +4 -5
  899. package/locales/en/.agents/wix_iframe_sdk/agents/copilot.json +4 -5
  900. package/locales/en/.agents/wix_iframe_sdk/agents/gemini.json +4 -5
  901. package/locales/en/.agents/wix_iframe_sdk/agents/openai.yaml +3 -3
  902. package/locales/en/.agents/wix_iframe_sdk/agents/qwen.json +4 -5
  903. package/locales/en/.agents/wix_iframe_sdk/agents/skill.yaml +4 -5
  904. package/locales/en/.agents/wix_self_hosted_embedded_script/SKILL.md +611 -88
  905. package/locales/en/.agents/wix_self_hosted_embedded_script/agents/claude.json +2 -2
  906. package/locales/en/.agents/wix_self_hosted_embedded_script/agents/copilot.json +2 -2
  907. package/locales/en/.agents/wix_self_hosted_embedded_script/agents/gemini.json +2 -2
  908. package/locales/en/.agents/wix_self_hosted_embedded_script/agents/openai.yaml +1 -1
  909. package/locales/en/.agents/wix_self_hosted_embedded_script/agents/qwen.json +2 -2
  910. package/locales/en/.agents/wix_self_hosted_embedded_script/agents/skill.yaml +2 -2
  911. package/locales/en/AGENTS.yaml +2 -0
  912. package/locales/en/agents/architect.md +1 -1
  913. package/locales/en/agents/conductor.md +50 -0
  914. package/locales/en/agents/devops.md +34 -0
  915. package/locales/en/agents/orchestrator.claude.json +2 -0
  916. package/locales/en/agents/orchestrator.copilot.json +2 -0
  917. package/locales/en/agents/orchestrator.gemini.json +2 -0
  918. package/locales/en/agents/orchestrator.openai.yaml +2 -0
  919. package/locales/en/agents/orchestrator.qwen.json +2 -0
  920. package/locales/en/agents/product_manager.md +1 -5
  921. package/locales/en/agents/reviewer.md +69 -64
  922. package/locales/en/agents/senior_full_stack.md +2 -2
  923. package/locales/en/agents/tester.md +50 -11
  924. package/locales/en/agents/ux_ui_designer.md +3 -5
  925. package/package.json +1 -1
@@ -1,397 +1,585 @@
1
- ---
2
- name: dev_reference_snippets
3
- description: A single file with snippets and anti-examples (do/don’t) for Senior Full Stack: TDD, API, validation, errors, logging, React, state (Zustand/RTK), security, legacy React 15.3 (Wix), DoD scripts.
4
- ---
5
-
6
- # Skill: Dev Reference Snippets (Do/Don't)
7
-
8
- ## Goal
9
- Provide copy-paste standards and anti-patterns so that the code is consistent, testable (TDD), safe and easy to maintain.
10
-
11
- ---
12
-
13
- ## 1) TDD: RED → GREEN → REFACTOR (example)
14
-
15
- ### ✅ DO: test first (Vitest)
16
- ```ts
17
- // src/lib/slugify.test.ts
18
- import { describe, it, expect } from "vitest";
19
- import { slugify } from "./slugify";
20
-
21
- describe("slugify", () => {
22
- it("makes lowercase and replaces spaces with hyphens", () => {
23
- expect(slugify("Hello World")).toBe("hello-world");
24
- });
25
-
26
- it("removes non-alphanumeric characters", () => {
27
- expect(slugify("Hi, John!")).toBe("hi-john");
28
- });
29
-
30
- it("collapses multiple spaces", () => {
31
- expect(slugify(" Hello World ")).toBe("hello-world");
32
- });
33
- });
34
- ```
35
-
36
- ### ✅ GREEN: minimal implementation
37
- ```ts
38
- // src/lib/slugify.ts
39
- export function slugify(input: string): string {
40
- return input
41
- .trim()
42
- .toLowerCase()
43
- .replace(/[^a-z0-9\s-]/g, "")
44
- .replace(/\s+/g, "-");
45
- }
46
- ```
47
-
48
- ### ❌ DON'T: “code first, tests later” + testing details
49
- ```ts
50
- // Плохо: тест проверяет внутренние переменные/шаги реализации, а не поведение.
51
- // Итог: тесты ломаются при рефакторинге без изменения поведения.
52
- ```
53
-
54
- ---
55
-
56
- ## 2) API: layers Route → Controller → Service → Repo (Express)
57
-
58
- ### DO: project structure (example)
59
- ```txt
60
- src/
61
- http/
62
- routes/
63
- controllers/
64
- middleware/
65
- domain/
66
- services/
67
- models/
68
- data/
69
- repos/
70
- lib/
71
- ```
72
-
73
- ### ✅ DO: Routes are thin, logic is in controller/service
74
- ```ts
75
- // src/http/routes/users.routes.ts
76
- import { Router } from "express";
77
- import { createUser } from "../controllers/users.create";
78
- import { requireAuth } from "../middleware/requireAuth";
79
-
80
- export const usersRouter = Router();
81
-
82
- usersRouter.post("/", requireAuth, createUser);
83
- ```
84
-
85
- ### DON'T: everything in one route file
86
- ```ts
87
- // Плохо: в routes файл запихана валидация, бизнес-логика и доступ к БД.
88
- // Тестирование и переиспользование становится болью.
89
- ```
90
-
91
- ---
92
-
93
- ## 3) Validation at the boundary + safe errors (Zod)
94
-
95
- ### ✅ DO: parse on input, safe error handling
96
- ```ts
97
- // src/http/controllers/users.create.ts
98
- import { z } from "zod";
99
- import type { Request, Response, NextFunction } from "express";
100
- import { usersService } from "../../domain/services/users.service";
101
- import { AppError } from "../middleware/errors";
102
-
103
- const CreateUserSchema = z.object({
104
- email: z.string().email(),
105
- name: z.string().min(1).max(100),
106
- });
107
-
108
- export async function createUser(req: Request, res: Response, next: NextFunction) {
109
- try {
110
- const input = CreateUserSchema.parse(req.body); // boundary validation
111
- const user = await usersService.create(input);
112
- res.status(201).json({ id: user.id });
113
- } catch (err) {
114
- // zod errors -> 422
115
- next(err instanceof z.ZodError ? AppError.validation(err.flatten()) : err);
116
- }
117
- }
118
- ```
119
-
120
- ### ❌ DON'T: trust req.body
121
- ```ts
122
- // Плохо: нет валидации, можно словить мусор/инъекции/500
123
- export async function createUser(req: any, res: any) {
124
- const user = await usersService.create(req.body);
125
- res.json(user);
126
- }
127
- ```
128
-
129
- ---
130
-
131
- ## 4) Centralized error handler (single error format)
132
-
133
- ### ✅ DO: AppError + single format { error_code, message, details? }
134
- ```ts
135
- // src/http/middleware/errors.ts
136
- import type { ErrorRequestHandler } from "express";
137
-
138
- export class AppError extends Error {
139
- constructor(
140
- public readonly status: number,
141
- public readonly code: string,
142
- message: string,
143
- public readonly details?: unknown
144
- ) {
145
- super(message);
146
- }
147
-
148
- static validation(details: unknown) {
149
- return new AppError(422, "VALIDATION_ERROR", "Invalid input", details);
150
- }
151
-
152
- static forbidden() {
153
- return new AppError(403, "FORBIDDEN", "Not enough permissions");
154
- }
155
- }
156
-
157
- export const errorHandler: ErrorRequestHandler = (err, _req, res, _next) => {
158
- const isApp = err instanceof AppError;
159
- const status = isApp ? err.status : 500;
160
- const code = isApp ? err.code : "INTERNAL_ERROR";
161
-
162
- // Без утечек: для 500 — нейтральное сообщение
163
- const message = status === 500 ? "Unexpected error" : err.message;
164
-
165
- res.status(status).json({
166
- error_code: code,
167
- message,
168
- ...(isApp && err.details ? { details: err.details } : {}),
169
- });
170
- };
171
- ```
172
-
173
- ### ❌ DON'T: give the entire “err” (stack/SQL/secrets leak)
174
- ```ts
175
- // Плохо: утечка внутренностей и нестабильный контракт
176
- res.status(500).json({ err });
177
- ```
178
-
179
- ---
180
-
181
- ## 5) Logging: request_id, structured logs, prohibition of PII/secrets
182
-
183
- ### DO: request_id middleware + structured logs
184
- ```ts
185
- // src/http/middleware/requestContext.ts
186
- import { randomUUID } from "node:crypto";
187
- import type { RequestHandler } from "express";
188
-
189
- export const requestContext: RequestHandler = (req, res, next) => {
190
- const id = req.header("x-request-id") ?? randomUUID();
191
- res.setHeader("x-request-id", id);
192
- (req as any).requestId = id;
193
- next();
194
- };
195
- ```
196
-
197
- ```ts
198
- // usage example
199
- logger.info(
200
- { request_id: (req as any).requestId, user_id: ctx.user?.id },
201
- "user_created"
202
- );
203
- ```
204
-
205
- ### DON'T: log the entire body (passwords/tokens/PII there)
206
- ```ts
207
- // Плохо: утечка секретов в логи
208
- logger.info({ body: req.body }, "incoming_request");
209
- ```
210
-
211
- ---
212
-
213
- ## 6) React: loading/empty/error/success (TanStack Query)
214
-
215
- ### ✅ DO: explicit states
216
- ```tsx
217
- import { useQuery } from "@tanstack/react-query";
218
-
219
- type User = { id: string; name: string };
220
-
221
- async function fetchUsers(): Promise<User[]> {
222
- const r = await fetch("/api/users");
223
- if (!r.ok) throw new Error("Failed to load users");
224
- return r.json();
225
- }
226
-
227
- export function UsersList() {
228
- const q = useQuery({ queryKey: ["users"], queryFn: fetchUsers });
229
-
230
- if (q.isLoading) return <div aria-busy="true">Loading…</div>;
231
- if (q.isError) return <div role="alert">Error: {String(q.error)}</div>;
232
- if (!q.data || q.data.length === 0) return <div>No users yet</div>;
233
-
234
- return (
235
- <ul>
236
- {q.data.map((u) => (
237
- <li key={u.id}>{u.name}</li>
238
- ))}
239
- </ul>
240
- );
241
- }
242
- ```
243
-
244
- ### ❌ DON'T: fetch inside render / no error/empty
245
- ```tsx
246
- // Плохо: нет обработки ошибок/пустоты, легко словить гонки и “мерцания”.
247
- ```
248
-
249
- ---
250
-
251
- ## 7) Zustand: small domain stores + selectors
252
-
253
- ### ✅ DO: domain store + selector
254
- ```ts
255
- import { create } from "zustand";
256
-
257
- type AuthState = {
258
- token: string | null;
259
- setToken: (t: string | null) => void;
260
- };
261
-
262
- export const useAuthStore = create<AuthState>((set) => ({
263
- token: null,
264
- setToken: (t) => set({ token: t }),
265
- }));
266
-
267
- // usage: подписываемся только на нужное
268
- const token = useAuthStore((s) => s.token);
269
- ```
270
-
271
- ### ❌ DON'T: “god-store” for the entire application
272
- ```ts
273
- // Плохо: один огромный store с десятками полей и действий → лишние ререндеры и каша доменов.
274
- ```
275
-
276
- ---
277
-
278
- ## 8) RTK: slices by domain + normalization (EntityAdapter)
279
-
280
- ### ✅ DO: entityAdapter for user list
281
- ```ts
282
- // src/state/usersSlice.ts
283
- import { createSlice, createAsyncThunk, createEntityAdapter } from "@reduxjs/toolkit";
284
- import type { RootState } from "./store";
285
-
286
- type User = { id: string; name: string };
287
-
288
- export const usersAdapter = createEntityAdapter<User>();
289
-
290
- export const fetchUsers = createAsyncThunk("users/fetch", async () => {
291
- const r = await fetch("/api/users");
292
- if (!r.ok) throw new Error("Failed to load users");
293
- return (await r.json()) as User[];
294
- });
295
-
296
- const slice = createSlice({
297
- name: "users",
298
- initialState: usersAdapter.getInitialState({ status: "idle" as "idle" | "loading" | "failed" }),
299
- reducers: {},
300
- extraReducers: (b) => {
301
- b.addCase(fetchUsers.pending, (s) => {
302
- s.status = "loading";
303
- });
304
- b.addCase(fetchUsers.fulfilled, (s, a) => {
305
- s.status = "idle";
306
- usersAdapter.setAll(s, a.payload);
307
- });
308
- b.addCase(fetchUsers.rejected, (s) => {
309
- s.status = "failed";
310
- });
311
- },
312
- });
313
-
314
- export const usersReducer = slice.reducer;
315
-
316
- export const usersSelectors = usersAdapter.getSelectors<RootState>((st) => st.users);
317
- ```
318
-
319
- ### ❌ DON'T: side effects in components + manual “sheets” of reducers
320
- ```ts
321
- // Плохо: компонент сам дергает fetch, сам хранит кэш, сам нормализует.
322
- // Итог: непредсказуемость и дублирование.
323
- ```
324
-
325
- ---
326
-
327
- ## 9) Security: authz on the server (don't trust the client)
328
-
329
- ### ✅ DO: checking rights on the server
330
- ```ts
331
- import { AppError } from "../http/middleware/errors";
332
-
333
- export function requireRole(user: { role: string } | null, role: string) {
334
- if (!user) throw new AppError(401, "UNAUTHORIZED", "Authentication required");
335
- if (user.role !== role) throw AppError.forbidden();
336
- }
337
- ```
338
-
339
- ### ❌ DON'T: “if the button is hidden, it means it’s safe”
340
- ```ts
341
- // Плохо: безопасность только на UI.
342
- // Сервер обязан проверять авторизацию/права.
343
- ```
344
-
345
- ---
346
-
347
- ## 10) Legacy: React 15.3 (Wix iFrame) + DoD scripts
348
-
349
- ### DO: React 15.3 class component + lifecycle
350
- ```jsx
351
- class Widget extends React.Component {
352
- constructor(props) {
353
- super(props);
354
- this.state = { loading: true, data: null, error: null };
355
- }
356
-
357
- componentDidMount() {
358
- this.load();
359
- }
360
-
361
- load() {
362
- apiFetch()
363
- .then((data) => this.setState({ loading: false, data: data }))
364
- .catch(() => this.setState({ loading: false, error: "Failed" }));
365
- }
366
-
367
- render() {
368
- if (this.state.loading) return React.createElement("div", null, "Loading…");
369
- if (this.state.error) return React.createElement("div", { role: "alert" }, this.state.error);
370
- return React.createElement("div", null, "OK");
371
- }
372
- }
373
- ```
374
-
375
- ### ❌ DON'T: hooks/modern APIs (not allowed in React 15.3)
376
- ```tsx
377
- // Нельзя в React 15.3
378
- // function Widget(){ const [x,setX]=useState(...) }
379
- ```
380
-
381
- ### ✅ DO: DoD scripts (package.json)
382
- ```json
383
- {
384
- "scripts": {
385
- "dev": "node ./src/index.js",
386
- "test": "vitest",
387
- "test:coverage": "vitest --coverage",
388
- "lint": "biome lint .",
389
- "format": "biome format . --write"
390
- }
391
- }
392
- ```
393
-
394
- ### DON'T: mix formatters/linters without reason
395
- ```txt
396
- // Плохо: eslint + prettier + biome одновременно без согласованных правил → вечные конфликты и шум в PR.
397
- ```
1
+ ---
2
+ name: dev_reference_snippets
3
+ description: Reference snippets and DO/DON'T patterns for Senior Full Stack: TDD (Vitest), Express API (Route?Controller?Service?Repo), validation (Zod), centralized errors, structured logging, React + TanStack Query, Zustand, RTK (EntityAdapter), server-side authorization, legacy React 15.3 (Wix). Use this skill when writing any production code in Node.js/TypeScript/React ? as a source of copy-paste reference patterns and a checklist for code. Also use it for questions like "how to do X correctly" for any of the listed patterns.
4
+ ---
5
+
6
+ # Skill: Dev Reference Snippets (Do/Don't)
7
+
8
+ Copy-paste references and anti-patterns for consistent, tested, secure code.
9
+
10
+ **Sections:**
11
+ 1. [TDD: RED → GREEN → REFACTOR](#1-tdd)
12
+ 2. [API: Route → Controller → Service → Repo](#2-api-layers)
13
+ 3. [Validation on boundary (Zod)](#3-validation)
14
+ 4. [Centralized error handler](#4-error-handler)
15
+ 5. [Logging: request_id + structure](#5-logging)
16
+ 6. [React: loading/empty/error/success](#6-react-states)
17
+ 7. [Zustand: domain stores](#7-zustand)
18
+ 8. [RTK: slices + EntityAdapter](#8-rtk)
19
+ 9. [Authorization on server](#9-authorization)
20
+ 10. [Legacy React 15.3 (Wix)](#10-legacy-react-153)
21
+ 11. [DoD Scripts](#11-dod-scripts)
22
+
23
+ ---
24
+
25
+ ## 1. TDD
26
+
27
+ ### ✅ DO: test first (Vitest)
28
+ ```ts
29
+ // src/lib/slugify.test.ts
30
+ import { describe, it, expect } from "vitest";
31
+ import { slugify } from "./slugify";
32
+
33
+ describe("slugify", () => {
34
+ it("lowercases and replaces spaces with hyphens", () => {
35
+ expect(slugify("Hello World")).toBe("hello-world");
36
+ });
37
+ it("removes non-alphanumeric characters", () => {
38
+ expect(slugify("Hi, John!")).toBe("hi-john");
39
+ });
40
+ it("collapses multiple spaces", () => {
41
+ expect(slugify(" Hello World ")).toBe("hello-world");
42
+ });
43
+ });
44
+ ```
45
+
46
+ ### ✅ GREEN: minimal implementation
47
+ ```ts
48
+ // src/lib/slugify.ts
49
+ export function slugify(input: string): string {
50
+ return input
51
+ .trim()
52
+ .toLowerCase()
53
+ .replace(/[^a-z0-9\s-]/g, "")
54
+ .replace(/\s+/g, "-");
55
+ }
56
+ ```
57
+
58
+ ### DON'T: test details implementation
59
+ ```ts
60
+ // Bad: test checks internal variables, and not behavior.
61
+ // Will break with refactoring without changes behavior — fragile tests.
62
+ ```
63
+
64
+ **Rule**: test *what it does*, not *how it is implemented inside*.
65
+
66
+ ---
67
+
68
+ ## 2. API-layers
69
+
70
+ ### ✅ DO: structure project
71
+ ```
72
+ src/
73
+ http/
74
+ routes/ ? routing only
75
+ controllers/ ← I/O: parse input, call service, format response
76
+ middleware/ ← auth, errors, request-context
77
+ domain/
78
+ services/ ← business logic
79
+ models/ ← types domain
80
+ data/
81
+ repos/ ← SQL/ORM, no business logic
82
+ lib/ utilities without dependencies
83
+ ```
84
+
85
+ ### ? DO: thin route
86
+ ```ts
87
+ // src/http/routes/users.routes.ts
88
+ import { Router } from "express";
89
+ import { createUser, getUser } from "../controllers/users.controller";
90
+ import { requireAuth } from "../middleware/requireAuth";
91
+
92
+ export const usersRouter = Router();
93
+ usersRouter.post("/", requireAuth, createUser);
94
+ usersRouter.get("/:id", requireAuth, getUser);
95
+ ```
96
+
97
+ ### ✅ DO: controller — only I/O
98
+ ```ts
99
+ // src/http/controllers/users.controller.ts
100
+ import { z } from "zod";
101
+ import type { Request, Response, NextFunction } from "express";
102
+ import { usersService } from "../../domain/services/users.service";
103
+ import { AppError } from "../middleware/errors";
104
+
105
+ const CreateUserSchema = z.object({
106
+ email: z.string().email(),
107
+ name: z.string().min(1).max(100),
108
+ });
109
+
110
+ export async function createUser(req: Request, res: Response, next: NextFunction) {
111
+ try {
112
+ const input = CreateUserSchema.parse(req.body);
113
+ const user = await usersService.create(input);
114
+ res.status(201).json({ id: user.id });
115
+ } catch (err) {
116
+ next(err instanceof z.ZodError ? AppError.validation(err.flatten()) : err);
117
+ }
118
+ }
119
+ ```
120
+
121
+ ### ✅ DO: service — only business logic, without HTTP
122
+ ```ts
123
+ // src/domain/services/users.service.ts
124
+ import { usersRepo } from "../../data/repos/users.repo";
125
+ import { AppError } from "../../http/middleware/errors";
126
+
127
+ export const usersService = {
128
+ async create(input: { email: string; name: string }) {
129
+ const existing = await usersRepo.findByEmail(input.email);
130
+ if (existing) throw new AppError(409, "CONFLICT", "Email already in use");
131
+ return usersRepo.insert(input);
132
+ },
133
+ };
134
+ ```
135
+
136
+ ### DON'T: everything in one file
137
+ ```ts
138
+ // Bad: routes, validation, business logic, and SQL in one file.
139
+ // Cannot test service without HTTP, cannot reuse logic.
140
+ ```
141
+
142
+ ---
143
+
144
+ ## 3. Validation
145
+
146
+ ### ? DO: Zod at the boundary + parse (throws on invalid data)
147
+ ```ts
148
+ const CreateUserSchema = z.object({
149
+ email: z.string().email(),
150
+ name: z.string().min(1).max(100),
151
+ role: z.enum(["admin", "user"]).default("user"),
152
+ });
153
+
154
+ // In controller:
155
+ const input = CreateUserSchema.parse(req.body); // ? valid type guaranteed further
156
+ ```
157
+
158
+ ### ? DO: safeParse for non-throwing handling
159
+ ```ts
160
+ const result = CreateUserSchema.safeParse(req.body);
161
+ if (!result.success) {
162
+ return next(AppError.validation(result.error.flatten()));
163
+ }
164
+ const input = result.data; // type is inferred automatically
165
+ ```
166
+
167
+ ### ❌ DON'T: trust req.body without validation
168
+ ```ts
169
+ // Bad: any garbage, extra-field injection, 500 at runtime ? all of this is waiting ahead.
170
+ export async function createUser(req: any, res: any) {
171
+ const user = await usersService.create(req.body);
172
+ res.json(user);
173
+ }
174
+ ```
175
+
176
+ ---
177
+
178
+ ## 4. Error Handler
179
+
180
+ ### ✅ DO: AppError + unified format answer
181
+ ```ts
182
+ // src/http/middleware/errors.ts
183
+ import type { ErrorRequestHandler } from "express";
184
+
185
+ export class AppError extends Error {
186
+ constructor(
187
+ public readonly status: number,
188
+ public readonly code: string,
189
+ message: string,
190
+ public readonly details?: unknown
191
+ ) {
192
+ super(message);
193
+ this.name = "AppError";
194
+ }
195
+
196
+ static validation(details: unknown) {
197
+ return new AppError(422, "VALIDATION_ERROR", "Invalid input", details);
198
+ }
199
+
200
+ static notFound(resource = "Resource") {
201
+ return new AppError(404, "NOT_FOUND", `${resource} not found`);
202
+ }
203
+
204
+ static forbidden() {
205
+ return new AppError(403, "FORBIDDEN", "Not enough permissions");
206
+ }
207
+ }
208
+
209
+ export const errorHandler: ErrorRequestHandler = (err, _req, res, _next) => {
210
+ const isApp = err instanceof AppError;
211
+ const status = isApp ? err.status : 500;
212
+ const code = isApp ? err.code : "INTERNAL_ERROR";
213
+ // ? For 500 ? neutral message, stack does not leak to the client
214
+ const message = status === 500 ? "Unexpected error" : err.message;
215
+
216
+ res.status(status).json({
217
+ error_code: code,
218
+ message,
219
+ ...(isApp && err.details ? { details: err.details } : {}),
220
+ });
221
+ };
222
+ ```
223
+
224
+ ### ✅ DO: connect last middleware
225
+ ```ts
226
+ // src/app.ts
227
+ app.use(requestContext);
228
+ app.use("/api/users", usersRouter);
229
+ app.use(errorHandler); // ← last
230
+ ```
231
+
232
+ ### DON'T: return err entirely
233
+ ```ts
234
+ // Bad: leak stack traces, SQL errors, environment variables ? directly in the client response.
235
+ res.status(500).json({ err });
236
+ ```
237
+
238
+ ---
239
+
240
+ ## 5. Logging
241
+
242
+ ### ✅ DO: request_id + structured logs
243
+ ```ts
244
+ // src/http/middleware/requestContext.ts
245
+ import { randomUUID } from "node:crypto";
246
+ import type { RequestHandler } from "express";
247
+
248
+ export const requestContext: RequestHandler = (req, res, next) => {
249
+ const id = req.header("x-request-id") ?? randomUUID();
250
+ res.setHeader("x-request-id", id);
251
+ (req as any).requestId = id;
252
+ next();
253
+ };
254
+ ```
255
+
256
+ ```ts
257
+ // Usage in service/controller
258
+ logger.info(
259
+ { request_id: (req as any).requestId, user_id: ctx.user?.id, action: "user_created" },
260
+ "User created successfully"
261
+ );
262
+
263
+ // For errors — warn/error with context
264
+ logger.error(
265
+ { request_id: id, error_code: err.code },
266
+ "Request failed"
267
+ );
268
+ ```
269
+
270
+ ### ❌ DON'T: log body entirely
271
+ ```ts
272
+ // Bad: passwords, tokens, PII ? everything directly in the logs.
273
+ logger.info({ body: req.body }, "incoming_request");
274
+
275
+ // ❌ Also bad:
276
+ logger.info({ user }); // can contain password_hash, secrets and etc.etc.
277
+ ```
278
+
279
+ **Rule**: log only IDs, codes, statuses. Never raw request bodies.
280
+
281
+ ---
282
+
283
+ ## 6. React: States request
284
+
285
+ ### ✅ DO: TanStack Query — explicit loading/empty/error/success
286
+ ```tsx
287
+ import { useQuery } from "@tanstack/react-query";
288
+
289
+ type User = { id: string; name: string };
290
+
291
+ async function fetchUsers(): Promise<User[]> {
292
+ const r = await fetch("/api/users");
293
+ if (!r.ok) throw new Error(`HTTP ${r.status}`);
294
+ return r.json();
295
+ }
296
+
297
+ export function UsersList() {
298
+ const q = useQuery({ queryKey: ["users"], queryFn: fetchUsers });
299
+
300
+ if (q.isLoading) return <div aria-busy="true" role="status">Loading…</div>;
301
+ if (q.isError) return <div role="alert">Error: {String(q.error)}</div>;
302
+ if (!q.data?.length) return <div>Users for now no</div>;
303
+
304
+ return (
305
+ <ul>
306
+ {q.data.map(u => <li key={u.id}>{u.name}</li>)}
307
+ </ul>
308
+ );
309
+ }
310
+ ```
311
+
312
+ ### ? DO: mutation with optimistic update
313
+ ```tsx
314
+ import { useMutation, useQueryClient } from "@tanstack/react-query";
315
+
316
+ export function useDeleteUser() {
317
+ const qc = useQueryClient();
318
+ return useMutation({
319
+ mutationFn: (id: string) =>
320
+ fetch(`/api/users/${id}`, { method: "DELETE" }).then(r => {
321
+ if (!r.ok) throw new Error("Delete failed");
322
+ }),
323
+ onSuccess: () => qc.invalidateQueries({ queryKey: ["users"] }),
324
+ });
325
+ }
326
+ ```
327
+
328
+ ### ❌ DON'T: fetch inside component without handling states
329
+ ```tsx
330
+ // Bad: race conditions, flicker, no loading/error, request leak on unmount.
331
+ function UsersList() {
332
+ const [users, setUsers] = useState([]);
333
+ useEffect(() => {
334
+ fetch("/api/users").then(r => r.json()).then(setUsers);
335
+ }, []);
336
+ return <ul>{users.map(u => <li key={u.id}>{u.name}</li>)}</ul>;
337
+ }
338
+ ```
339
+
340
+ ---
341
+
342
+ ## 7. Zustand
343
+
344
+ ### ✅ DO: domain store + selectors
345
+ ```ts
346
+ import { create } from "zustand";
347
+ import { devtools } from "zustand/middleware";
348
+
349
+ type AuthState = {
350
+ token: string | null;
351
+ userId: string | null;
352
+ setAuth: (token: string, userId: string) => void;
353
+ clearAuth: () => void;
354
+ };
355
+
356
+ export const useAuthStore = create<AuthState>()(
357
+ devtools(
358
+ (set) => ({
359
+ token: null,
360
+ userId: null,
361
+ setAuth: (token, userId) => set({ token, userId }, false, "setAuth"),
362
+ clearAuth: () => set({ token: null, userId: null }, false, "clearAuth"),
363
+ }),
364
+ { name: "AuthStore" }
365
+ )
366
+ );
367
+
368
+ // Selector — subscription only on needed field (no extra re-renders)
369
+ const token = useAuthStore(s => s.token);
370
+ const isAuthed = useAuthStore(s => s.token !== null);
371
+ ```
372
+
373
+ ### ❌ DON'T: one "god store" on everything
374
+ ```ts
375
+ // Bad: auth + cart + ui + settings in one store.
376
+ // Result: any change = rerender of all subscribers.
377
+ // Rule: one store = one domain.
378
+ ```
379
+
380
+ ---
381
+
382
+ ## 8. RTK
383
+
384
+ ### ✅ DO: slice + createAsyncThunk + EntityAdapter
385
+ ```ts
386
+ // src/state/usersSlice.ts
387
+ import { createSlice, createAsyncThunk, createEntityAdapter } from "@reduxjs/toolkit";
388
+ import type { RootState } from "./store";
389
+
390
+ type User = { id: string; name: string };
391
+
392
+ const usersAdapter = createEntityAdapter<User>();
393
+
394
+ export const fetchUsers = createAsyncThunk("users/fetch", async () => {
395
+ const r = await fetch("/api/users");
396
+ if (!r.ok) throw new Error("Failed to load users");
397
+ return (await r.json()) as User[];
398
+ });
399
+
400
+ const slice = createSlice({
401
+ name: "users",
402
+ initialState: usersAdapter.getInitialState({
403
+ status: "idle" as "idle" | "loading" | "failed",
404
+ }),
405
+ reducers: {},
406
+ extraReducers: b => {
407
+ b.addCase(fetchUsers.pending, s => { s.status = "loading"; });
408
+ b.addCase(fetchUsers.fulfilled, (s, a) => {
409
+ s.status = "idle";
410
+ usersAdapter.setAll(s, a.payload);
411
+ });
412
+ b.addCase(fetchUsers.rejected, s => { s.status = "failed"; });
413
+ },
414
+ });
415
+
416
+ export const usersReducer = slice.reducer;
417
+ export const usersSelectors = usersAdapter.getSelectors<RootState>(st => st.users);
418
+ ```
419
+
420
+ ### ✅ DO: connect reducer in store
421
+ ```ts
422
+ // src/state/store.ts
423
+ import { configureStore } from "@reduxjs/toolkit";
424
+ import { usersReducer } from "./usersSlice";
425
+
426
+ export const store = configureStore({
427
+ reducer: { users: usersReducer },
428
+ });
429
+
430
+ export type RootState = ReturnType<typeof store.getState>;
431
+ export type AppDispatch = typeof store.dispatch;
432
+ ```
433
+
434
+ ### ? DON'T: side effects in the component + manual reducers
435
+ ```ts
436
+ // Bad: fetch in component, manual switch/case, normalization by hand.
437
+ // Result: duplication, unpredictability, tests require real HTTP.
438
+ ```
439
+
440
+ ---
441
+
442
+ ## 9. Authorization
443
+
444
+ ### ✅ DO: checking rights on the server
445
+ ```ts
446
+ // src/lib/authz.ts
447
+ import { AppError } from "../http/middleware/errors";
448
+
449
+ type Principal = { id: string; role: "admin" | "user" } | null;
450
+
451
+ export function requireRole(principal: Principal, role: "admin" | "user") {
452
+ if (!principal) throw new AppError(401, "UNAUTHORIZED", "Authentication required");
453
+ if (principal.role !== role) throw AppError.forbidden();
454
+ }
455
+
456
+ // Usage in service:
457
+ export const postsService = {
458
+ async delete(id: string, actor: Principal) {
459
+ requireRole(actor, "admin"); // ✅ server always checks
460
+ return postsRepo.delete(id);
461
+ },
462
+ };
463
+ ```
464
+
465
+ ### ✅ DO: requireAuth middleware
466
+ ```ts
467
+ // src/http/middleware/requireAuth.ts
468
+ import type { RequestHandler } from "express";
469
+ import { verifyToken } from "../../lib/jwt";
470
+ import { AppError } from "./errors";
471
+
472
+ export const requireAuth: RequestHandler = (req, _res, next) => {
473
+ const header = req.header("Authorization");
474
+ if (!header?.startsWith("Bearer ")) return next(new AppError(401, "UNAUTHORIZED", "Missing token"));
475
+ try {
476
+ (req as any).principal = verifyToken(header.slice(7));
477
+ next();
478
+ } catch {
479
+ next(new AppError(401, "UNAUTHORIZED", "Invalid token"));
480
+ }
481
+ };
482
+ ```
483
+
484
+ ### ❌ DON'T: security only on UI
485
+ ```ts
486
+ // Bad: hide the "Delete" button for non-admins and treat this as protection.
487
+ // Any fetch("/api/posts/1", { method: "DELETE" }) bypasses this.
488
+ // Server Must check permissions independently from UI.
489
+ ```
490
+
491
+ ---
492
+
493
+ ## 10. Legacy React 15.3 (Wix)
494
+
495
+ ### ✅ DO: class component + lifecycle
496
+ ```jsx
497
+ // ❗ Only ES5/ES6 classes, no hooks
498
+ class Widget extends React.Component {
499
+ constructor(props) {
500
+ super(props);
501
+ this.state = { loading: true, data: null, error: null };
502
+ this.handleRetry = this.handleRetry.bind(this);
503
+ }
504
+
505
+ componentDidMount() {
506
+ this.load();
507
+ }
508
+
509
+ componentWillUnmount() {
510
+ this._unmounted = true; // prevent setState after unmount
511
+ }
512
+
513
+ load() {
514
+ apiFetch()
515
+ .then(data => {
516
+ if (!this._unmounted) this.setState({ loading: false, data });
517
+ })
518
+ .catch(() => {
519
+ if (!this._unmounted) this.setState({ loading: false, error: "Failed to load" });
520
+ });
521
+ }
522
+
523
+ handleRetry() {
524
+ this.setState({ loading: true, error: null }, () => this.load());
525
+ }
526
+
527
+ render() {
528
+ const { loading, data, error } = this.state;
529
+ if (loading) return React.createElement("div", null, "Loading…");
530
+ if (error) return React.createElement("div", { role: "alert" },
531
+ error,
532
+ React.createElement("button", { onClick: this.handleRetry }, "Retry")
533
+ );
534
+ return React.createElement("div", null, JSON.stringify(data));
535
+ }
536
+ }
537
+ ```
538
+
539
+ ### ? DON'T: hooks and modern APIs in React 15.3
540
+ ```tsx
541
+ // ❌ Cannot — hooks appeared in React 16.8
542
+ function Widget() { const [x, setX] = useState(0); }
543
+ // ❌ Cannot — React.memo appeared in React 16.6
544
+ export default React.memo(Widget);
545
+ // ❌ Cannot — fragments <>...</> appeared in React 16.2
546
+ ```
547
+
548
+ ---
549
+
550
+ ## 11. DoD Scripts
551
+
552
+ ### ✅ DO: standard package.json
553
+ ```json
554
+ {
555
+ "scripts": {
556
+ "dev": "tsx watch ./src/index.ts",
557
+ "build": "tsc -p tsconfig.build.json",
558
+ "test": "vitest run",
559
+ "test:watch": "vitest",
560
+ "test:coverage": "vitest run --coverage",
561
+ "lint": "biome lint .",
562
+ "lint:fix": "biome lint . --apply",
563
+ "format": "biome format . --write",
564
+ "typecheck": "tsc --noEmit",
565
+ "check": "npm run typecheck && npm run lint && npm run test"
566
+ }
567
+ }
568
+ ```
569
+
570
+ ### ✅ DO: pre-commit hook (husky + lint-staged)
571
+ ```json
572
+ // package.json
573
+ {
574
+ "lint-staged": {
575
+ "*.{ts,tsx}": ["biome lint --apply", "biome format --write"]
576
+ }
577
+ }
578
+ ```
579
+
580
+ ### ❌ DON'T: mix eslint + prettier + biome
581
+ ```
582
+ // Bad: three tools with conflicting rules ? constant noise in PR,
583
+ // different results on different developers' machines.
584
+ // Choose one: Biome (quick, all-in-one) or ESLint + Prettier.
585
+ ```