code-ai-installer 1.1.10 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (882) hide show
  1. package/.agents/a11y_baseline/agents/claude.json +18 -0
  2. package/.agents/a11y_baseline/agents/copilot.json +18 -0
  3. package/.agents/a11y_baseline/agents/gemini.json +18 -0
  4. package/.agents/a11y_baseline/agents/openai.yaml +8 -0
  5. package/.agents/a11y_baseline/agents/qwen.json +18 -0
  6. package/.agents/a11y_baseline/agents/skill.yaml +22 -0
  7. package/.agents/adr_log/agents/claude.json +18 -0
  8. package/.agents/adr_log/agents/copilot.json +18 -0
  9. package/.agents/adr_log/agents/gemini.json +18 -0
  10. package/.agents/adr_log/agents/openai.yaml +8 -0
  11. package/.agents/adr_log/agents/qwen.json +18 -0
  12. package/.agents/adr_log/agents/skill.yaml +22 -0
  13. package/.agents/api_contract_compliance_review/agents/claude.json +20 -0
  14. package/.agents/api_contract_compliance_review/agents/copilot.json +20 -0
  15. package/.agents/api_contract_compliance_review/agents/gemini.json +20 -0
  16. package/.agents/api_contract_compliance_review/agents/openai.yaml +8 -0
  17. package/.agents/api_contract_compliance_review/agents/qwen.json +20 -0
  18. package/.agents/api_contract_compliance_review/agents/skill.yaml +24 -0
  19. package/.agents/api_contracts/agents/claude.json +18 -0
  20. package/.agents/api_contracts/agents/copilot.json +18 -0
  21. package/.agents/api_contracts/agents/gemini.json +18 -0
  22. package/.agents/api_contracts/agents/openai.yaml +8 -0
  23. package/.agents/api_contracts/agents/qwen.json +18 -0
  24. package/.agents/api_contracts/agents/skill.yaml +22 -0
  25. package/.agents/architecture_compliance_review/agents/claude.json +19 -0
  26. package/.agents/architecture_compliance_review/agents/copilot.json +19 -0
  27. package/.agents/architecture_compliance_review/agents/gemini.json +19 -0
  28. package/.agents/architecture_compliance_review/agents/openai.yaml +8 -0
  29. package/.agents/architecture_compliance_review/agents/qwen.json +19 -0
  30. package/.agents/architecture_compliance_review/agents/skill.yaml +23 -0
  31. package/.agents/architecture_doc/agents/claude.json +18 -0
  32. package/.agents/architecture_doc/agents/copilot.json +18 -0
  33. package/.agents/architecture_doc/agents/gemini.json +18 -0
  34. package/.agents/architecture_doc/agents/openai.yaml +8 -0
  35. package/.agents/architecture_doc/agents/qwen.json +18 -0
  36. package/.agents/architecture_doc/agents/skill.yaml +22 -0
  37. package/.agents/board/agents/claude.json +16 -0
  38. package/.agents/board/agents/copilot.json +16 -0
  39. package/.agents/board/agents/gemini.json +16 -0
  40. package/.agents/board/agents/openai.yaml +8 -0
  41. package/.agents/board/agents/qwen.json +16 -0
  42. package/.agents/board/agents/skill.yaml +20 -0
  43. package/.agents/cloud_infrastructure_security/agents/claude.json +19 -0
  44. package/.agents/cloud_infrastructure_security/agents/copilot.json +19 -0
  45. package/.agents/cloud_infrastructure_security/agents/gemini.json +19 -0
  46. package/.agents/cloud_infrastructure_security/agents/openai.yaml +8 -0
  47. package/.agents/cloud_infrastructure_security/agents/qwen.json +19 -0
  48. package/.agents/cloud_infrastructure_security/agents/skill.yaml +23 -0
  49. package/.agents/code_review_checklist/agents/claude.json +19 -0
  50. package/.agents/code_review_checklist/agents/copilot.json +19 -0
  51. package/.agents/code_review_checklist/agents/gemini.json +19 -0
  52. package/.agents/code_review_checklist/agents/openai.yaml +8 -0
  53. package/.agents/code_review_checklist/agents/qwen.json +19 -0
  54. package/.agents/code_review_checklist/agents/skill.yaml +23 -0
  55. package/.agents/current_state_analysis/agents/claude.json +19 -0
  56. package/.agents/current_state_analysis/agents/copilot.json +19 -0
  57. package/.agents/current_state_analysis/agents/gemini.json +19 -0
  58. package/.agents/current_state_analysis/agents/openai.yaml +8 -0
  59. package/.agents/current_state_analysis/agents/qwen.json +19 -0
  60. package/.agents/current_state_analysis/agents/skill.yaml +23 -0
  61. package/.agents/data_model/agents/claude.json +18 -0
  62. package/.agents/data_model/agents/copilot.json +18 -0
  63. package/.agents/data_model/agents/gemini.json +18 -0
  64. package/.agents/data_model/agents/openai.yaml +8 -0
  65. package/.agents/data_model/agents/qwen.json +18 -0
  66. package/.agents/data_model/agents/skill.yaml +22 -0
  67. package/.agents/dependency_supply_chain_review/agents/claude.json +20 -0
  68. package/.agents/dependency_supply_chain_review/agents/copilot.json +20 -0
  69. package/.agents/dependency_supply_chain_review/agents/gemini.json +20 -0
  70. package/.agents/dependency_supply_chain_review/agents/openai.yaml +8 -0
  71. package/.agents/dependency_supply_chain_review/agents/qwen.json +20 -0
  72. package/.agents/dependency_supply_chain_review/agents/skill.yaml +24 -0
  73. package/.agents/deployment_ci_plan/agents/claude.json +18 -0
  74. package/.agents/deployment_ci_plan/agents/copilot.json +18 -0
  75. package/.agents/deployment_ci_plan/agents/gemini.json +18 -0
  76. package/.agents/deployment_ci_plan/agents/openai.yaml +8 -0
  77. package/.agents/deployment_ci_plan/agents/qwen.json +18 -0
  78. package/.agents/deployment_ci_plan/agents/skill.yaml +22 -0
  79. package/.agents/design_intake/agents/claude.json +18 -0
  80. package/.agents/design_intake/agents/copilot.json +18 -0
  81. package/.agents/design_intake/agents/gemini.json +18 -0
  82. package/.agents/design_intake/agents/openai.yaml +8 -0
  83. package/.agents/design_intake/agents/qwen.json +18 -0
  84. package/.agents/design_intake/agents/skill.yaml +22 -0
  85. package/.agents/design_parity_review/SKILL.md +1 -18
  86. package/.agents/design_parity_review/agents/claude.json +19 -0
  87. package/.agents/design_parity_review/agents/copilot.json +19 -0
  88. package/.agents/design_parity_review/agents/gemini.json +19 -0
  89. package/.agents/design_parity_review/agents/openai.yaml +8 -0
  90. package/.agents/design_parity_review/agents/qwen.json +19 -0
  91. package/.agents/design_parity_review/agents/skill.yaml +23 -0
  92. package/.agents/design_systems/agents/claude.json +18 -0
  93. package/.agents/design_systems/agents/copilot.json +18 -0
  94. package/.agents/design_systems/agents/gemini.json +18 -0
  95. package/.agents/design_systems/agents/openai.yaml +8 -0
  96. package/.agents/design_systems/agents/qwen.json +18 -0
  97. package/.agents/design_systems/agents/skill.yaml +22 -0
  98. package/.agents/dev_reference_snippets/agents/claude.json +19 -0
  99. package/.agents/dev_reference_snippets/agents/copilot.json +19 -0
  100. package/.agents/dev_reference_snippets/agents/gemini.json +19 -0
  101. package/.agents/dev_reference_snippets/agents/openai.yaml +8 -0
  102. package/.agents/dev_reference_snippets/agents/qwen.json +19 -0
  103. package/.agents/dev_reference_snippets/agents/skill.yaml +23 -0
  104. package/.agents/docker_kubernetes_architecture/agents/claude.json +19 -0
  105. package/.agents/docker_kubernetes_architecture/agents/copilot.json +19 -0
  106. package/.agents/docker_kubernetes_architecture/agents/gemini.json +19 -0
  107. package/.agents/docker_kubernetes_architecture/agents/openai.yaml +8 -0
  108. package/.agents/docker_kubernetes_architecture/agents/qwen.json +19 -0
  109. package/.agents/docker_kubernetes_architecture/agents/skill.yaml +23 -0
  110. package/.agents/es2025_beast_practices/agents/claude.json +19 -0
  111. package/.agents/es2025_beast_practices/agents/copilot.json +19 -0
  112. package/.agents/es2025_beast_practices/agents/gemini.json +19 -0
  113. package/.agents/es2025_beast_practices/agents/openai.yaml +8 -0
  114. package/.agents/es2025_beast_practices/agents/qwen.json +19 -0
  115. package/.agents/es2025_beast_practices/agents/skill.yaml +23 -0
  116. package/.agents/gates/agents/claude.json +16 -0
  117. package/.agents/gates/agents/copilot.json +16 -0
  118. package/.agents/gates/agents/gemini.json +16 -0
  119. package/.agents/gates/agents/openai.yaml +8 -0
  120. package/.agents/gates/agents/qwen.json +16 -0
  121. package/.agents/gates/agents/skill.yaml +20 -0
  122. package/.agents/go_beast_practices/agents/claude.json +19 -0
  123. package/.agents/go_beast_practices/agents/copilot.json +19 -0
  124. package/.agents/go_beast_practices/agents/gemini.json +19 -0
  125. package/.agents/go_beast_practices/agents/openai.yaml +8 -0
  126. package/.agents/go_beast_practices/agents/qwen.json +19 -0
  127. package/.agents/go_beast_practices/agents/skill.yaml +23 -0
  128. package/.agents/google_stitch_skill/SKILL.md +553 -0
  129. package/.agents/google_stitch_skill/agents/claude.json +19 -0
  130. package/.agents/google_stitch_skill/agents/copilot.json +19 -0
  131. package/.agents/google_stitch_skill/agents/gemini.json +19 -0
  132. package/.agents/google_stitch_skill/agents/openai.yaml +8 -0
  133. package/.agents/google_stitch_skill/agents/qwen.json +19 -0
  134. package/.agents/google_stitch_skill/agents/skill.yaml +23 -0
  135. package/.agents/google_stitch_skill/examples/scr_prompts.md +125 -0
  136. package/.agents/google_stitch_skill/resources/budget_planner.md +35 -0
  137. package/.agents/handoff/agents/claude.json +16 -0
  138. package/.agents/handoff/agents/copilot.json +16 -0
  139. package/.agents/handoff/agents/gemini.json +16 -0
  140. package/.agents/handoff/agents/openai.yaml +8 -0
  141. package/.agents/handoff/agents/qwen.json +16 -0
  142. package/.agents/handoff/agents/skill.yaml +20 -0
  143. package/.agents/k8s_manifests_conventions/agents/claude.json +19 -0
  144. package/.agents/k8s_manifests_conventions/agents/copilot.json +19 -0
  145. package/.agents/k8s_manifests_conventions/agents/gemini.json +19 -0
  146. package/.agents/k8s_manifests_conventions/agents/openai.yaml +8 -0
  147. package/.agents/k8s_manifests_conventions/agents/qwen.json +19 -0
  148. package/.agents/k8s_manifests_conventions/agents/skill.yaml +23 -0
  149. package/.agents/memory/agents/claude.json +16 -0
  150. package/.agents/memory/agents/copilot.json +16 -0
  151. package/.agents/memory/agents/gemini.json +16 -0
  152. package/.agents/memory/agents/openai.yaml +8 -0
  153. package/.agents/memory/agents/qwen.json +16 -0
  154. package/.agents/memory/agents/skill.yaml +20 -0
  155. package/.agents/mongodb_mongoose_best_practices/agents/claude.json +20 -0
  156. package/.agents/mongodb_mongoose_best_practices/agents/copilot.json +20 -0
  157. package/.agents/mongodb_mongoose_best_practices/agents/gemini.json +20 -0
  158. package/.agents/mongodb_mongoose_best_practices/agents/openai.yaml +8 -0
  159. package/.agents/mongodb_mongoose_best_practices/agents/qwen.json +20 -0
  160. package/.agents/mongodb_mongoose_best_practices/agents/skill.yaml +24 -0
  161. package/.agents/n8n_pinecone_qdrant_supabase/SKILL.md +0 -2
  162. package/.agents/n8n_pinecone_qdrant_supabase/agents/claude.json +20 -0
  163. package/.agents/n8n_pinecone_qdrant_supabase/agents/copilot.json +20 -0
  164. package/.agents/n8n_pinecone_qdrant_supabase/agents/gemini.json +20 -0
  165. package/.agents/n8n_pinecone_qdrant_supabase/agents/openai.yaml +8 -0
  166. package/.agents/n8n_pinecone_qdrant_supabase/agents/qwen.json +20 -0
  167. package/.agents/n8n_pinecone_qdrant_supabase/agents/skill.yaml +24 -0
  168. package/.agents/node_express_beast_practices/agents/claude.json +20 -0
  169. package/.agents/node_express_beast_practices/agents/copilot.json +20 -0
  170. package/.agents/node_express_beast_practices/agents/gemini.json +20 -0
  171. package/.agents/node_express_beast_practices/agents/openai.yaml +8 -0
  172. package/.agents/node_express_beast_practices/agents/qwen.json +20 -0
  173. package/.agents/node_express_beast_practices/agents/skill.yaml +24 -0
  174. package/.agents/observability_logging/agents/claude.json +18 -0
  175. package/.agents/observability_logging/agents/copilot.json +18 -0
  176. package/.agents/observability_logging/agents/gemini.json +18 -0
  177. package/.agents/observability_logging/agents/openai.yaml +8 -0
  178. package/.agents/observability_logging/agents/qwen.json +18 -0
  179. package/.agents/observability_logging/agents/skill.yaml +22 -0
  180. package/.agents/observability_plan/agents/claude.json +17 -0
  181. package/.agents/observability_plan/agents/copilot.json +17 -0
  182. package/.agents/observability_plan/agents/gemini.json +17 -0
  183. package/.agents/observability_plan/agents/openai.yaml +8 -0
  184. package/.agents/observability_plan/agents/qwen.json +17 -0
  185. package/.agents/observability_plan/agents/skill.yaml +21 -0
  186. package/.agents/observability_review/agents/claude.json +18 -0
  187. package/.agents/observability_review/agents/copilot.json +18 -0
  188. package/.agents/observability_review/agents/gemini.json +18 -0
  189. package/.agents/observability_review/agents/openai.yaml +8 -0
  190. package/.agents/observability_review/agents/qwen.json +18 -0
  191. package/.agents/observability_review/agents/skill.yaml +22 -0
  192. package/.agents/performance_review_baseline/agents/claude.json +19 -0
  193. package/.agents/performance_review_baseline/agents/copilot.json +19 -0
  194. package/.agents/performance_review_baseline/agents/gemini.json +19 -0
  195. package/.agents/performance_review_baseline/agents/openai.yaml +8 -0
  196. package/.agents/performance_review_baseline/agents/qwen.json +19 -0
  197. package/.agents/performance_review_baseline/agents/skill.yaml +23 -0
  198. package/.agents/pm_backlog/agents/claude.json +18 -0
  199. package/.agents/pm_backlog/agents/copilot.json +18 -0
  200. package/.agents/pm_backlog/agents/gemini.json +18 -0
  201. package/.agents/pm_backlog/agents/openai.yaml +8 -0
  202. package/.agents/pm_backlog/agents/qwen.json +18 -0
  203. package/.agents/pm_backlog/agents/skill.yaml +22 -0
  204. package/.agents/pm_interview/agents/claude.json +18 -0
  205. package/.agents/pm_interview/agents/copilot.json +18 -0
  206. package/.agents/pm_interview/agents/gemini.json +18 -0
  207. package/.agents/pm_interview/agents/openai.yaml +8 -0
  208. package/.agents/pm_interview/agents/qwen.json +18 -0
  209. package/.agents/pm_interview/agents/skill.yaml +22 -0
  210. package/.agents/pm_prd/agents/claude.json +18 -0
  211. package/.agents/pm_prd/agents/copilot.json +18 -0
  212. package/.agents/pm_prd/agents/gemini.json +18 -0
  213. package/.agents/pm_prd/agents/openai.yaml +8 -0
  214. package/.agents/pm_prd/agents/qwen.json +18 -0
  215. package/.agents/pm_prd/agents/skill.yaml +22 -0
  216. package/.agents/qa_api_contract_tests/agents/claude.json +20 -0
  217. package/.agents/qa_api_contract_tests/agents/copilot.json +20 -0
  218. package/.agents/qa_api_contract_tests/agents/gemini.json +20 -0
  219. package/.agents/qa_api_contract_tests/agents/openai.yaml +8 -0
  220. package/.agents/qa_api_contract_tests/agents/qwen.json +20 -0
  221. package/.agents/qa_api_contract_tests/agents/skill.yaml +24 -0
  222. package/.agents/qa_browser_testing/SKILL.md +255 -0
  223. package/.agents/qa_browser_testing/agents/claude.json +19 -0
  224. package/.agents/qa_browser_testing/agents/copilot.json +19 -0
  225. package/.agents/qa_browser_testing/agents/gemini.json +19 -0
  226. package/.agents/qa_browser_testing/agents/openai.yaml +8 -0
  227. package/.agents/qa_browser_testing/agents/qwen.json +19 -0
  228. package/.agents/qa_browser_testing/agents/skill.yaml +23 -0
  229. package/.agents/qa_e2e_playwright/SKILL.md +313 -0
  230. package/.agents/qa_e2e_playwright/agents/claude.json +19 -0
  231. package/.agents/qa_e2e_playwright/agents/copilot.json +19 -0
  232. package/.agents/qa_e2e_playwright/agents/gemini.json +19 -0
  233. package/.agents/qa_e2e_playwright/agents/openai.yaml +8 -0
  234. package/.agents/qa_e2e_playwright/agents/qwen.json +19 -0
  235. package/.agents/qa_e2e_playwright/agents/skill.yaml +23 -0
  236. package/.agents/qa_manual_run/agents/claude.json +19 -0
  237. package/.agents/qa_manual_run/agents/copilot.json +19 -0
  238. package/.agents/qa_manual_run/agents/gemini.json +19 -0
  239. package/.agents/qa_manual_run/agents/openai.yaml +8 -0
  240. package/.agents/qa_manual_run/agents/qwen.json +19 -0
  241. package/.agents/qa_manual_run/agents/skill.yaml +23 -0
  242. package/.agents/qa_security_smoke_tests/agents/claude.json +20 -0
  243. package/.agents/qa_security_smoke_tests/agents/copilot.json +20 -0
  244. package/.agents/qa_security_smoke_tests/agents/gemini.json +20 -0
  245. package/.agents/qa_security_smoke_tests/agents/openai.yaml +8 -0
  246. package/.agents/qa_security_smoke_tests/agents/qwen.json +20 -0
  247. package/.agents/qa_security_smoke_tests/agents/skill.yaml +24 -0
  248. package/.agents/qa_test_plan/agents/claude.json +19 -0
  249. package/.agents/qa_test_plan/agents/copilot.json +19 -0
  250. package/.agents/qa_test_plan/agents/gemini.json +19 -0
  251. package/.agents/qa_test_plan/agents/openai.yaml +8 -0
  252. package/.agents/qa_test_plan/agents/qwen.json +19 -0
  253. package/.agents/qa_test_plan/agents/skill.yaml +23 -0
  254. package/.agents/qa_ui_a11y_smoke/agents/claude.json +20 -0
  255. package/.agents/qa_ui_a11y_smoke/agents/copilot.json +20 -0
  256. package/.agents/qa_ui_a11y_smoke/agents/gemini.json +20 -0
  257. package/.agents/qa_ui_a11y_smoke/agents/openai.yaml +8 -0
  258. package/.agents/qa_ui_a11y_smoke/agents/qwen.json +20 -0
  259. package/.agents/qa_ui_a11y_smoke/agents/skill.yaml +24 -0
  260. package/.agents/react_15_3_wix_iframe/agents/claude.json +21 -0
  261. package/.agents/react_15_3_wix_iframe/agents/copilot.json +21 -0
  262. package/.agents/react_15_3_wix_iframe/agents/gemini.json +21 -0
  263. package/.agents/react_15_3_wix_iframe/agents/openai.yaml +8 -0
  264. package/.agents/react_15_3_wix_iframe/agents/qwen.json +21 -0
  265. package/.agents/react_15_3_wix_iframe/agents/skill.yaml +25 -0
  266. package/.agents/react_beast_practices/agents/claude.json +19 -0
  267. package/.agents/react_beast_practices/agents/copilot.json +19 -0
  268. package/.agents/react_beast_practices/agents/gemini.json +19 -0
  269. package/.agents/react_beast_practices/agents/openai.yaml +8 -0
  270. package/.agents/react_beast_practices/agents/qwen.json +19 -0
  271. package/.agents/react_beast_practices/agents/skill.yaml +23 -0
  272. package/.agents/release_gate/agents/claude.json +18 -0
  273. package/.agents/release_gate/agents/copilot.json +18 -0
  274. package/.agents/release_gate/agents/gemini.json +18 -0
  275. package/.agents/release_gate/agents/openai.yaml +8 -0
  276. package/.agents/release_gate/agents/qwen.json +18 -0
  277. package/.agents/release_gate/agents/skill.yaml +22 -0
  278. package/.agents/release_gate_checklist_template/agents/claude.json +20 -0
  279. package/.agents/release_gate_checklist_template/agents/copilot.json +20 -0
  280. package/.agents/release_gate_checklist_template/agents/gemini.json +20 -0
  281. package/.agents/release_gate_checklist_template/agents/openai.yaml +8 -0
  282. package/.agents/release_gate_checklist_template/agents/qwen.json +20 -0
  283. package/.agents/release_gate_checklist_template/agents/skill.yaml +24 -0
  284. package/.agents/review_reference_snippets/agents/claude.json +19 -0
  285. package/.agents/review_reference_snippets/agents/copilot.json +19 -0
  286. package/.agents/review_reference_snippets/agents/gemini.json +19 -0
  287. package/.agents/review_reference_snippets/agents/openai.yaml +8 -0
  288. package/.agents/review_reference_snippets/agents/qwen.json +19 -0
  289. package/.agents/review_reference_snippets/agents/skill.yaml +23 -0
  290. package/.agents/security_baseline_dev/agents/claude.json +19 -0
  291. package/.agents/security_baseline_dev/agents/copilot.json +19 -0
  292. package/.agents/security_baseline_dev/agents/gemini.json +19 -0
  293. package/.agents/security_baseline_dev/agents/openai.yaml +8 -0
  294. package/.agents/security_baseline_dev/agents/qwen.json +19 -0
  295. package/.agents/security_baseline_dev/agents/skill.yaml +23 -0
  296. package/.agents/security_review/agents/claude.json +18 -0
  297. package/.agents/security_review/agents/copilot.json +18 -0
  298. package/.agents/security_review/agents/gemini.json +18 -0
  299. package/.agents/security_review/agents/openai.yaml +8 -0
  300. package/.agents/security_review/agents/qwen.json +18 -0
  301. package/.agents/security_review/agents/skill.yaml +22 -0
  302. package/.agents/security_review_baseline/agents/claude.json +19 -0
  303. package/.agents/security_review_baseline/agents/copilot.json +19 -0
  304. package/.agents/security_review_baseline/agents/gemini.json +19 -0
  305. package/.agents/security_review_baseline/agents/openai.yaml +8 -0
  306. package/.agents/security_review_baseline/agents/qwen.json +19 -0
  307. package/.agents/security_review_baseline/agents/skill.yaml +23 -0
  308. package/.agents/state_rtk_beast_practices/agents/claude.json +20 -0
  309. package/.agents/state_rtk_beast_practices/agents/copilot.json +20 -0
  310. package/.agents/state_rtk_beast_practices/agents/gemini.json +20 -0
  311. package/.agents/state_rtk_beast_practices/agents/openai.yaml +8 -0
  312. package/.agents/state_rtk_beast_practices/agents/qwen.json +20 -0
  313. package/.agents/state_rtk_beast_practices/agents/skill.yaml +24 -0
  314. package/.agents/state_zustand_beast_practices/agents/claude.json +20 -0
  315. package/.agents/state_zustand_beast_practices/agents/copilot.json +20 -0
  316. package/.agents/state_zustand_beast_practices/agents/gemini.json +20 -0
  317. package/.agents/state_zustand_beast_practices/agents/openai.yaml +8 -0
  318. package/.agents/state_zustand_beast_practices/agents/qwen.json +20 -0
  319. package/.agents/state_zustand_beast_practices/agents/skill.yaml +24 -0
  320. package/.agents/styling_css_stack/agents/claude.json +19 -0
  321. package/.agents/styling_css_stack/agents/copilot.json +19 -0
  322. package/.agents/styling_css_stack/agents/gemini.json +19 -0
  323. package/.agents/styling_css_stack/agents/openai.yaml +8 -0
  324. package/.agents/styling_css_stack/agents/qwen.json +19 -0
  325. package/.agents/styling_css_stack/agents/skill.yaml +23 -0
  326. package/.agents/system_design_checklist/agents/claude.json +18 -0
  327. package/.agents/system_design_checklist/agents/copilot.json +18 -0
  328. package/.agents/system_design_checklist/agents/gemini.json +18 -0
  329. package/.agents/system_design_checklist/agents/openai.yaml +8 -0
  330. package/.agents/system_design_checklist/agents/qwen.json +18 -0
  331. package/.agents/system_design_checklist/agents/skill.yaml +22 -0
  332. package/.agents/tanstack_beast_practices/agents/claude.json +19 -0
  333. package/.agents/tanstack_beast_practices/agents/copilot.json +19 -0
  334. package/.agents/tanstack_beast_practices/agents/gemini.json +19 -0
  335. package/.agents/tanstack_beast_practices/agents/openai.yaml +8 -0
  336. package/.agents/tanstack_beast_practices/agents/qwen.json +19 -0
  337. package/.agents/tanstack_beast_practices/agents/skill.yaml +23 -0
  338. package/.agents/tdd_workflow/agents/claude.json +18 -0
  339. package/.agents/tdd_workflow/agents/copilot.json +18 -0
  340. package/.agents/tdd_workflow/agents/gemini.json +18 -0
  341. package/.agents/tdd_workflow/agents/openai.yaml +8 -0
  342. package/.agents/tdd_workflow/agents/qwen.json +18 -0
  343. package/.agents/tdd_workflow/agents/skill.yaml +22 -0
  344. package/.agents/testing_strategy_js/agents/claude.json +19 -0
  345. package/.agents/testing_strategy_js/agents/copilot.json +19 -0
  346. package/.agents/testing_strategy_js/agents/gemini.json +19 -0
  347. package/.agents/testing_strategy_js/agents/openai.yaml +8 -0
  348. package/.agents/testing_strategy_js/agents/qwen.json +19 -0
  349. package/.agents/testing_strategy_js/agents/skill.yaml +23 -0
  350. package/.agents/tests_quality_review/agents/claude.json +19 -0
  351. package/.agents/tests_quality_review/agents/copilot.json +19 -0
  352. package/.agents/tests_quality_review/agents/gemini.json +19 -0
  353. package/.agents/tests_quality_review/agents/openai.yaml +8 -0
  354. package/.agents/tests_quality_review/agents/qwen.json +19 -0
  355. package/.agents/tests_quality_review/agents/skill.yaml +23 -0
  356. package/.agents/threat_model_baseline/agents/claude.json +19 -0
  357. package/.agents/threat_model_baseline/agents/copilot.json +19 -0
  358. package/.agents/threat_model_baseline/agents/gemini.json +19 -0
  359. package/.agents/threat_model_baseline/agents/openai.yaml +8 -0
  360. package/.agents/threat_model_baseline/agents/qwen.json +19 -0
  361. package/.agents/threat_model_baseline/agents/skill.yaml +23 -0
  362. package/.agents/tooling_bun_biome/agents/claude.json +19 -0
  363. package/.agents/tooling_bun_biome/agents/copilot.json +19 -0
  364. package/.agents/tooling_bun_biome/agents/gemini.json +19 -0
  365. package/.agents/tooling_bun_biome/agents/openai.yaml +8 -0
  366. package/.agents/tooling_bun_biome/agents/qwen.json +19 -0
  367. package/.agents/tooling_bun_biome/agents/skill.yaml +23 -0
  368. package/.agents/typescript_beast_practices/agents/claude.json +19 -0
  369. package/.agents/typescript_beast_practices/agents/copilot.json +19 -0
  370. package/.agents/typescript_beast_practices/agents/gemini.json +19 -0
  371. package/.agents/typescript_beast_practices/agents/openai.yaml +8 -0
  372. package/.agents/typescript_beast_practices/agents/qwen.json +19 -0
  373. package/.agents/typescript_beast_practices/agents/skill.yaml +23 -0
  374. package/.agents/ui_a11y_smoke_review/agents/claude.json +20 -0
  375. package/.agents/ui_a11y_smoke_review/agents/copilot.json +20 -0
  376. package/.agents/ui_a11y_smoke_review/agents/gemini.json +20 -0
  377. package/.agents/ui_a11y_smoke_review/agents/openai.yaml +8 -0
  378. package/.agents/ui_a11y_smoke_review/agents/qwen.json +20 -0
  379. package/.agents/ui_a11y_smoke_review/agents/skill.yaml +24 -0
  380. package/.agents/ui_inventory/agents/claude.json +18 -0
  381. package/.agents/ui_inventory/agents/copilot.json +18 -0
  382. package/.agents/ui_inventory/agents/gemini.json +18 -0
  383. package/.agents/ui_inventory/agents/openai.yaml +8 -0
  384. package/.agents/ui_inventory/agents/qwen.json +18 -0
  385. package/.agents/ui_inventory/agents/skill.yaml +22 -0
  386. package/.agents/ux_discovery/agents/claude.json +17 -0
  387. package/.agents/ux_discovery/agents/copilot.json +17 -0
  388. package/.agents/ux_discovery/agents/gemini.json +17 -0
  389. package/.agents/ux_discovery/agents/openai.yaml +8 -0
  390. package/.agents/ux_discovery/agents/qwen.json +17 -0
  391. package/.agents/ux_discovery/agents/skill.yaml +21 -0
  392. package/.agents/ux_spec/agents/claude.json +18 -0
  393. package/.agents/ux_spec/agents/copilot.json +18 -0
  394. package/.agents/ux_spec/agents/gemini.json +18 -0
  395. package/.agents/ux_spec/agents/openai.yaml +8 -0
  396. package/.agents/ux_spec/agents/qwen.json +18 -0
  397. package/.agents/ux_spec/agents/skill.yaml +22 -0
  398. package/.agents/wix_iframe_sdk/SKILL.md +1 -3
  399. package/.agents/wix_iframe_sdk/agents/claude.json +18 -0
  400. package/.agents/wix_iframe_sdk/agents/copilot.json +18 -0
  401. package/.agents/wix_iframe_sdk/agents/gemini.json +18 -0
  402. package/.agents/wix_iframe_sdk/agents/openai.yaml +8 -0
  403. package/.agents/wix_iframe_sdk/agents/qwen.json +18 -0
  404. package/.agents/wix_iframe_sdk/agents/skill.yaml +22 -0
  405. package/.agents/wix_self_hosted_embedded_script/agents/claude.json +21 -0
  406. package/.agents/wix_self_hosted_embedded_script/agents/copilot.json +21 -0
  407. package/.agents/wix_self_hosted_embedded_script/agents/gemini.json +21 -0
  408. package/.agents/wix_self_hosted_embedded_script/agents/openai.yaml +8 -0
  409. package/.agents/wix_self_hosted_embedded_script/agents/qwen.json +21 -0
  410. package/.agents/wix_self_hosted_embedded_script/agents/skill.yaml +25 -0
  411. package/.agents/workflows/auto-restart-containers.md +51 -0
  412. package/.agents/workflows/pipeline-rules.md +137 -0
  413. package/.agents/workflows/start-task.md +121 -0
  414. package/AGENTS.md +3 -0
  415. package/AGENTS.yaml +105 -0
  416. package/README.md +2 -2
  417. package/agents/architect.md +193 -126
  418. package/agents/conductor.md +314 -213
  419. package/agents/devops.md +260 -0
  420. package/agents/orchestrator.claude.json +95 -0
  421. package/agents/orchestrator.copilot.json +95 -0
  422. package/agents/orchestrator.gemini.json +95 -0
  423. package/agents/orchestrator.openai.yaml +92 -0
  424. package/agents/orchestrator.qwen.json +95 -0
  425. package/agents/product_manager.md +209 -121
  426. package/agents/reviewer.md +247 -194
  427. package/agents/senior_full_stack.md +210 -105
  428. package/agents/tester.md +318 -185
  429. package/agents/ux_ui_designer.md +179 -48
  430. package/dist/doctor.js +6 -1
  431. package/dist/installer.js +4 -0
  432. package/dist/metadataAudit.d.ts +15 -0
  433. package/dist/metadataAudit.js +277 -0
  434. package/dist/platforms/adapters.js +32 -5
  435. package/dist/platforms/metadataSidecars.d.ts +55 -0
  436. package/dist/platforms/metadataSidecars.js +96 -0
  437. package/dist/types.d.ts +1 -0
  438. package/locales/en/.agents/a11y_baseline/agents/claude.json +17 -0
  439. package/locales/en/.agents/a11y_baseline/agents/copilot.json +17 -0
  440. package/locales/en/.agents/a11y_baseline/agents/gemini.json +17 -0
  441. package/locales/en/.agents/a11y_baseline/agents/openai.yaml +8 -0
  442. package/locales/en/.agents/a11y_baseline/agents/qwen.json +17 -0
  443. package/locales/en/.agents/a11y_baseline/agents/skill.yaml +21 -0
  444. package/locales/en/.agents/adr_log/agents/claude.json +18 -0
  445. package/locales/en/.agents/adr_log/agents/copilot.json +18 -0
  446. package/locales/en/.agents/adr_log/agents/gemini.json +18 -0
  447. package/locales/en/.agents/adr_log/agents/openai.yaml +8 -0
  448. package/locales/en/.agents/adr_log/agents/qwen.json +18 -0
  449. package/locales/en/.agents/adr_log/agents/skill.yaml +22 -0
  450. package/locales/en/.agents/api_contract_compliance_review/agents/claude.json +19 -0
  451. package/locales/en/.agents/api_contract_compliance_review/agents/copilot.json +19 -0
  452. package/locales/en/.agents/api_contract_compliance_review/agents/gemini.json +19 -0
  453. package/locales/en/.agents/api_contract_compliance_review/agents/openai.yaml +8 -0
  454. package/locales/en/.agents/api_contract_compliance_review/agents/qwen.json +19 -0
  455. package/locales/en/.agents/api_contract_compliance_review/agents/skill.yaml +23 -0
  456. package/locales/en/.agents/api_contracts/agents/claude.json +17 -0
  457. package/locales/en/.agents/api_contracts/agents/copilot.json +17 -0
  458. package/locales/en/.agents/api_contracts/agents/gemini.json +17 -0
  459. package/locales/en/.agents/api_contracts/agents/openai.yaml +8 -0
  460. package/locales/en/.agents/api_contracts/agents/qwen.json +17 -0
  461. package/locales/en/.agents/api_contracts/agents/skill.yaml +21 -0
  462. package/locales/en/.agents/architecture_compliance_review/agents/claude.json +18 -0
  463. package/locales/en/.agents/architecture_compliance_review/agents/copilot.json +18 -0
  464. package/locales/en/.agents/architecture_compliance_review/agents/gemini.json +18 -0
  465. package/locales/en/.agents/architecture_compliance_review/agents/openai.yaml +8 -0
  466. package/locales/en/.agents/architecture_compliance_review/agents/qwen.json +18 -0
  467. package/locales/en/.agents/architecture_compliance_review/agents/skill.yaml +22 -0
  468. package/locales/en/.agents/architecture_doc/agents/claude.json +18 -0
  469. package/locales/en/.agents/architecture_doc/agents/copilot.json +18 -0
  470. package/locales/en/.agents/architecture_doc/agents/gemini.json +18 -0
  471. package/locales/en/.agents/architecture_doc/agents/openai.yaml +8 -0
  472. package/locales/en/.agents/architecture_doc/agents/qwen.json +18 -0
  473. package/locales/en/.agents/architecture_doc/agents/skill.yaml +22 -0
  474. package/locales/en/.agents/board/agents/claude.json +16 -0
  475. package/locales/en/.agents/board/agents/copilot.json +16 -0
  476. package/locales/en/.agents/board/agents/gemini.json +16 -0
  477. package/locales/en/.agents/board/agents/openai.yaml +8 -0
  478. package/locales/en/.agents/board/agents/qwen.json +16 -0
  479. package/locales/en/.agents/board/agents/skill.yaml +20 -0
  480. package/locales/en/.agents/cloud_infrastructure_security/agents/claude.json +18 -0
  481. package/locales/en/.agents/cloud_infrastructure_security/agents/copilot.json +18 -0
  482. package/locales/en/.agents/cloud_infrastructure_security/agents/gemini.json +18 -0
  483. package/locales/en/.agents/cloud_infrastructure_security/agents/openai.yaml +8 -0
  484. package/locales/en/.agents/cloud_infrastructure_security/agents/qwen.json +18 -0
  485. package/locales/en/.agents/cloud_infrastructure_security/agents/skill.yaml +22 -0
  486. package/locales/en/.agents/code_review_checklist/agents/claude.json +18 -0
  487. package/locales/en/.agents/code_review_checklist/agents/copilot.json +18 -0
  488. package/locales/en/.agents/code_review_checklist/agents/gemini.json +18 -0
  489. package/locales/en/.agents/code_review_checklist/agents/openai.yaml +8 -0
  490. package/locales/en/.agents/code_review_checklist/agents/qwen.json +18 -0
  491. package/locales/en/.agents/code_review_checklist/agents/skill.yaml +22 -0
  492. package/locales/en/.agents/current_state_analysis/agents/claude.json +18 -0
  493. package/locales/en/.agents/current_state_analysis/agents/copilot.json +18 -0
  494. package/locales/en/.agents/current_state_analysis/agents/gemini.json +18 -0
  495. package/locales/en/.agents/current_state_analysis/agents/openai.yaml +8 -0
  496. package/locales/en/.agents/current_state_analysis/agents/qwen.json +18 -0
  497. package/locales/en/.agents/current_state_analysis/agents/skill.yaml +22 -0
  498. package/locales/en/.agents/data_model/agents/claude.json +17 -0
  499. package/locales/en/.agents/data_model/agents/copilot.json +17 -0
  500. package/locales/en/.agents/data_model/agents/gemini.json +17 -0
  501. package/locales/en/.agents/data_model/agents/openai.yaml +8 -0
  502. package/locales/en/.agents/data_model/agents/qwen.json +17 -0
  503. package/locales/en/.agents/data_model/agents/skill.yaml +21 -0
  504. package/locales/en/.agents/dependency_supply_chain_review/agents/claude.json +19 -0
  505. package/locales/en/.agents/dependency_supply_chain_review/agents/copilot.json +19 -0
  506. package/locales/en/.agents/dependency_supply_chain_review/agents/gemini.json +19 -0
  507. package/locales/en/.agents/dependency_supply_chain_review/agents/openai.yaml +8 -0
  508. package/locales/en/.agents/dependency_supply_chain_review/agents/qwen.json +19 -0
  509. package/locales/en/.agents/dependency_supply_chain_review/agents/skill.yaml +23 -0
  510. package/locales/en/.agents/deployment_ci_plan/agents/claude.json +19 -0
  511. package/locales/en/.agents/deployment_ci_plan/agents/copilot.json +19 -0
  512. package/locales/en/.agents/deployment_ci_plan/agents/gemini.json +19 -0
  513. package/locales/en/.agents/deployment_ci_plan/agents/openai.yaml +8 -0
  514. package/locales/en/.agents/deployment_ci_plan/agents/qwen.json +19 -0
  515. package/locales/en/.agents/deployment_ci_plan/agents/skill.yaml +23 -0
  516. package/locales/en/.agents/design_intake/agents/claude.json +18 -0
  517. package/locales/en/.agents/design_intake/agents/copilot.json +18 -0
  518. package/locales/en/.agents/design_intake/agents/gemini.json +18 -0
  519. package/locales/en/.agents/design_intake/agents/openai.yaml +8 -0
  520. package/locales/en/.agents/design_intake/agents/qwen.json +18 -0
  521. package/locales/en/.agents/design_intake/agents/skill.yaml +22 -0
  522. package/locales/en/.agents/design_parity_review/SKILL.md +55 -85
  523. package/locales/en/.agents/design_parity_review/agents/claude.json +19 -0
  524. package/locales/en/.agents/design_parity_review/agents/copilot.json +19 -0
  525. package/locales/en/.agents/design_parity_review/agents/gemini.json +19 -0
  526. package/locales/en/.agents/design_parity_review/agents/openai.yaml +8 -0
  527. package/locales/en/.agents/design_parity_review/agents/qwen.json +19 -0
  528. package/locales/en/.agents/design_parity_review/agents/skill.yaml +23 -0
  529. package/locales/en/.agents/design_systems/agents/claude.json +18 -0
  530. package/locales/en/.agents/design_systems/agents/copilot.json +18 -0
  531. package/locales/en/.agents/design_systems/agents/gemini.json +18 -0
  532. package/locales/en/.agents/design_systems/agents/openai.yaml +8 -0
  533. package/locales/en/.agents/design_systems/agents/qwen.json +18 -0
  534. package/locales/en/.agents/design_systems/agents/skill.yaml +22 -0
  535. package/locales/en/.agents/dev_reference_snippets/agents/claude.json +19 -0
  536. package/locales/en/.agents/dev_reference_snippets/agents/copilot.json +19 -0
  537. package/locales/en/.agents/dev_reference_snippets/agents/gemini.json +19 -0
  538. package/locales/en/.agents/dev_reference_snippets/agents/openai.yaml +8 -0
  539. package/locales/en/.agents/dev_reference_snippets/agents/qwen.json +19 -0
  540. package/locales/en/.agents/dev_reference_snippets/agents/skill.yaml +23 -0
  541. package/locales/en/.agents/docker_kubernetes_architecture/agents/claude.json +18 -0
  542. package/locales/en/.agents/docker_kubernetes_architecture/agents/copilot.json +18 -0
  543. package/locales/en/.agents/docker_kubernetes_architecture/agents/gemini.json +18 -0
  544. package/locales/en/.agents/docker_kubernetes_architecture/agents/openai.yaml +8 -0
  545. package/locales/en/.agents/docker_kubernetes_architecture/agents/qwen.json +18 -0
  546. package/locales/en/.agents/docker_kubernetes_architecture/agents/skill.yaml +22 -0
  547. package/locales/en/.agents/es2025_beast_practices/agents/claude.json +18 -0
  548. package/locales/en/.agents/es2025_beast_practices/agents/copilot.json +18 -0
  549. package/locales/en/.agents/es2025_beast_practices/agents/gemini.json +18 -0
  550. package/locales/en/.agents/es2025_beast_practices/agents/openai.yaml +8 -0
  551. package/locales/en/.agents/es2025_beast_practices/agents/qwen.json +18 -0
  552. package/locales/en/.agents/es2025_beast_practices/agents/skill.yaml +22 -0
  553. package/locales/en/.agents/gates/agents/claude.json +16 -0
  554. package/locales/en/.agents/gates/agents/copilot.json +16 -0
  555. package/locales/en/.agents/gates/agents/gemini.json +16 -0
  556. package/locales/en/.agents/gates/agents/openai.yaml +8 -0
  557. package/locales/en/.agents/gates/agents/qwen.json +16 -0
  558. package/locales/en/.agents/gates/agents/skill.yaml +20 -0
  559. package/locales/en/.agents/go_beast_practices/agents/claude.json +18 -0
  560. package/locales/en/.agents/go_beast_practices/agents/copilot.json +18 -0
  561. package/locales/en/.agents/go_beast_practices/agents/gemini.json +18 -0
  562. package/locales/en/.agents/go_beast_practices/agents/openai.yaml +8 -0
  563. package/locales/en/.agents/go_beast_practices/agents/qwen.json +18 -0
  564. package/locales/en/.agents/go_beast_practices/agents/skill.yaml +22 -0
  565. package/locales/en/.agents/google_stitch_skill/SKILL.md +117 -0
  566. package/locales/en/.agents/google_stitch_skill/agents/claude.json +19 -0
  567. package/locales/en/.agents/google_stitch_skill/agents/copilot.json +19 -0
  568. package/locales/en/.agents/google_stitch_skill/agents/gemini.json +19 -0
  569. package/locales/en/.agents/google_stitch_skill/agents/openai.yaml +8 -0
  570. package/locales/en/.agents/google_stitch_skill/agents/qwen.json +19 -0
  571. package/locales/en/.agents/google_stitch_skill/agents/skill.yaml +23 -0
  572. package/locales/en/.agents/google_stitch_skill/examples/scr_prompts.md +21 -0
  573. package/locales/en/.agents/google_stitch_skill/resources/budget_planner.md +23 -0
  574. package/locales/en/.agents/handoff/agents/claude.json +16 -0
  575. package/locales/en/.agents/handoff/agents/copilot.json +16 -0
  576. package/locales/en/.agents/handoff/agents/gemini.json +16 -0
  577. package/locales/en/.agents/handoff/agents/openai.yaml +8 -0
  578. package/locales/en/.agents/handoff/agents/qwen.json +16 -0
  579. package/locales/en/.agents/handoff/agents/skill.yaml +20 -0
  580. package/locales/en/.agents/k8s_manifests_conventions/agents/claude.json +18 -0
  581. package/locales/en/.agents/k8s_manifests_conventions/agents/copilot.json +18 -0
  582. package/locales/en/.agents/k8s_manifests_conventions/agents/gemini.json +18 -0
  583. package/locales/en/.agents/k8s_manifests_conventions/agents/openai.yaml +8 -0
  584. package/locales/en/.agents/k8s_manifests_conventions/agents/qwen.json +18 -0
  585. package/locales/en/.agents/k8s_manifests_conventions/agents/skill.yaml +22 -0
  586. package/locales/en/.agents/memory/agents/claude.json +15 -0
  587. package/locales/en/.agents/memory/agents/copilot.json +15 -0
  588. package/locales/en/.agents/memory/agents/gemini.json +15 -0
  589. package/locales/en/.agents/memory/agents/openai.yaml +8 -0
  590. package/locales/en/.agents/memory/agents/qwen.json +15 -0
  591. package/locales/en/.agents/memory/agents/skill.yaml +19 -0
  592. package/locales/en/.agents/mongodb_mongoose_best_practices/agents/claude.json +20 -0
  593. package/locales/en/.agents/mongodb_mongoose_best_practices/agents/copilot.json +20 -0
  594. package/locales/en/.agents/mongodb_mongoose_best_practices/agents/gemini.json +20 -0
  595. package/locales/en/.agents/mongodb_mongoose_best_practices/agents/openai.yaml +8 -0
  596. package/locales/en/.agents/mongodb_mongoose_best_practices/agents/qwen.json +20 -0
  597. package/locales/en/.agents/mongodb_mongoose_best_practices/agents/skill.yaml +24 -0
  598. package/locales/en/.agents/n8n_pinecone_qdrant_supabase/SKILL.md +0 -2
  599. package/locales/en/.agents/n8n_pinecone_qdrant_supabase/agents/claude.json +20 -0
  600. package/locales/en/.agents/n8n_pinecone_qdrant_supabase/agents/copilot.json +20 -0
  601. package/locales/en/.agents/n8n_pinecone_qdrant_supabase/agents/gemini.json +20 -0
  602. package/locales/en/.agents/n8n_pinecone_qdrant_supabase/agents/openai.yaml +8 -0
  603. package/locales/en/.agents/n8n_pinecone_qdrant_supabase/agents/qwen.json +20 -0
  604. package/locales/en/.agents/n8n_pinecone_qdrant_supabase/agents/skill.yaml +24 -0
  605. package/locales/en/.agents/node_express_beast_practices/agents/claude.json +20 -0
  606. package/locales/en/.agents/node_express_beast_practices/agents/copilot.json +20 -0
  607. package/locales/en/.agents/node_express_beast_practices/agents/gemini.json +20 -0
  608. package/locales/en/.agents/node_express_beast_practices/agents/openai.yaml +8 -0
  609. package/locales/en/.agents/node_express_beast_practices/agents/qwen.json +20 -0
  610. package/locales/en/.agents/node_express_beast_practices/agents/skill.yaml +24 -0
  611. package/locales/en/.agents/observability_logging/agents/claude.json +17 -0
  612. package/locales/en/.agents/observability_logging/agents/copilot.json +17 -0
  613. package/locales/en/.agents/observability_logging/agents/gemini.json +17 -0
  614. package/locales/en/.agents/observability_logging/agents/openai.yaml +8 -0
  615. package/locales/en/.agents/observability_logging/agents/qwen.json +17 -0
  616. package/locales/en/.agents/observability_logging/agents/skill.yaml +21 -0
  617. package/locales/en/.agents/observability_plan/agents/claude.json +16 -0
  618. package/locales/en/.agents/observability_plan/agents/copilot.json +16 -0
  619. package/locales/en/.agents/observability_plan/agents/gemini.json +16 -0
  620. package/locales/en/.agents/observability_plan/agents/openai.yaml +8 -0
  621. package/locales/en/.agents/observability_plan/agents/qwen.json +16 -0
  622. package/locales/en/.agents/observability_plan/agents/skill.yaml +20 -0
  623. package/locales/en/.agents/observability_review/agents/claude.json +16 -0
  624. package/locales/en/.agents/observability_review/agents/copilot.json +16 -0
  625. package/locales/en/.agents/observability_review/agents/gemini.json +16 -0
  626. package/locales/en/.agents/observability_review/agents/openai.yaml +8 -0
  627. package/locales/en/.agents/observability_review/agents/qwen.json +16 -0
  628. package/locales/en/.agents/observability_review/agents/skill.yaml +20 -0
  629. package/locales/en/.agents/performance_review_baseline/agents/claude.json +18 -0
  630. package/locales/en/.agents/performance_review_baseline/agents/copilot.json +18 -0
  631. package/locales/en/.agents/performance_review_baseline/agents/gemini.json +18 -0
  632. package/locales/en/.agents/performance_review_baseline/agents/openai.yaml +8 -0
  633. package/locales/en/.agents/performance_review_baseline/agents/qwen.json +18 -0
  634. package/locales/en/.agents/performance_review_baseline/agents/skill.yaml +22 -0
  635. package/locales/en/.agents/pm_backlog/agents/claude.json +18 -0
  636. package/locales/en/.agents/pm_backlog/agents/copilot.json +18 -0
  637. package/locales/en/.agents/pm_backlog/agents/gemini.json +18 -0
  638. package/locales/en/.agents/pm_backlog/agents/openai.yaml +8 -0
  639. package/locales/en/.agents/pm_backlog/agents/qwen.json +18 -0
  640. package/locales/en/.agents/pm_backlog/agents/skill.yaml +22 -0
  641. package/locales/en/.agents/pm_interview/agents/claude.json +17 -0
  642. package/locales/en/.agents/pm_interview/agents/copilot.json +17 -0
  643. package/locales/en/.agents/pm_interview/agents/gemini.json +17 -0
  644. package/locales/en/.agents/pm_interview/agents/openai.yaml +8 -0
  645. package/locales/en/.agents/pm_interview/agents/qwen.json +17 -0
  646. package/locales/en/.agents/pm_interview/agents/skill.yaml +21 -0
  647. package/locales/en/.agents/pm_prd/agents/claude.json +18 -0
  648. package/locales/en/.agents/pm_prd/agents/copilot.json +18 -0
  649. package/locales/en/.agents/pm_prd/agents/gemini.json +18 -0
  650. package/locales/en/.agents/pm_prd/agents/openai.yaml +8 -0
  651. package/locales/en/.agents/pm_prd/agents/qwen.json +18 -0
  652. package/locales/en/.agents/pm_prd/agents/skill.yaml +22 -0
  653. package/locales/en/.agents/qa_api_contract_tests/agents/claude.json +19 -0
  654. package/locales/en/.agents/qa_api_contract_tests/agents/copilot.json +19 -0
  655. package/locales/en/.agents/qa_api_contract_tests/agents/gemini.json +19 -0
  656. package/locales/en/.agents/qa_api_contract_tests/agents/openai.yaml +8 -0
  657. package/locales/en/.agents/qa_api_contract_tests/agents/qwen.json +19 -0
  658. package/locales/en/.agents/qa_api_contract_tests/agents/skill.yaml +23 -0
  659. package/locales/en/.agents/qa_browser_testing/SKILL.md +87 -0
  660. package/locales/en/.agents/qa_browser_testing/agents/claude.json +19 -0
  661. package/locales/en/.agents/qa_browser_testing/agents/copilot.json +19 -0
  662. package/locales/en/.agents/qa_browser_testing/agents/gemini.json +19 -0
  663. package/locales/en/.agents/qa_browser_testing/agents/openai.yaml +8 -0
  664. package/locales/en/.agents/qa_browser_testing/agents/qwen.json +19 -0
  665. package/locales/en/.agents/qa_browser_testing/agents/skill.yaml +23 -0
  666. package/locales/en/.agents/qa_e2e_playwright/SKILL.md +116 -0
  667. package/locales/en/.agents/qa_e2e_playwright/agents/claude.json +19 -0
  668. package/locales/en/.agents/qa_e2e_playwright/agents/copilot.json +19 -0
  669. package/locales/en/.agents/qa_e2e_playwright/agents/gemini.json +19 -0
  670. package/locales/en/.agents/qa_e2e_playwright/agents/openai.yaml +8 -0
  671. package/locales/en/.agents/qa_e2e_playwright/agents/qwen.json +19 -0
  672. package/locales/en/.agents/qa_e2e_playwright/agents/skill.yaml +23 -0
  673. package/locales/en/.agents/qa_manual_run/agents/claude.json +18 -0
  674. package/locales/en/.agents/qa_manual_run/agents/copilot.json +18 -0
  675. package/locales/en/.agents/qa_manual_run/agents/gemini.json +18 -0
  676. package/locales/en/.agents/qa_manual_run/agents/openai.yaml +8 -0
  677. package/locales/en/.agents/qa_manual_run/agents/qwen.json +18 -0
  678. package/locales/en/.agents/qa_manual_run/agents/skill.yaml +22 -0
  679. package/locales/en/.agents/qa_security_smoke_tests/agents/claude.json +19 -0
  680. package/locales/en/.agents/qa_security_smoke_tests/agents/copilot.json +19 -0
  681. package/locales/en/.agents/qa_security_smoke_tests/agents/gemini.json +19 -0
  682. package/locales/en/.agents/qa_security_smoke_tests/agents/openai.yaml +8 -0
  683. package/locales/en/.agents/qa_security_smoke_tests/agents/qwen.json +19 -0
  684. package/locales/en/.agents/qa_security_smoke_tests/agents/skill.yaml +23 -0
  685. package/locales/en/.agents/qa_test_plan/agents/claude.json +18 -0
  686. package/locales/en/.agents/qa_test_plan/agents/copilot.json +18 -0
  687. package/locales/en/.agents/qa_test_plan/agents/gemini.json +18 -0
  688. package/locales/en/.agents/qa_test_plan/agents/openai.yaml +8 -0
  689. package/locales/en/.agents/qa_test_plan/agents/qwen.json +18 -0
  690. package/locales/en/.agents/qa_test_plan/agents/skill.yaml +22 -0
  691. package/locales/en/.agents/qa_ui_a11y_smoke/agents/claude.json +19 -0
  692. package/locales/en/.agents/qa_ui_a11y_smoke/agents/copilot.json +19 -0
  693. package/locales/en/.agents/qa_ui_a11y_smoke/agents/gemini.json +19 -0
  694. package/locales/en/.agents/qa_ui_a11y_smoke/agents/openai.yaml +8 -0
  695. package/locales/en/.agents/qa_ui_a11y_smoke/agents/qwen.json +19 -0
  696. package/locales/en/.agents/qa_ui_a11y_smoke/agents/skill.yaml +23 -0
  697. package/locales/en/.agents/react_15_3_wix_iframe/agents/claude.json +21 -0
  698. package/locales/en/.agents/react_15_3_wix_iframe/agents/copilot.json +21 -0
  699. package/locales/en/.agents/react_15_3_wix_iframe/agents/gemini.json +21 -0
  700. package/locales/en/.agents/react_15_3_wix_iframe/agents/openai.yaml +8 -0
  701. package/locales/en/.agents/react_15_3_wix_iframe/agents/qwen.json +21 -0
  702. package/locales/en/.agents/react_15_3_wix_iframe/agents/skill.yaml +25 -0
  703. package/locales/en/.agents/react_beast_practices/agents/claude.json +18 -0
  704. package/locales/en/.agents/react_beast_practices/agents/copilot.json +18 -0
  705. package/locales/en/.agents/react_beast_practices/agents/gemini.json +18 -0
  706. package/locales/en/.agents/react_beast_practices/agents/openai.yaml +8 -0
  707. package/locales/en/.agents/react_beast_practices/agents/qwen.json +18 -0
  708. package/locales/en/.agents/react_beast_practices/agents/skill.yaml +22 -0
  709. package/locales/en/.agents/release_gate/agents/claude.json +17 -0
  710. package/locales/en/.agents/release_gate/agents/copilot.json +17 -0
  711. package/locales/en/.agents/release_gate/agents/gemini.json +17 -0
  712. package/locales/en/.agents/release_gate/agents/openai.yaml +8 -0
  713. package/locales/en/.agents/release_gate/agents/qwen.json +17 -0
  714. package/locales/en/.agents/release_gate/agents/skill.yaml +21 -0
  715. package/locales/en/.agents/release_gate_checklist_template/agents/claude.json +20 -0
  716. package/locales/en/.agents/release_gate_checklist_template/agents/copilot.json +20 -0
  717. package/locales/en/.agents/release_gate_checklist_template/agents/gemini.json +20 -0
  718. package/locales/en/.agents/release_gate_checklist_template/agents/openai.yaml +8 -0
  719. package/locales/en/.agents/release_gate_checklist_template/agents/qwen.json +20 -0
  720. package/locales/en/.agents/release_gate_checklist_template/agents/skill.yaml +24 -0
  721. package/locales/en/.agents/review_reference_snippets/agents/claude.json +19 -0
  722. package/locales/en/.agents/review_reference_snippets/agents/copilot.json +19 -0
  723. package/locales/en/.agents/review_reference_snippets/agents/gemini.json +19 -0
  724. package/locales/en/.agents/review_reference_snippets/agents/openai.yaml +8 -0
  725. package/locales/en/.agents/review_reference_snippets/agents/qwen.json +19 -0
  726. package/locales/en/.agents/review_reference_snippets/agents/skill.yaml +23 -0
  727. package/locales/en/.agents/security_baseline_dev/agents/claude.json +19 -0
  728. package/locales/en/.agents/security_baseline_dev/agents/copilot.json +19 -0
  729. package/locales/en/.agents/security_baseline_dev/agents/gemini.json +19 -0
  730. package/locales/en/.agents/security_baseline_dev/agents/openai.yaml +8 -0
  731. package/locales/en/.agents/security_baseline_dev/agents/qwen.json +19 -0
  732. package/locales/en/.agents/security_baseline_dev/agents/skill.yaml +23 -0
  733. package/locales/en/.agents/security_review/agents/claude.json +18 -0
  734. package/locales/en/.agents/security_review/agents/copilot.json +18 -0
  735. package/locales/en/.agents/security_review/agents/gemini.json +18 -0
  736. package/locales/en/.agents/security_review/agents/openai.yaml +8 -0
  737. package/locales/en/.agents/security_review/agents/qwen.json +18 -0
  738. package/locales/en/.agents/security_review/agents/skill.yaml +22 -0
  739. package/locales/en/.agents/security_review_baseline/SKILL.md +14 -14
  740. package/locales/en/.agents/security_review_baseline/agents/claude.json +18 -0
  741. package/locales/en/.agents/security_review_baseline/agents/copilot.json +18 -0
  742. package/locales/en/.agents/security_review_baseline/agents/gemini.json +18 -0
  743. package/locales/en/.agents/security_review_baseline/agents/openai.yaml +8 -0
  744. package/locales/en/.agents/security_review_baseline/agents/qwen.json +18 -0
  745. package/locales/en/.agents/security_review_baseline/agents/skill.yaml +22 -0
  746. package/locales/en/.agents/state_rtk_beast_practices/SKILL.md +8 -8
  747. package/locales/en/.agents/state_rtk_beast_practices/agents/claude.json +20 -0
  748. package/locales/en/.agents/state_rtk_beast_practices/agents/copilot.json +20 -0
  749. package/locales/en/.agents/state_rtk_beast_practices/agents/gemini.json +20 -0
  750. package/locales/en/.agents/state_rtk_beast_practices/agents/openai.yaml +8 -0
  751. package/locales/en/.agents/state_rtk_beast_practices/agents/qwen.json +20 -0
  752. package/locales/en/.agents/state_rtk_beast_practices/agents/skill.yaml +24 -0
  753. package/locales/en/.agents/state_zustand_beast_practices/SKILL.md +5 -5
  754. package/locales/en/.agents/state_zustand_beast_practices/agents/claude.json +20 -0
  755. package/locales/en/.agents/state_zustand_beast_practices/agents/copilot.json +20 -0
  756. package/locales/en/.agents/state_zustand_beast_practices/agents/gemini.json +20 -0
  757. package/locales/en/.agents/state_zustand_beast_practices/agents/openai.yaml +8 -0
  758. package/locales/en/.agents/state_zustand_beast_practices/agents/qwen.json +20 -0
  759. package/locales/en/.agents/state_zustand_beast_practices/agents/skill.yaml +24 -0
  760. package/locales/en/.agents/styling_css_stack/SKILL.md +6 -6
  761. package/locales/en/.agents/styling_css_stack/agents/claude.json +19 -0
  762. package/locales/en/.agents/styling_css_stack/agents/copilot.json +19 -0
  763. package/locales/en/.agents/styling_css_stack/agents/gemini.json +19 -0
  764. package/locales/en/.agents/styling_css_stack/agents/openai.yaml +8 -0
  765. package/locales/en/.agents/styling_css_stack/agents/qwen.json +19 -0
  766. package/locales/en/.agents/styling_css_stack/agents/skill.yaml +23 -0
  767. package/locales/en/.agents/system_design_checklist/SKILL.md +30 -30
  768. package/locales/en/.agents/system_design_checklist/agents/claude.json +17 -0
  769. package/locales/en/.agents/system_design_checklist/agents/copilot.json +17 -0
  770. package/locales/en/.agents/system_design_checklist/agents/gemini.json +17 -0
  771. package/locales/en/.agents/system_design_checklist/agents/openai.yaml +8 -0
  772. package/locales/en/.agents/system_design_checklist/agents/qwen.json +17 -0
  773. package/locales/en/.agents/system_design_checklist/agents/skill.yaml +21 -0
  774. package/locales/en/.agents/tanstack_beast_practices/SKILL.md +8 -8
  775. package/locales/en/.agents/tanstack_beast_practices/agents/claude.json +18 -0
  776. package/locales/en/.agents/tanstack_beast_practices/agents/copilot.json +18 -0
  777. package/locales/en/.agents/tanstack_beast_practices/agents/gemini.json +18 -0
  778. package/locales/en/.agents/tanstack_beast_practices/agents/openai.yaml +8 -0
  779. package/locales/en/.agents/tanstack_beast_practices/agents/qwen.json +18 -0
  780. package/locales/en/.agents/tanstack_beast_practices/agents/skill.yaml +22 -0
  781. package/locales/en/.agents/tdd_workflow/SKILL.md +22 -22
  782. package/locales/en/.agents/tdd_workflow/agents/claude.json +17 -0
  783. package/locales/en/.agents/tdd_workflow/agents/copilot.json +17 -0
  784. package/locales/en/.agents/tdd_workflow/agents/gemini.json +17 -0
  785. package/locales/en/.agents/tdd_workflow/agents/openai.yaml +8 -0
  786. package/locales/en/.agents/tdd_workflow/agents/qwen.json +17 -0
  787. package/locales/en/.agents/tdd_workflow/agents/skill.yaml +21 -0
  788. package/locales/en/.agents/testing_strategy_js/SKILL.md +14 -14
  789. package/locales/en/.agents/testing_strategy_js/agents/claude.json +19 -0
  790. package/locales/en/.agents/testing_strategy_js/agents/copilot.json +19 -0
  791. package/locales/en/.agents/testing_strategy_js/agents/gemini.json +19 -0
  792. package/locales/en/.agents/testing_strategy_js/agents/openai.yaml +8 -0
  793. package/locales/en/.agents/testing_strategy_js/agents/qwen.json +19 -0
  794. package/locales/en/.agents/testing_strategy_js/agents/skill.yaml +23 -0
  795. package/locales/en/.agents/tests_quality_review/SKILL.md +11 -11
  796. package/locales/en/.agents/tests_quality_review/agents/claude.json +18 -0
  797. package/locales/en/.agents/tests_quality_review/agents/copilot.json +18 -0
  798. package/locales/en/.agents/tests_quality_review/agents/gemini.json +18 -0
  799. package/locales/en/.agents/tests_quality_review/agents/openai.yaml +8 -0
  800. package/locales/en/.agents/tests_quality_review/agents/qwen.json +18 -0
  801. package/locales/en/.agents/tests_quality_review/agents/skill.yaml +22 -0
  802. package/locales/en/.agents/threat_model_baseline/SKILL.md +35 -35
  803. package/locales/en/.agents/threat_model_baseline/agents/claude.json +18 -0
  804. package/locales/en/.agents/threat_model_baseline/agents/copilot.json +18 -0
  805. package/locales/en/.agents/threat_model_baseline/agents/gemini.json +18 -0
  806. package/locales/en/.agents/threat_model_baseline/agents/openai.yaml +8 -0
  807. package/locales/en/.agents/threat_model_baseline/agents/qwen.json +18 -0
  808. package/locales/en/.agents/threat_model_baseline/agents/skill.yaml +22 -0
  809. package/locales/en/.agents/tooling_bun_biome/SKILL.md +6 -6
  810. package/locales/en/.agents/tooling_bun_biome/agents/claude.json +19 -0
  811. package/locales/en/.agents/tooling_bun_biome/agents/copilot.json +19 -0
  812. package/locales/en/.agents/tooling_bun_biome/agents/gemini.json +19 -0
  813. package/locales/en/.agents/tooling_bun_biome/agents/openai.yaml +8 -0
  814. package/locales/en/.agents/tooling_bun_biome/agents/qwen.json +19 -0
  815. package/locales/en/.agents/tooling_bun_biome/agents/skill.yaml +23 -0
  816. package/locales/en/.agents/typescript_beast_practices/SKILL.md +8 -8
  817. package/locales/en/.agents/typescript_beast_practices/agents/claude.json +18 -0
  818. package/locales/en/.agents/typescript_beast_practices/agents/copilot.json +18 -0
  819. package/locales/en/.agents/typescript_beast_practices/agents/gemini.json +18 -0
  820. package/locales/en/.agents/typescript_beast_practices/agents/openai.yaml +8 -0
  821. package/locales/en/.agents/typescript_beast_practices/agents/qwen.json +18 -0
  822. package/locales/en/.agents/typescript_beast_practices/agents/skill.yaml +22 -0
  823. package/locales/en/.agents/ui_a11y_smoke_review/SKILL.md +8 -8
  824. package/locales/en/.agents/ui_a11y_smoke_review/agents/claude.json +20 -0
  825. package/locales/en/.agents/ui_a11y_smoke_review/agents/copilot.json +20 -0
  826. package/locales/en/.agents/ui_a11y_smoke_review/agents/gemini.json +20 -0
  827. package/locales/en/.agents/ui_a11y_smoke_review/agents/openai.yaml +8 -0
  828. package/locales/en/.agents/ui_a11y_smoke_review/agents/qwen.json +20 -0
  829. package/locales/en/.agents/ui_a11y_smoke_review/agents/skill.yaml +24 -0
  830. package/locales/en/.agents/ui_inventory/SKILL.md +24 -24
  831. package/locales/en/.agents/ui_inventory/agents/claude.json +18 -0
  832. package/locales/en/.agents/ui_inventory/agents/copilot.json +18 -0
  833. package/locales/en/.agents/ui_inventory/agents/gemini.json +18 -0
  834. package/locales/en/.agents/ui_inventory/agents/openai.yaml +8 -0
  835. package/locales/en/.agents/ui_inventory/agents/qwen.json +18 -0
  836. package/locales/en/.agents/ui_inventory/agents/skill.yaml +22 -0
  837. package/locales/en/.agents/ux_discovery/SKILL.md +31 -31
  838. package/locales/en/.agents/ux_discovery/agents/claude.json +17 -0
  839. package/locales/en/.agents/ux_discovery/agents/copilot.json +17 -0
  840. package/locales/en/.agents/ux_discovery/agents/gemini.json +17 -0
  841. package/locales/en/.agents/ux_discovery/agents/openai.yaml +8 -0
  842. package/locales/en/.agents/ux_discovery/agents/qwen.json +17 -0
  843. package/locales/en/.agents/ux_discovery/agents/skill.yaml +21 -0
  844. package/locales/en/.agents/ux_spec/SKILL.md +26 -26
  845. package/locales/en/.agents/ux_spec/agents/claude.json +18 -0
  846. package/locales/en/.agents/ux_spec/agents/copilot.json +18 -0
  847. package/locales/en/.agents/ux_spec/agents/gemini.json +18 -0
  848. package/locales/en/.agents/ux_spec/agents/openai.yaml +8 -0
  849. package/locales/en/.agents/ux_spec/agents/qwen.json +18 -0
  850. package/locales/en/.agents/ux_spec/agents/skill.yaml +22 -0
  851. package/locales/en/.agents/wix_iframe_sdk/SKILL.md +1 -3
  852. package/locales/en/.agents/wix_iframe_sdk/agents/claude.json +19 -0
  853. package/locales/en/.agents/wix_iframe_sdk/agents/copilot.json +19 -0
  854. package/locales/en/.agents/wix_iframe_sdk/agents/gemini.json +19 -0
  855. package/locales/en/.agents/wix_iframe_sdk/agents/openai.yaml +8 -0
  856. package/locales/en/.agents/wix_iframe_sdk/agents/qwen.json +19 -0
  857. package/locales/en/.agents/wix_iframe_sdk/agents/skill.yaml +23 -0
  858. package/locales/en/.agents/wix_self_hosted_embedded_script/agents/claude.json +21 -0
  859. package/locales/en/.agents/wix_self_hosted_embedded_script/agents/copilot.json +21 -0
  860. package/locales/en/.agents/wix_self_hosted_embedded_script/agents/gemini.json +21 -0
  861. package/locales/en/.agents/wix_self_hosted_embedded_script/agents/openai.yaml +8 -0
  862. package/locales/en/.agents/wix_self_hosted_embedded_script/agents/qwen.json +21 -0
  863. package/locales/en/.agents/wix_self_hosted_embedded_script/agents/skill.yaml +25 -0
  864. package/locales/en/.agents/workflows/auto-restart-containers.md +24 -0
  865. package/locales/en/.agents/workflows/pipeline-rules.md +24 -0
  866. package/locales/en/.agents/workflows/start-task.md +27 -0
  867. package/locales/en/AGENTS.md +4 -1
  868. package/locales/en/AGENTS.yaml +105 -0
  869. package/locales/en/agents/architect.md +227 -159
  870. package/locales/en/agents/conductor.md +314 -210
  871. package/locales/en/agents/devops.md +256 -0
  872. package/locales/en/agents/orchestrator.claude.json +95 -0
  873. package/locales/en/agents/orchestrator.copilot.json +95 -0
  874. package/locales/en/agents/orchestrator.gemini.json +95 -0
  875. package/locales/en/agents/orchestrator.openai.yaml +92 -0
  876. package/locales/en/agents/orchestrator.qwen.json +95 -0
  877. package/locales/en/agents/product_manager.md +214 -119
  878. package/locales/en/agents/reviewer.md +242 -194
  879. package/locales/en/agents/senior_full_stack.md +223 -116
  880. package/locales/en/agents/tester.md +280 -185
  881. package/locales/en/agents/ux_ui_designer.md +281 -146
  882. package/package.json +54 -53
@@ -1,4 +1,4 @@
1
- <!-- codex: reasoning=medium; note="UX flows/spec; raise to high for complex parity review" -->
1
+ <!-- codex: reasoning=medium; note="UX flows/spec; raise to high for complex parity review" -->
2
2
  # Agent: UX/UI Designer
3
3
 
4
4
  ## Назначение
@@ -10,30 +10,60 @@
10
10
  - критерии приемки UX/UI,
11
11
  - (если есть дизайн-файлы) parity review с итоговой реализацией.
12
12
 
13
+ ---
14
+
15
+ ## UX Philosophy (как агент принимает решения)
16
+
17
+ При любом дизайн-решении — приоритеты в порядке убывания:
18
+
19
+ 1. **Clarity over cleverness** — понятное всегда лучше умного
20
+ 2. **User mental model > System model** — интерфейс отражает то, как пользователь думает, не то, как устроен бэкенд
21
+ 3. **Progressive disclosure** — показывать сложность только когда пользователь готов
22
+ 4. **Fail gracefully** — каждый сбой — это возможность помочь, не просто сообщение об ошибке
23
+ 5. **Consistency is a feature** — один паттерн для одного типа действий, без исключений
24
+
25
+ При конфликте требований: **UX clarity > visual beauty > technical convenience.**
26
+
27
+ Для каждого нетривиального дизайн-решения агент обязан объяснить **WHY** — почему выбрано именно это, а не альтернатива.
28
+
29
+ ---
30
+
13
31
  ## Входы
14
- - PRD / запрос пользователя
32
+ - PRD (Approved) + Handoff Envelope от PM (открытые UX-вопросы)
15
33
  - Любые дизайн-материалы (Figma/скриншоты/гайдлайны/брендбук), если есть
16
34
  - Ограничения проекта: стек, сроки, аудитория, платформы, локализация
17
35
  - Требования по доступности (если есть) и общий DoD
18
36
 
37
+ ---
38
+
19
39
  ## Обязательный UX Clarification Protocol (строго)
20
40
  После получения PRD/запроса UX/UI обязан выполнить:
21
41
 
22
42
  ### Шаг 1 — Summary (до вопросов)
23
- Кратко “Что я понял”:
43
+ Кратко "Что я понял":
24
44
  - Цель продукта и ключевая ценность
25
45
  - Пользователи/роли и их задачи
26
46
  - Основные user flows (MVP)
27
47
  - Контент/данные (что отображаем/вводим)
28
48
  - Дизайн-ограничения (бренд, плотность, tone)
29
49
  - Предположения
30
- - Открытые вопросы
50
+ - Открытые вопросы (включая те, что передал PM)
51
+
52
+ ### Шаг 2 — Questions (минимум 5, лучше 10+)
53
+ Задать вопросы по:
54
+ - обязательный первый вопрос (задать дословно): `Можно ли использовать Playwright?`
55
+ - обязательный второй вопрос (задать дословно): `Какой source of truth для дизайна? (a) Stitch — сравниваю реализацию со Stitch-скриншотами через MCP, (b) Figma — сравниваю с Figma-макетами, (c) HTML-референс — сравниваю с файлами из репозитория`
56
+ - платформе (web/mobile/responsive) и целевой аудитории
57
+ - **визуальному стилю** — задавать в такой форме:
58
+ > "Назовите 1–2 продукта, которые вам нравятся визуально (не обязательно из вашей ниши). Назовите 1–2 продукта, которых хотите избежать по стилю."
59
+
60
+ Интерпретация ответов:
61
+ - Linear / Figma / Vercel → minimal, dark-capable, dense, monochromatic + accent
62
+ - Notion / Coda → neutral, document-like, low visual noise
63
+ - Duolingo / Headspace → rounded, warm, illustrations, playful
64
+ - Stripe / Wise → trustworthy, clean, conversion-optimized
65
+ - "Не знаю" → уточнить tone: professional / approachable / bold
31
66
 
32
- ### Шаг 2 — Questions (минимум 5, лучше 10+)
33
- Задать вопросы по:
34
- - обязательный первый вопрос (задать дословно): `Можно ли использовать Playwright?`
35
- - платформе (web/mobile/responsive) и целевой аудитории
36
- - визуальному стилю (строгий/дружелюбный, плотность, dark mode)
37
67
  - design system (shadcn/ui, MUI, Chakra, кастом) и ограничениям
38
68
  - навигации/IA (sidebar/topbar, глубина)
39
69
  - формам/валидации/сообщениям об ошибках
@@ -43,54 +73,84 @@
43
73
  - a11y (уровень, клавиатура, контраст)
44
74
  - нефункциональным UX ожиданиям (скорость, offline/slow, skeletons)
45
75
 
46
- **Минимум:** 5 вопросов.
76
+ **Минимум:** 5 вопросов.
47
77
  **Рекомендуемо:** 10–15 вопросов.
48
78
 
49
79
  ### Шаг 3 — Proposal + Approval (обязательно)
50
80
  После ответов пользователя:
51
81
  - предложить UX flows + IA + ключевые экраны
52
82
  - предложить design system + стиль (tokens/typography/spacing)
53
- - согласовать: Approved / правки”
83
+ - согласовать: "Approved / правки"
84
+
54
85
  **Без Approved:** считать как 🔴 P0 и не передавать дальше.
55
86
 
87
+ ### Шаг 3b — Targeted Revision Protocol
88
+ Если пользователь даёт правки (не full Approved):
89
+ 1. Явно перечислить что меняется: `"Меняю: [X, Y]. Не трогаю: [A, B, C]"`
90
+ 2. Показать только изменённые секции, пометить `[UPDATED]`
91
+ 3. Повторить Approval Request только для изменённых частей
92
+
93
+ **Запрещено:** перегенерировать весь Proposal при точечной правке.
94
+
95
+ ---
96
+
56
97
  ## Основные обязанности
57
- 1) Определить IA и основные потоки (MVP и далее).
58
- 2) Описать UX Spec:
98
+ 1. Определить IA и основные потоки (MVP и далее).
99
+ 2. Описать UX Spec:
59
100
  - экраны, состояния, ошибки, валидации,
60
101
  - навигация, основные компоненты,
61
102
  - правила поведения (loading/retry/empty),
62
103
  - edge cases.
63
- 3) Определить UI направление:
104
+ 3. Определить UI направление:
64
105
  - design system (предпочтение: shadcn/ui при современном React),
65
106
  - базовые токены/гайд (типографика, отступы, цвета, радиусы),
66
107
  - компоненты и их варианты.
67
- 4) Accessibility baseline:
108
+ 4. Accessibility baseline:
68
109
  - клавиатура, фокус, labels/aria, сообщения об ошибках.
69
- 5) Если предоставлены дизайн-файлы:
70
- - анализировать,
71
- - сформировать требования parity,
72
- - выбрать режим parity по ответу на `Можно ли использовать Playwright?`:
73
- - `Да` -> автоматизированный parity-сценарий с Playwright,
74
- - `Нет` -> ручной parity-сценарий для закрытой инфраструктуры,
75
- - выполнять parity после каждого `DEV-xx` среза и финально перед `RG`,
76
- - сравнить итоговую реализацию с дизайном (parity review) и выдать список расхождений.
110
+ 5. Если предоставлены дизайн-файлы:
111
+ - анализировать,
112
+ - сформировать требования parity с явным списком экранов и tolerance rules,
113
+ - выбрать режим parity по ответу на `Можно ли использовать Playwright?`:
114
+ - `Да` автоматизированный parity-сценарий с Playwright,
115
+ - `Нет` ручной parity-сценарий для закрытой инфраструктуры,
116
+ - выполнять parity после каждого `DEV-xx` среза и финально перед `RG`,
117
+ - сравнить итоговую реализацию с дизайном (parity review) и выдать список расхождений.
118
+
119
+ ---
77
120
 
78
121
  ## Anti-patterns (что запрещено)
79
- - “Нарисовать красиво” без потоков/состояний/валидации.
122
+ - "Нарисовать красиво" без потоков/состояний/валидации.
80
123
  - Отсутствие error/empty/loading состояний.
81
124
  - Разные паттерны в разных местах без объяснения.
82
125
  - Непредсказуемая навигация.
83
126
  - Игнорирование a11y (фокус/клавиатура/labels).
127
+ - Описывать только happy path без error/edge flows.
128
+ - Принимать "дружелюбный стиль" без запроса конкретных референсов.
129
+ - Давать Design Direction без объяснения WHY для каждого решения.
130
+ - Генерировать UX Spec без определения User Mental Model (JTBD).
131
+
132
+ ### Style Anti-patterns (запрещены всегда, независимо от стиля проекта)
133
+ - `box-shadow` > 4px на интерактивных элементах
134
+ - Gradient на кнопках (кроме явного brand requirement)
135
+ - Более 3 font-size на одном экране
136
+ - Placeholder text как единственный label для input
137
+ - Carousel/slider как primary content
138
+ - Disabled submit button до сабмита (использовать inline validation)
139
+ - Full-screen spinner вместо skeleton screen
140
+
141
+ ---
84
142
 
85
143
  ## Escalation Rules
86
144
  🔴 **P0 / BLOCKER** если:
87
- - нет утверждения UX Spec (Approved)
145
+ - нет утверждения UX Spec ("Approved")
88
146
  - отсутствуют критичные состояния (loading/error/empty) для ключевых экранов
89
147
  - нет согласованной design system/стиля
90
148
  - критичные требования PRD не покрыты потоками
91
149
 
92
150
  🟠 **P1** если:
93
- - есть спор по стилю/DS, но можно стартовать с временной схемой с явным статусом temporary
151
+ - есть спор по стилю/DS, но можно стартовать с временной схемой с явным статусом "temporary"
152
+
153
+ ---
94
154
 
95
155
  ## Используемые skills (вызовы)
96
156
  - $ux_discovery
@@ -101,8 +161,12 @@
101
161
  - $design_parity_review
102
162
  - $design_systems
103
163
  - $ui_a11y_smoke_review
164
+ - $google_stitch_skill — AI UI generation через StitchMCP (rapid ideation после Approved UX Proposal)
165
+
166
+ ---
104
167
 
105
168
  ## Формат ответа UX/UI (строго)
169
+
106
170
  ### 1) Summary (Что я понял)
107
171
  - Goal:
108
172
  - Users/Roles:
@@ -110,25 +174,55 @@
110
174
  - Content/Data:
111
175
  - Style constraints:
112
176
  - Assumptions:
113
- - Open questions:
177
+ - Open questions (включая переданные от PM):
114
178
 
115
- ### 2) Clarifying Questions (5+)
116
- 1) Можно ли использовать Playwright?
117
- 2) ...
118
- ...
179
+ ### 2) Clarifying Questions (5+)
180
+ 1. Можно ли использовать Playwright?
181
+ 2. Какой source of truth для дизайна? (a) Stitch, (b) Figma, (c) HTML-референс
182
+ 3. ...
119
183
 
120
184
  ### 3) UX Proposal (после ответов)
121
- - IA / Navigation:
122
- - Core flows (MVP):
123
- - Screens list:
124
- - States per screen (loading/empty/error/success):
125
- - Forms & validation rules:
126
- - Error messaging patterns:
127
- - Permissions/roles UX:
185
+
186
+ #### 3.1 User Mental Model
187
+ Для каждой роли — одна фраза через JTBD:
188
+ > "Когда [ситуация], я хочу [действие], чтобы [результат]"
189
+
190
+ #### 3.2 Critical Path (Moment of Truth)
191
+ Единственное самое важное действие в продукте.
192
+ Количество кликов от входа до этого действия. Цель: **≤ 3**.
193
+
194
+ #### 3.3 IA / Navigation
195
+ - Структура навигации с уровнями (L1 / L2 / L3)
196
+ - Обоснование выбора паттерна (sidebar vs topbar vs bottom nav) с **WHY**
197
+
198
+ #### 3.4 Flows
199
+ Для каждого MVP flow:
200
+ - Happy path (шаги)
201
+ - Error path (что может пойти не так + как реагируем)
202
+ - Edge case (нулевой контент, лимиты, права доступа)
203
+
204
+ #### 3.5 Screen Inventory
205
+ | Screen | User Goal | Entry | Exit | States |
206
+ |--------|-----------|-------|------|--------|
207
+ | ... | ... | ... | ... | loading / empty / error / success |
208
+
209
+ #### 3.6 Forms & Validation Rules
210
+ - Правила валидации по полям
211
+ - Паттерн показа ошибок (inline / toast / summary)
212
+
213
+ #### 3.7 Error Messaging Patterns
214
+ Три примера в тоне проекта:
215
+ - Empty state: `"..."`
216
+ - Error message: `"..."`
217
+ - Success: `"..."`
218
+
219
+ #### 3.8 Permissions / Roles UX
220
+ Что видно/доступно для каждой роли.
128
221
 
129
222
  ### 4) UI Direction
130
- - Chosen design system:
131
- - Tokens (typography/spacing/radius/colors):
223
+ - Chosen design system (с **WHY**):
224
+ - Style references: нравится — `[продукт]`, избегаем — `[продукт]`
225
+ - Tokens (typography / spacing / radius / colors):
132
226
  - Component inventory (buttons, inputs, modals, tables…):
133
227
  - Layout grid & responsiveness:
134
228
  - Dark mode (да/нет):
@@ -141,11 +235,48 @@
141
235
 
142
236
  ### 6) Final Summary + Approval Request
143
237
  - Итог:
144
- - Просьба: “Подтвердите: Approved / или правки списком”.
145
-
146
- ### 7) Handoff Notes (для ARCH/DEV)
147
- - Must-follow UI rules:
148
- - Component decisions:
149
- - Edge cases to implement:
150
- - Parity requirements (если есть дизайн-файлы):
151
- - Выбранный режим parity (Playwright Да/Нет + обоснование):
238
+ - Просьба: `"Подтвердите: Approved / или правки списком"`
239
+
240
+ ### 7) Handoff Notes (для ARCH/DEV)
241
+
242
+ #### 7.1 Non-negotiable Rules
243
+ Правила, которые нельзя изменять без согласования с UX (каждое — с обоснованием).
244
+
245
+ #### 7.2 Component Decisions
246
+ | Component | Decision | WHY | Alternative considered |
247
+ |-----------|----------|-----|------------------------|
248
+
249
+ #### 7.3 Edge Cases (приоритизированные)
250
+ - 🔴 Must (блокирует RG): ...
251
+ - 🟠 Should (до релиза): ...
252
+ - 🟡 Could (следующий спринт): ...
253
+
254
+ #### 7.4 Parity Requirements (если есть дизайн-файлы)
255
+ | Screen | Critical elements | Tolerance | Mode | Source of Truth |
256
+ |--------|-------------------|-----------|------|----------------|
257
+ | ... | ... | ... | Playwright / Manual | Stitch / Figma / HTML-ref |
258
+
259
+ #### 7.5 Open UX Debt
260
+ > "Сейчас: [временное решение] → Потом: [целевое решение]"
261
+
262
+ ### 8) Design Decision Log
263
+ | Решение | Альтернатива | Почему выбрали это | Кто решил |
264
+ |---------|--------------|--------------------|-----------|
265
+
266
+ ### Handoff Envelope → Architect + DEV
267
+ ```
268
+ HANDOFF TO: Architect, Senior Full Stack Developer
269
+ ARTIFACTS PRODUCED: UX Spec (Approved), Screen Inventory, Component Decisions
270
+ REQUIRED INPUTS FULFILLED: Flows ✅ | States ✅ | DS ✅ | A11y ✅ | Parity rules ✅
271
+ OPEN ITEMS: [open UX debt items]
272
+ BLOCKERS FOR NEXT PHASE: нет / [список если есть]
273
+ UX SPEC STATUS: Approved ✅
274
+ PARITY MODE: Playwright / Manual / N/A
275
+ DESIGN SOURCE OF TRUTH: Stitch / Figma / HTML-ref
276
+ ```
277
+
278
+ ## HANDOFF (Mandatory)
279
+ - Every UX output must end with a completed `Handoff Envelope`.
280
+ - Required fields: `HANDOFF TO`, `ARTIFACTS PRODUCED`, `REQUIRED INPUTS FULFILLED`, `OPEN ITEMS`, `BLOCKERS FOR NEXT PHASE`, `UX SPEC STATUS`, `PARITY MODE`.
281
+ - If `OPEN ITEMS` is not empty, include owner and due date per item.
282
+ - Missing HANDOFF block means UX phase is `BLOCKED` and cannot move to ARCH/DEV.
package/dist/doctor.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import fs from "fs-extra";
2
- import { getPlatformAdapter } from "./platforms/adapters.js";
3
2
  import { loadSourceCatalog } from "./catalog.js";
3
+ import { auditMetadataLayer } from "./metadataAudit.js";
4
+ import { getPlatformAdapter } from "./platforms/adapters.js";
4
5
  /**
5
6
  * Runs local diagnostics for source and destination readiness.
6
7
  * @param projectDir Repository root.
@@ -16,6 +17,10 @@ export async function runDoctor(projectDir, destinationDir, target) {
16
17
  const catalog = await loadSourceCatalog(projectDir);
17
18
  info.push(`Found ${Object.keys(catalog.agentFiles).length} agents.`);
18
19
  info.push(`Found ${Object.keys(catalog.skillFiles).length} skills.`);
20
+ const metadataAudit = await auditMetadataLayer(projectDir, catalog, target);
21
+ errors.push(...metadataAudit.errors);
22
+ warnings.push(...metadataAudit.warnings);
23
+ info.push(...metadataAudit.info);
19
24
  }
20
25
  catch (error) {
21
26
  errors.push(error.message);
package/dist/installer.js CHANGED
@@ -99,6 +99,10 @@ async function applyOperations(args) {
99
99
  for (const operation of args.operations) {
100
100
  const destination = operation.destinationPath;
101
101
  plannedFiles.push(destination);
102
+ if (!operation.generated && operation.optional && !(await fs.pathExists(operation.sourcePath))) {
103
+ skippedFiles.push(destination);
104
+ continue;
105
+ }
102
106
  const exists = await fs.pathExists(destination);
103
107
  if (exists && args.overwriteMode === "skip") {
104
108
  skippedFiles.push(destination);
@@ -0,0 +1,15 @@
1
+ import type { SourceCatalog, TargetId } from "./types.js";
2
+ interface MetadataAuditResult {
3
+ errors: string[];
4
+ warnings: string[];
5
+ info: string[];
6
+ }
7
+ /**
8
+ * Audits portable and vendor metadata sidecars for orchestrator and skills.
9
+ * @param projectDir Source root.
10
+ * @param catalog Loaded source catalog.
11
+ * @param target Target id used to choose vendor sidecars.
12
+ * @returns Categorized audit messages.
13
+ */
14
+ export declare function auditMetadataLayer(projectDir: string, catalog: SourceCatalog, target: TargetId): Promise<MetadataAuditResult>;
15
+ export {};
@@ -0,0 +1,277 @@
1
+ import fs from "fs-extra";
2
+ import { getOrchestratorPortableSourcePath, getOrchestratorVendorSourcePath, getSkillPortableSourcePath, getSkillVendorSourcePath } from "./platforms/metadataSidecars.js";
3
+ /**
4
+ * Audits portable and vendor metadata sidecars for orchestrator and skills.
5
+ * @param projectDir Source root.
6
+ * @param catalog Loaded source catalog.
7
+ * @param target Target id used to choose vendor sidecars.
8
+ * @returns Categorized audit messages.
9
+ */
10
+ export async function auditMetadataLayer(projectDir, catalog, target) {
11
+ const errors = [];
12
+ const warnings = [];
13
+ const info = [];
14
+ await auditOrchestrator(projectDir, target, errors, warnings);
15
+ await auditSkills(catalog, target, errors, warnings);
16
+ info.push(`Metadata audit target: ${target}.`);
17
+ info.push(`Metadata audit checked ${Object.keys(catalog.skillFiles).length} skills.`);
18
+ return { errors, warnings, info };
19
+ }
20
+ async function auditOrchestrator(projectDir, target, errors, warnings) {
21
+ const portablePath = getOrchestratorPortableSourcePath(projectDir);
22
+ const vendorPath = getOrchestratorVendorSourcePath(projectDir, target);
23
+ const portableLabel = "[metadata:orchestrator]";
24
+ const portable = await readYamlSidecar(portablePath, portableLabel, warnings, errors);
25
+ if (portable) {
26
+ ensureValue(portable, "name", "web_development_orchestra", portablePath, errors, portableLabel);
27
+ ensureRequired(portable, ["display_name", "description", "default_prompt"], portablePath, errors, portableLabel);
28
+ }
29
+ if (!(await fs.pathExists(vendorPath))) {
30
+ warnings.push(`${portableLabel} Missing target sidecar ${vendorPath}; install will continue with degraded metadata.`);
31
+ return;
32
+ }
33
+ if (target === "gpt-codex") {
34
+ const payload = await readYamlSidecar(vendorPath, portableLabel, warnings, errors);
35
+ if (!payload) {
36
+ return;
37
+ }
38
+ const interfaceSection = asObject(payload.interface);
39
+ if (!interfaceSection) {
40
+ errors.push(`${portableLabel} Missing interface section in ${vendorPath}.`);
41
+ return;
42
+ }
43
+ ensureRequired(interfaceSection, ["display_name", "short_description", "default_prompt"], vendorPath, errors, portableLabel, "interface.");
44
+ if (portable) {
45
+ compareYamlValues(interfaceSection, portable, ["display_name", "default_prompt"], vendorPath, portablePath, errors, portableLabel);
46
+ }
47
+ return;
48
+ }
49
+ const payload = await readJsonSidecar(vendorPath, portableLabel, errors);
50
+ if (!payload) {
51
+ return;
52
+ }
53
+ ensureValue(payload, "name", "web_development_orchestra", vendorPath, errors, portableLabel);
54
+ ensureRequired(payload, ["display_name", "description", "default_prompt"], vendorPath, errors, portableLabel);
55
+ if (portable) {
56
+ compareJsonValues(payload, portable, ["display_name", "description", "default_prompt"], vendorPath, portablePath, errors, portableLabel);
57
+ }
58
+ }
59
+ async function auditSkills(catalog, target, errors, warnings) {
60
+ const skillNames = Object.keys(catalog.skillFiles).sort((left, right) => left.localeCompare(right));
61
+ for (const skillName of skillNames) {
62
+ const skillFile = catalog.skillFiles[skillName];
63
+ if (!skillFile) {
64
+ continue;
65
+ }
66
+ const label = `[metadata:skill:${skillName}]`;
67
+ const frontmatter = parseFrontmatter(await fs.readFile(skillFile, "utf8"));
68
+ if (frontmatter.name !== skillName) {
69
+ errors.push(`${label} Frontmatter name mismatch in ${skillFile}; expected ${skillName}.`);
70
+ }
71
+ const portablePath = getSkillPortableSourcePath(skillFile);
72
+ const vendorPath = getSkillVendorSourcePath(skillFile, target);
73
+ const portable = await readYamlSidecar(portablePath, label, warnings, errors);
74
+ if (portable) {
75
+ ensureValue(portable, "name", skillName, portablePath, errors, label);
76
+ ensureRequired(portable, ["display_name", "description", "default_prompt"], portablePath, errors, label);
77
+ if (frontmatter.description && portable.description !== frontmatter.description) {
78
+ errors.push(`${label} description mismatch between ${skillFile} and ${portablePath}.`);
79
+ }
80
+ }
81
+ if (!(await fs.pathExists(vendorPath))) {
82
+ warnings.push(`${label} Missing target sidecar ${vendorPath}; install will continue with degraded metadata.`);
83
+ continue;
84
+ }
85
+ if (target === "gpt-codex") {
86
+ const payload = await readYamlSidecar(vendorPath, label, warnings, errors);
87
+ if (!payload) {
88
+ continue;
89
+ }
90
+ const interfaceSection = asObject(payload.interface);
91
+ if (!interfaceSection) {
92
+ errors.push(`${label} Missing interface section in ${vendorPath}.`);
93
+ continue;
94
+ }
95
+ ensureRequired(interfaceSection, ["display_name", "short_description", "default_prompt"], vendorPath, errors, label, "interface.");
96
+ if (portable) {
97
+ compareYamlValues(interfaceSection, portable, ["display_name", "default_prompt"], vendorPath, portablePath, errors, label);
98
+ }
99
+ continue;
100
+ }
101
+ const payload = await readJsonSidecar(vendorPath, label, errors);
102
+ if (!payload) {
103
+ continue;
104
+ }
105
+ ensureValue(payload, "name", skillName, vendorPath, errors, label);
106
+ ensureRequired(payload, ["display_name", "description", "default_prompt"], vendorPath, errors, label);
107
+ if (portable) {
108
+ compareJsonValues(payload, portable, ["display_name", "description", "default_prompt"], vendorPath, portablePath, errors, label);
109
+ }
110
+ }
111
+ }
112
+ async function readYamlSidecar(filePath, label, warnings, errors) {
113
+ if (!(await fs.pathExists(filePath))) {
114
+ warnings.push(`${label} Missing portable sidecar ${filePath}; install will continue with degraded metadata.`);
115
+ return null;
116
+ }
117
+ try {
118
+ const text = await fs.readFile(filePath, "utf8");
119
+ const parsed = parseSimpleYaml(text);
120
+ if (!isObject(parsed)) {
121
+ errors.push(`${label} Expected YAML mapping in ${filePath}.`);
122
+ return null;
123
+ }
124
+ return parsed;
125
+ }
126
+ catch (error) {
127
+ errors.push(`${label} Invalid YAML in ${filePath}: ${error.message}`);
128
+ return null;
129
+ }
130
+ }
131
+ async function readJsonSidecar(filePath, label, errors) {
132
+ try {
133
+ const payload = JSON.parse(await fs.readFile(filePath, "utf8"));
134
+ if (!isObject(payload)) {
135
+ errors.push(`${label} Expected JSON object in ${filePath}.`);
136
+ return null;
137
+ }
138
+ return payload;
139
+ }
140
+ catch (error) {
141
+ errors.push(`${label} Invalid JSON in ${filePath}: ${error.message}`);
142
+ return null;
143
+ }
144
+ }
145
+ function parseFrontmatter(text) {
146
+ const normalized = text.replace(/\r\n/g, "\n");
147
+ const match = normalized.match(/^\ufeff?---\n([\s\S]*?)\n---\n?/);
148
+ if (!match) {
149
+ return {};
150
+ }
151
+ const result = {};
152
+ for (const rawLine of match[1].split("\n")) {
153
+ const line = rawLine.trim();
154
+ if (!line || !line.includes(":")) {
155
+ continue;
156
+ }
157
+ const [key, ...valueParts] = line.split(":");
158
+ const value = valueParts.join(":").trim().replace(/^['"]|['"]$/g, "");
159
+ if (key.trim() === "name") {
160
+ result.name = value;
161
+ }
162
+ if (key.trim() === "description") {
163
+ result.description = value;
164
+ }
165
+ }
166
+ return result;
167
+ }
168
+ function ensureRequired(payload, keys, filePath, errors, label, prefix = "") {
169
+ for (const key of keys) {
170
+ const value = payload[key];
171
+ if (typeof value !== "string" || value.trim().length === 0) {
172
+ errors.push(`${label} Missing ${prefix}${key} in ${filePath}.`);
173
+ }
174
+ }
175
+ }
176
+ function ensureValue(payload, key, expected, filePath, errors, label) {
177
+ if (payload[key] !== expected) {
178
+ errors.push(`${label} ${key} mismatch in ${filePath}; expected ${expected}.`);
179
+ }
180
+ }
181
+ function compareJsonValues(payload, source, keys, vendorPath, portablePath, errors, label) {
182
+ for (const key of keys) {
183
+ if (payload[key] !== source[key]) {
184
+ errors.push(`${label} ${key} mismatch between ${portablePath} and ${vendorPath}.`);
185
+ }
186
+ }
187
+ }
188
+ function compareYamlValues(payload, source, keys, vendorPath, portablePath, errors, label) {
189
+ for (const key of keys) {
190
+ if (payload[key] !== source[key]) {
191
+ errors.push(`${label} ${key} mismatch between ${portablePath} and ${vendorPath}.`);
192
+ }
193
+ }
194
+ }
195
+ function parseSimpleYaml(text) {
196
+ const lines = text
197
+ .split(/\r?\n/)
198
+ .map((line) => line.replace(/\s+$/, ""))
199
+ .filter((line) => line.trim().length > 0);
200
+ const root = {};
201
+ const stack = [{ indent: -1, value: root }];
202
+ for (let index = 0; index < lines.length; index += 1) {
203
+ const line = lines[index] ?? "";
204
+ const indent = line.length - line.trimStart().length;
205
+ const stripped = line.trim();
206
+ while (stack.length > 1 && indent <= stack[stack.length - 1].indent) {
207
+ stack.pop();
208
+ }
209
+ const container = stack[stack.length - 1].value;
210
+ if (stripped.startsWith("- ")) {
211
+ if (!Array.isArray(container)) {
212
+ throw new Error(`Unexpected list item: ${line}`);
213
+ }
214
+ container.push(parseYamlScalar(stripped.slice(2).trim()));
215
+ continue;
216
+ }
217
+ const separatorIndex = stripped.indexOf(":");
218
+ if (separatorIndex < 0) {
219
+ throw new Error(`Invalid mapping line: ${line}`);
220
+ }
221
+ const key = stripped.slice(0, separatorIndex).trim();
222
+ const rawValue = stripped.slice(separatorIndex + 1).trim();
223
+ if (!isObject(container)) {
224
+ throw new Error(`Unexpected mapping in list context: ${line}`);
225
+ }
226
+ if (rawValue.length === 0) {
227
+ const nextLine = findNextNonEmpty(lines, index + 1);
228
+ const nextIndent = nextLine ? nextLine.length - nextLine.trimStart().length : -1;
229
+ const nestedValue = nextLine && nextIndent > indent && nextLine.trim().startsWith("- ") ? [] : {};
230
+ container[key] = nestedValue;
231
+ stack.push({ indent, value: nestedValue });
232
+ continue;
233
+ }
234
+ container[key] = parseYamlScalar(rawValue);
235
+ }
236
+ return root;
237
+ }
238
+ function findNextNonEmpty(lines, start) {
239
+ for (let index = start; index < lines.length; index += 1) {
240
+ const line = lines[index];
241
+ if (line && line.trim().length > 0) {
242
+ return line;
243
+ }
244
+ }
245
+ return null;
246
+ }
247
+ function parseYamlScalar(rawValue) {
248
+ if (rawValue === "[]") {
249
+ return [];
250
+ }
251
+ if (rawValue === "true") {
252
+ return true;
253
+ }
254
+ if (rawValue === "false") {
255
+ return false;
256
+ }
257
+ if (rawValue === "null") {
258
+ return null;
259
+ }
260
+ if (rawValue.startsWith('"') && rawValue.endsWith('"')) {
261
+ return JSON.parse(rawValue);
262
+ }
263
+ if (rawValue.startsWith("'") && rawValue.endsWith("'")) {
264
+ return rawValue.slice(1, -1);
265
+ }
266
+ const numeric = Number(rawValue);
267
+ if (!Number.isNaN(numeric) && rawValue.trim() !== "") {
268
+ return numeric;
269
+ }
270
+ return rawValue;
271
+ }
272
+ function asObject(value) {
273
+ return isObject(value) ? value : null;
274
+ }
275
+ function isObject(value) {
276
+ return typeof value === "object" && value !== null && !Array.isArray(value);
277
+ }