@cubis/foundry 0.3.32 → 0.3.33

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 (460) hide show
  1. package/README.md +23 -0
  2. package/bin/cubis.js +461 -37
  3. package/mcp/README.md +17 -0
  4. package/mcp/catalogs/default.json +14 -0
  5. package/mcp/powers/atlassian-mcp/POWER.md +91 -0
  6. package/mcp/powers/atlassian-mcp/SKILL.md +88 -0
  7. package/mcp/powers/building-mcp-server-on-cloudflare/POWER.md +261 -0
  8. package/mcp/powers/building-mcp-server-on-cloudflare/SKILL.md +258 -0
  9. package/mcp/powers/datadog-automation/POWER.md +238 -0
  10. package/mcp/powers/datadog-automation/SKILL.md +235 -0
  11. package/mcp/powers/github-automation/POWER.md +230 -0
  12. package/mcp/powers/github-automation/SKILL.md +227 -0
  13. package/mcp/powers/mcp-builder/POWER.md +179 -0
  14. package/mcp/powers/mcp-builder/SKILL.md +176 -0
  15. package/mcp/powers/mcp-developer/POWER.md +88 -0
  16. package/mcp/powers/mcp-developer/SKILL.md +85 -0
  17. package/mcp/powers/postman/POWER.md +243 -0
  18. package/mcp/powers/postman/SKILL.md +240 -0
  19. package/mcp/powers/sentry-automation/POWER.md +235 -0
  20. package/mcp/powers/sentry-automation/SKILL.md +232 -0
  21. package/mcp/skills/atlassian-mcp/SKILL.md +88 -0
  22. package/mcp/skills/building-mcp-server-on-cloudflare/SKILL.md +258 -0
  23. package/mcp/skills/datadog-automation/SKILL.md +235 -0
  24. package/mcp/skills/github-automation/SKILL.md +227 -0
  25. package/mcp/skills/mcp-builder/SKILL.md +176 -0
  26. package/mcp/skills/mcp-developer/SKILL.md +85 -0
  27. package/mcp/skills/postman/SKILL.md +240 -0
  28. package/mcp/skills/sentry-automation/SKILL.md +232 -0
  29. package/package.json +2 -1
  30. package/workflows/powers/architecture/POWER.md +12 -46
  31. package/workflows/powers/architecture/SKILL.md +12 -46
  32. package/workflows/powers/atlassian-mcp/POWER.md +11 -81
  33. package/workflows/powers/atlassian-mcp/SKILL.md +11 -81
  34. package/workflows/powers/building-mcp-server-on-cloudflare/POWER.md +12 -252
  35. package/workflows/powers/building-mcp-server-on-cloudflare/SKILL.md +12 -252
  36. package/workflows/powers/code-review-checklist/POWER.md +11 -99
  37. package/workflows/powers/code-review-checklist/SKILL.md +11 -99
  38. package/workflows/powers/csharp-pro/POWER.md +43 -0
  39. package/workflows/powers/csharp-pro/SKILL.md +40 -0
  40. package/workflows/powers/database-design/POWER.md +47 -5
  41. package/workflows/powers/database-design/SKILL.md +45 -4
  42. package/workflows/powers/database-optimizer/POWER.md +11 -23
  43. package/workflows/powers/database-optimizer/SKILL.md +5 -5
  44. package/workflows/powers/datadog-automation/POWER.md +12 -229
  45. package/workflows/powers/datadog-automation/SKILL.md +12 -229
  46. package/workflows/powers/debugging-wizard/POWER.md +12 -78
  47. package/workflows/powers/debugging-wizard/SKILL.md +12 -78
  48. package/workflows/powers/deployment-procedures/POWER.md +11 -231
  49. package/workflows/powers/deployment-procedures/SKILL.md +11 -231
  50. package/workflows/powers/drift-flutter/POWER.md +51 -0
  51. package/workflows/powers/drift-flutter/SKILL.md +2 -2
  52. package/workflows/powers/github-automation/POWER.md +12 -221
  53. package/workflows/powers/github-automation/SKILL.md +12 -221
  54. package/workflows/powers/golang-pro/POWER.md +38 -66
  55. package/workflows/powers/golang-pro/SKILL.md +38 -66
  56. package/workflows/powers/java-pro/POWER.md +43 -0
  57. package/workflows/powers/java-pro/SKILL.md +40 -0
  58. package/workflows/powers/javascript-pro/POWER.md +37 -67
  59. package/workflows/powers/javascript-pro/SKILL.md +37 -67
  60. package/workflows/powers/kotlin-pro/POWER.md +43 -0
  61. package/workflows/powers/kotlin-pro/SKILL.md +40 -0
  62. package/workflows/powers/mcp-builder/POWER.md +12 -170
  63. package/workflows/powers/mcp-builder/SKILL.md +12 -170
  64. package/workflows/powers/mcp-developer/POWER.md +11 -78
  65. package/workflows/powers/mcp-developer/SKILL.md +11 -78
  66. package/workflows/powers/nextjs-developer/POWER.md +41 -148
  67. package/workflows/powers/nextjs-developer/SKILL.md +41 -148
  68. package/workflows/powers/nextjs-react-expert/POWER.md +10 -281
  69. package/workflows/powers/nextjs-react-expert/SKILL.md +10 -281
  70. package/workflows/powers/nodejs-best-practices/POWER.md +33 -317
  71. package/workflows/powers/nodejs-best-practices/SKILL.md +33 -317
  72. package/workflows/powers/postman/POWER.md +11 -233
  73. package/workflows/powers/postman/SKILL.md +11 -233
  74. package/workflows/powers/python-patterns/POWER.md +11 -431
  75. package/workflows/powers/python-patterns/SKILL.md +11 -431
  76. package/workflows/powers/python-pro/POWER.md +38 -66
  77. package/workflows/powers/python-pro/SKILL.md +38 -66
  78. package/workflows/powers/react-best-practices/POWER.md +35 -118
  79. package/workflows/powers/react-best-practices/SKILL.md +35 -118
  80. package/workflows/powers/react-expert/POWER.md +38 -66
  81. package/workflows/powers/react-expert/SKILL.md +38 -66
  82. package/workflows/powers/rust-engineer/POWER.md +10 -75
  83. package/workflows/powers/rust-engineer/SKILL.md +10 -75
  84. package/workflows/powers/rust-pro/POWER.md +36 -163
  85. package/workflows/powers/rust-pro/SKILL.md +36 -163
  86. package/workflows/powers/sentry-automation/POWER.md +12 -226
  87. package/workflows/powers/sentry-automation/SKILL.md +12 -226
  88. package/workflows/powers/server-management/POWER.md +11 -151
  89. package/workflows/powers/server-management/SKILL.md +11 -151
  90. package/workflows/powers/tdd-workflow/POWER.md +12 -140
  91. package/workflows/powers/tdd-workflow/SKILL.md +12 -140
  92. package/workflows/powers/testing-patterns/POWER.md +11 -168
  93. package/workflows/powers/testing-patterns/SKILL.md +11 -168
  94. package/workflows/powers/typescript-pro/POWER.md +43 -70
  95. package/workflows/powers/typescript-pro/SKILL.md +43 -70
  96. package/workflows/powers/vercel-ai/POWER.md +43 -0
  97. package/workflows/powers/vercel-ai/SKILL.md +40 -0
  98. package/workflows/powers/vercel-ai-gateway/POWER.md +11 -69
  99. package/workflows/powers/vercel-ai-gateway/SKILL.md +11 -69
  100. package/workflows/powers/vercel-ai-sdk/POWER.md +11 -49
  101. package/workflows/powers/vercel-ai-sdk/SKILL.md +11 -49
  102. package/workflows/powers/vercel-caching/POWER.md +10 -72
  103. package/workflows/powers/vercel-caching/SKILL.md +10 -72
  104. package/workflows/powers/vercel-cli/POWER.md +11 -75
  105. package/workflows/powers/vercel-cli/SKILL.md +11 -75
  106. package/workflows/powers/vercel-delivery/POWER.md +45 -0
  107. package/workflows/powers/vercel-delivery/SKILL.md +42 -0
  108. package/workflows/powers/vercel-deployments/POWER.md +10 -90
  109. package/workflows/powers/vercel-deployments/SKILL.md +10 -90
  110. package/workflows/powers/vercel-domains/POWER.md +10 -69
  111. package/workflows/powers/vercel-domains/SKILL.md +10 -69
  112. package/workflows/powers/vercel-firewall/POWER.md +10 -61
  113. package/workflows/powers/vercel-firewall/SKILL.md +10 -61
  114. package/workflows/powers/vercel-flags/POWER.md +10 -62
  115. package/workflows/powers/vercel-flags/SKILL.md +10 -62
  116. package/workflows/powers/vercel-functions/POWER.md +10 -70
  117. package/workflows/powers/vercel-functions/SKILL.md +10 -70
  118. package/workflows/powers/vercel-routing/POWER.md +10 -68
  119. package/workflows/powers/vercel-routing/SKILL.md +10 -68
  120. package/workflows/powers/vercel-runtime/POWER.md +43 -0
  121. package/workflows/powers/vercel-runtime/SKILL.md +40 -0
  122. package/workflows/powers/vercel-security/POWER.md +43 -0
  123. package/workflows/powers/vercel-security/SKILL.md +40 -0
  124. package/workflows/powers/vulnerability-scanner/POWER.md +11 -266
  125. package/workflows/powers/vulnerability-scanner/SKILL.md +11 -266
  126. package/workflows/scripts/generate-powers.mjs +95 -202
  127. package/workflows/skills/atlassian-mcp/SKILL.md +11 -81
  128. package/workflows/skills/building-mcp-server-on-cloudflare/SKILL.md +12 -252
  129. package/workflows/skills/catalogs/core.json +30 -0
  130. package/workflows/skills/catalogs/web-backend.json +70 -0
  131. package/workflows/skills/csharp-pro/SKILL.md +40 -0
  132. package/workflows/skills/datadog-automation/SKILL.md +12 -229
  133. package/workflows/skills/github-automation/SKILL.md +12 -221
  134. package/workflows/skills/golang-pro/SKILL.md +38 -66
  135. package/workflows/skills/java-pro/SKILL.md +40 -0
  136. package/workflows/skills/javascript-pro/SKILL.md +37 -67
  137. package/workflows/skills/kotlin-pro/SKILL.md +40 -0
  138. package/workflows/skills/mcp-builder/SKILL.md +12 -170
  139. package/workflows/skills/mcp-developer/SKILL.md +11 -78
  140. package/workflows/skills/nextjs-developer/SKILL.md +41 -148
  141. package/workflows/skills/nextjs-react-expert/SKILL.md +5 -11
  142. package/workflows/skills/nodejs-best-practices/SKILL.md +33 -317
  143. package/workflows/skills/postman/SKILL.md +11 -233
  144. package/workflows/skills/python-pro/SKILL.md +38 -66
  145. package/workflows/skills/react-best-practices/SKILL.md +35 -118
  146. package/workflows/skills/react-expert/SKILL.md +38 -66
  147. package/workflows/skills/rust-pro/SKILL.md +36 -163
  148. package/workflows/skills/sentry-automation/SKILL.md +12 -226
  149. package/workflows/skills/skills_index.json +43 -57
  150. package/workflows/skills/typescript-pro/SKILL.md +43 -70
  151. package/workflows/workflows/agent-environment-setup/platforms/antigravity/agents/backend-specialist.md +1 -1
  152. package/workflows/workflows/agent-environment-setup/platforms/antigravity/agents/code-archaeologist.md +1 -1
  153. package/workflows/workflows/agent-environment-setup/platforms/antigravity/agents/database-architect.md +1 -1
  154. package/workflows/workflows/agent-environment-setup/platforms/antigravity/agents/debugger.md +1 -1
  155. package/workflows/workflows/agent-environment-setup/platforms/antigravity/agents/devops-engineer.md +1 -1
  156. package/workflows/workflows/agent-environment-setup/platforms/antigravity/agents/documentation-writer.md +1 -1
  157. package/workflows/workflows/agent-environment-setup/platforms/antigravity/agents/explorer-agent.md +1 -1
  158. package/workflows/workflows/agent-environment-setup/platforms/antigravity/agents/frontend-specialist.md +1 -1
  159. package/workflows/workflows/agent-environment-setup/platforms/antigravity/agents/game-developer.md +1 -1
  160. package/workflows/workflows/agent-environment-setup/platforms/antigravity/agents/mobile-developer.md +1 -1
  161. package/workflows/workflows/agent-environment-setup/platforms/antigravity/agents/orchestrator.md +28 -400
  162. package/workflows/workflows/agent-environment-setup/platforms/antigravity/agents/penetration-tester.md +1 -1
  163. package/workflows/workflows/agent-environment-setup/platforms/antigravity/agents/performance-optimizer.md +1 -1
  164. package/workflows/workflows/agent-environment-setup/platforms/antigravity/agents/product-manager.md +1 -1
  165. package/workflows/workflows/agent-environment-setup/platforms/antigravity/agents/product-owner.md +1 -1
  166. package/workflows/workflows/agent-environment-setup/platforms/antigravity/agents/project-planner.md +1 -1
  167. package/workflows/workflows/agent-environment-setup/platforms/antigravity/agents/qa-automation-engineer.md +1 -1
  168. package/workflows/workflows/agent-environment-setup/platforms/antigravity/agents/security-auditor.md +1 -1
  169. package/workflows/workflows/agent-environment-setup/platforms/antigravity/agents/seo-specialist.md +1 -1
  170. package/workflows/workflows/agent-environment-setup/platforms/antigravity/agents/test-engineer.md +1 -1
  171. package/workflows/workflows/agent-environment-setup/platforms/antigravity/agents/vercel-expert.md +1 -1
  172. package/workflows/workflows/agent-environment-setup/platforms/antigravity/rules/GEMINI.md +7 -6
  173. package/workflows/workflows/agent-environment-setup/platforms/codex/agents/backend-specialist.md +1 -1
  174. package/workflows/workflows/agent-environment-setup/platforms/codex/agents/code-archaeologist.md +1 -1
  175. package/workflows/workflows/agent-environment-setup/platforms/codex/agents/database-architect.md +1 -1
  176. package/workflows/workflows/agent-environment-setup/platforms/codex/agents/debugger.md +1 -1
  177. package/workflows/workflows/agent-environment-setup/platforms/codex/agents/devops-engineer.md +1 -1
  178. package/workflows/workflows/agent-environment-setup/platforms/codex/agents/documentation-writer.md +1 -1
  179. package/workflows/workflows/agent-environment-setup/platforms/codex/agents/explorer-agent.md +1 -1
  180. package/workflows/workflows/agent-environment-setup/platforms/codex/agents/frontend-specialist.md +1 -1
  181. package/workflows/workflows/agent-environment-setup/platforms/codex/agents/game-developer.md +1 -1
  182. package/workflows/workflows/agent-environment-setup/platforms/codex/agents/mobile-developer.md +1 -1
  183. package/workflows/workflows/agent-environment-setup/platforms/codex/agents/orchestrator.md +28 -400
  184. package/workflows/workflows/agent-environment-setup/platforms/codex/agents/penetration-tester.md +1 -1
  185. package/workflows/workflows/agent-environment-setup/platforms/codex/agents/performance-optimizer.md +1 -1
  186. package/workflows/workflows/agent-environment-setup/platforms/codex/agents/product-manager.md +1 -1
  187. package/workflows/workflows/agent-environment-setup/platforms/codex/agents/product-owner.md +1 -1
  188. package/workflows/workflows/agent-environment-setup/platforms/codex/agents/project-planner.md +1 -1
  189. package/workflows/workflows/agent-environment-setup/platforms/codex/agents/qa-automation-engineer.md +1 -1
  190. package/workflows/workflows/agent-environment-setup/platforms/codex/agents/security-auditor.md +1 -1
  191. package/workflows/workflows/agent-environment-setup/platforms/codex/agents/seo-specialist.md +1 -1
  192. package/workflows/workflows/agent-environment-setup/platforms/codex/agents/test-engineer.md +1 -1
  193. package/workflows/workflows/agent-environment-setup/platforms/codex/agents/vercel-expert.md +1 -1
  194. package/workflows/workflows/agent-environment-setup/platforms/codex/rules/AGENTS.md +7 -6
  195. package/workflows/workflows/agent-environment-setup/platforms/copilot/agents/backend-specialist.md +1 -1
  196. package/workflows/workflows/agent-environment-setup/platforms/copilot/agents/code-archaeologist.md +1 -1
  197. package/workflows/workflows/agent-environment-setup/platforms/copilot/agents/database-architect.md +1 -1
  198. package/workflows/workflows/agent-environment-setup/platforms/copilot/agents/debugger.md +1 -1
  199. package/workflows/workflows/agent-environment-setup/platforms/copilot/agents/devops-engineer.md +1 -1
  200. package/workflows/workflows/agent-environment-setup/platforms/copilot/agents/documentation-writer.md +1 -1
  201. package/workflows/workflows/agent-environment-setup/platforms/copilot/agents/explorer-agent.md +1 -1
  202. package/workflows/workflows/agent-environment-setup/platforms/copilot/agents/frontend-specialist.md +1 -1
  203. package/workflows/workflows/agent-environment-setup/platforms/copilot/agents/game-developer.md +1 -1
  204. package/workflows/workflows/agent-environment-setup/platforms/copilot/agents/mobile-developer.md +1 -1
  205. package/workflows/workflows/agent-environment-setup/platforms/copilot/agents/orchestrator.md +28 -400
  206. package/workflows/workflows/agent-environment-setup/platforms/copilot/agents/penetration-tester.md +1 -1
  207. package/workflows/workflows/agent-environment-setup/platforms/copilot/agents/performance-optimizer.md +1 -1
  208. package/workflows/workflows/agent-environment-setup/platforms/copilot/agents/product-manager.md +1 -1
  209. package/workflows/workflows/agent-environment-setup/platforms/copilot/agents/product-owner.md +1 -1
  210. package/workflows/workflows/agent-environment-setup/platforms/copilot/agents/project-planner.md +1 -1
  211. package/workflows/workflows/agent-environment-setup/platforms/copilot/agents/qa-automation-engineer.md +1 -1
  212. package/workflows/workflows/agent-environment-setup/platforms/copilot/agents/security-auditor.md +1 -1
  213. package/workflows/workflows/agent-environment-setup/platforms/copilot/agents/seo-specialist.md +1 -1
  214. package/workflows/workflows/agent-environment-setup/platforms/copilot/agents/test-engineer.md +1 -1
  215. package/workflows/workflows/agent-environment-setup/platforms/copilot/agents/vercel-expert.md +1 -1
  216. package/workflows/workflows/agent-environment-setup/platforms/copilot/rules/AGENTS.md +7 -6
  217. package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/csharp-pro/SKILL.md +40 -0
  218. package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/golang-pro/SKILL.md +38 -66
  219. package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/java-pro/SKILL.md +40 -0
  220. package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/javascript-pro/SKILL.md +37 -67
  221. package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/kotlin-pro/SKILL.md +40 -0
  222. package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/nextjs-developer/SKILL.md +41 -148
  223. package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/nextjs-react-expert/SKILL.md +6 -12
  224. package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/nodejs-best-practices/SKILL.md +33 -317
  225. package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/python-pro/SKILL.md +38 -66
  226. package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/react-best-practices/SKILL.md +35 -118
  227. package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/react-expert/SKILL.md +38 -66
  228. package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/rust-pro/SKILL.md +36 -163
  229. package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/skills_index.json +43 -57
  230. package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/typescript-pro/SKILL.md +43 -70
  231. package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/csharp-pro/SKILL.md +40 -0
  232. package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/golang-pro/SKILL.md +38 -66
  233. package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/java-pro/SKILL.md +40 -0
  234. package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/javascript-pro/SKILL.md +37 -67
  235. package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/kotlin-pro/SKILL.md +40 -0
  236. package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/nextjs-developer/SKILL.md +41 -148
  237. package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/nextjs-react-expert/SKILL.md +6 -12
  238. package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/nodejs-best-practices/SKILL.md +33 -317
  239. package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/python-pro/SKILL.md +38 -66
  240. package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/react-best-practices/SKILL.md +35 -118
  241. package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/react-expert/SKILL.md +38 -66
  242. package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/rust-pro/SKILL.md +36 -163
  243. package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/skills_index.json +43 -57
  244. package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/typescript-pro/SKILL.md +43 -70
  245. package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/csharp-pro/SKILL.md +40 -0
  246. package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/golang-pro/SKILL.md +38 -66
  247. package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/java-pro/SKILL.md +40 -0
  248. package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/javascript-pro/SKILL.md +37 -67
  249. package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/kotlin-pro/SKILL.md +40 -0
  250. package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/nextjs-developer/SKILL.md +41 -148
  251. package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/nextjs-react-expert/SKILL.md +6 -12
  252. package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/nodejs-best-practices/SKILL.md +33 -317
  253. package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/python-pro/SKILL.md +38 -66
  254. package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/react-best-practices/SKILL.md +35 -118
  255. package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/react-expert/SKILL.md +38 -66
  256. package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/rust-pro/SKILL.md +36 -163
  257. package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/skills_index.json +43 -57
  258. package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/typescript-pro/SKILL.md +43 -70
  259. package/workflows/workflows/agent-environment-setup/shared/agents/backend-specialist.md +1 -1
  260. package/workflows/workflows/agent-environment-setup/shared/agents/code-archaeologist.md +1 -1
  261. package/workflows/workflows/agent-environment-setup/shared/agents/database-architect.md +1 -1
  262. package/workflows/workflows/agent-environment-setup/shared/agents/debugger.md +1 -1
  263. package/workflows/workflows/agent-environment-setup/shared/agents/devops-engineer.md +1 -1
  264. package/workflows/workflows/agent-environment-setup/shared/agents/documentation-writer.md +1 -1
  265. package/workflows/workflows/agent-environment-setup/shared/agents/explorer-agent.md +1 -1
  266. package/workflows/workflows/agent-environment-setup/shared/agents/frontend-specialist.md +1 -1
  267. package/workflows/workflows/agent-environment-setup/shared/agents/game-developer.md +1 -1
  268. package/workflows/workflows/agent-environment-setup/shared/agents/mobile-developer.md +1 -1
  269. package/workflows/workflows/agent-environment-setup/shared/agents/orchestrator.md +28 -400
  270. package/workflows/workflows/agent-environment-setup/shared/agents/penetration-tester.md +1 -1
  271. package/workflows/workflows/agent-environment-setup/shared/agents/performance-optimizer.md +1 -1
  272. package/workflows/workflows/agent-environment-setup/shared/agents/product-manager.md +1 -1
  273. package/workflows/workflows/agent-environment-setup/shared/agents/product-owner.md +1 -1
  274. package/workflows/workflows/agent-environment-setup/shared/agents/project-planner.md +1 -1
  275. package/workflows/workflows/agent-environment-setup/shared/agents/qa-automation-engineer.md +1 -1
  276. package/workflows/workflows/agent-environment-setup/shared/agents/security-auditor.md +1 -1
  277. package/workflows/workflows/agent-environment-setup/shared/agents/seo-specialist.md +1 -1
  278. package/workflows/workflows/agent-environment-setup/shared/agents/test-engineer.md +1 -1
  279. package/workflows/workflows/agent-environment-setup/shared/agents/vercel-expert.md +1 -1
  280. package/workflows/powers/sub-agents/scripts/run_subagent.py.bak +0 -512
  281. /package/{workflows → mcp}/powers/atlassian-mcp/steering/authentication-patterns.md +0 -0
  282. /package/{workflows → mcp}/powers/atlassian-mcp/steering/common-workflows.md +0 -0
  283. /package/{workflows → mcp}/powers/atlassian-mcp/steering/confluence-operations.md +0 -0
  284. /package/{workflows → mcp}/powers/atlassian-mcp/steering/jira-queries.md +0 -0
  285. /package/{workflows → mcp}/powers/atlassian-mcp/steering/mcp-server-setup.md +0 -0
  286. /package/{workflows → mcp}/powers/building-mcp-server-on-cloudflare/steering/examples.md +0 -0
  287. /package/{workflows → mcp}/powers/building-mcp-server-on-cloudflare/steering/oauth-setup.md +0 -0
  288. /package/{workflows → mcp}/powers/building-mcp-server-on-cloudflare/steering/troubleshooting.md +0 -0
  289. /package/{workflows → mcp}/powers/mcp-builder/LICENSE.txt +0 -0
  290. /package/{workflows → mcp}/powers/mcp-builder/reference/evaluation.md +0 -0
  291. /package/{workflows → mcp}/powers/mcp-builder/reference/mcp_best_practices.md +0 -0
  292. /package/{workflows → mcp}/powers/mcp-builder/reference/node_mcp_server.md +0 -0
  293. /package/{workflows → mcp}/powers/mcp-builder/reference/python_mcp_server.md +0 -0
  294. /package/{workflows → mcp}/powers/mcp-builder/scripts/connections.py +0 -0
  295. /package/{workflows → mcp}/powers/mcp-builder/scripts/evaluation.py +0 -0
  296. /package/{workflows → mcp}/powers/mcp-builder/scripts/example_evaluation.xml +0 -0
  297. /package/{workflows → mcp}/powers/mcp-builder/scripts/requirements.txt +0 -0
  298. /package/{workflows → mcp}/powers/mcp-developer/steering/protocol.md +0 -0
  299. /package/{workflows → mcp}/powers/mcp-developer/steering/python-sdk.md +0 -0
  300. /package/{workflows → mcp}/powers/mcp-developer/steering/resources.md +0 -0
  301. /package/{workflows → mcp}/powers/mcp-developer/steering/tools.md +0 -0
  302. /package/{workflows → mcp}/powers/mcp-developer/steering/typescript-sdk.md +0 -0
  303. /package/{workflows → mcp}/powers/postman/flutter-expert/POWER.md +0 -0
  304. /package/{workflows → mcp}/powers/postman/flutter-expert/SKILL.md +0 -0
  305. /package/{workflows → mcp}/powers/postman/flutter-expert/steering/bloc-state.md +0 -0
  306. /package/{workflows → mcp}/powers/postman/flutter-expert/steering/engineering-principles.md +0 -0
  307. /package/{workflows → mcp}/powers/postman/flutter-expert/steering/gorouter-navigation.md +0 -0
  308. /package/{workflows → mcp}/powers/postman/flutter-expert/steering/performance.md +0 -0
  309. /package/{workflows → mcp}/powers/postman/flutter-expert/steering/project-structure.md +0 -0
  310. /package/{workflows → mcp}/powers/postman/flutter-expert/steering/riverpod-state.md +0 -0
  311. /package/{workflows → mcp}/powers/postman/flutter-expert/steering/widget-patterns.md +0 -0
  312. /package/{workflows → mcp}/powers/postman/flutter-security-reviewer/POWER.md +0 -0
  313. /package/{workflows → mcp}/powers/postman/flutter-security-reviewer/SKILL.md +0 -0
  314. /package/{workflows → mcp}/powers/postman/flutter-security-reviewer/steering/log_redaction.md +0 -0
  315. /package/{workflows → mcp}/powers/postman/flutter-security-reviewer/steering/network_hardening.md +0 -0
  316. /package/{workflows → mcp}/powers/postman/flutter-security-reviewer/steering/secret-scanning.md +0 -0
  317. /package/{workflows → mcp}/powers/postman/flutter-security-reviewer/steering/secure_storage_policy.md +0 -0
  318. /package/{workflows → mcp}/powers/postman/flutter-security-reviewer/steering/vulnerability-patterns.md +0 -0
  319. /package/{workflows → mcp}/powers/postman/flutter-security-reviewer/templates/security_review_response.md +0 -0
  320. /package/{workflows → mcp}/powers/postman/flutter-test-master/POWER.md +0 -0
  321. /package/{workflows → mcp}/powers/postman/flutter-test-master/SKILL.md +0 -0
  322. /package/{workflows → mcp}/powers/postman/flutter-test-master/steering/golden-testing.md +0 -0
  323. /package/{workflows → mcp}/powers/postman/flutter-test-master/steering/integration-testing.md +0 -0
  324. /package/{workflows → mcp}/powers/postman/flutter-test-master/steering/property-testing.md +0 -0
  325. /package/{workflows → mcp}/powers/postman/flutter-test-master/steering/riverpod-testing.md +0 -0
  326. /package/{workflows → mcp}/powers/postman/flutter-test-master/steering/test-utilities.md +0 -0
  327. /package/{workflows → mcp}/powers/postman/flutter-test-master/steering/unit-testing.md +0 -0
  328. /package/{workflows → mcp}/powers/postman/flutter-test-master/steering/widget-testing.md +0 -0
  329. /package/{workflows → mcp}/powers/postman/git-commit/POWER.md +0 -0
  330. /package/{workflows → mcp}/powers/postman/git-commit/SKILL.md +0 -0
  331. /package/{workflows → mcp}/powers/postman/gorouter-restoration/POWER.md +0 -0
  332. /package/{workflows → mcp}/powers/postman/gorouter-restoration/SKILL.md +0 -0
  333. /package/{workflows → mcp}/powers/postman/gorouter-restoration/steering/guard_patterns.md +0 -0
  334. /package/{workflows → mcp}/powers/postman/gorouter-restoration/steering/tab_preservation.md +0 -0
  335. /package/{workflows → mcp}/powers/postman/gorouter-restoration/templates/guard_redirect.md +0 -0
  336. /package/{workflows → mcp}/powers/postman/gorouter-restoration/templates/stateful_shell_skeleton.md +0 -0
  337. /package/{workflows → mcp}/powers/postman/mcp.json +0 -0
  338. /package/{workflows → mcp}/powers/postman/microservices-architect/POWER.md +0 -0
  339. /package/{workflows → mcp}/powers/postman/microservices-architect/SKILL.md +0 -0
  340. /package/{workflows → mcp}/powers/postman/microservices-architect/steering/communication.md +0 -0
  341. /package/{workflows → mcp}/powers/postman/microservices-architect/steering/data.md +0 -0
  342. /package/{workflows → mcp}/powers/postman/microservices-architect/steering/decomposition.md +0 -0
  343. /package/{workflows → mcp}/powers/postman/microservices-architect/steering/observability.md +0 -0
  344. /package/{workflows → mcp}/powers/postman/microservices-architect/steering/patterns.md +0 -0
  345. /package/{workflows → mcp}/powers/postman/nestjs-expert/POWER.md +0 -0
  346. /package/{workflows → mcp}/powers/postman/nestjs-expert/SKILL.md +0 -0
  347. /package/{workflows → mcp}/powers/postman/nestjs-expert/steering/authentication.md +0 -0
  348. /package/{workflows → mcp}/powers/postman/nestjs-expert/steering/controllers-routing.md +0 -0
  349. /package/{workflows → mcp}/powers/postman/nestjs-expert/steering/dtos-validation.md +0 -0
  350. /package/{workflows → mcp}/powers/postman/nestjs-expert/steering/migration-from-express.md +0 -0
  351. /package/{workflows → mcp}/powers/postman/nestjs-expert/steering/secure-sessions.md +0 -0
  352. /package/{workflows → mcp}/powers/postman/nestjs-expert/steering/services-di.md +0 -0
  353. /package/{workflows → mcp}/powers/postman/nestjs-expert/steering/strangler-fig-pattern.md +0 -0
  354. /package/{workflows → mcp}/powers/postman/nestjs-expert/steering/testing-patterns.md +0 -0
  355. /package/{workflows → mcp}/powers/postman/oneup-design/POWER.md +0 -0
  356. /package/{workflows → mcp}/powers/postman/oneup-design/SKILL.md +0 -0
  357. /package/{workflows → mcp}/powers/postman/oneup-design/steering/colors.md +0 -0
  358. /package/{workflows → mcp}/powers/postman/oneup-design/steering/components.md +0 -0
  359. /package/{workflows → mcp}/powers/postman/oneup-design/steering/spacing.md +0 -0
  360. /package/{workflows → mcp}/powers/postman/openapi-docs/POWER.md +0 -0
  361. /package/{workflows → mcp}/powers/postman/openapi-docs/SKILL.md +0 -0
  362. /package/{workflows → mcp}/powers/postman/openapi-docs/steering/crud-templates.md +0 -0
  363. /package/{workflows → mcp}/powers/postman/openapi-docs/steering/framework-express.md +0 -0
  364. /package/{workflows → mcp}/powers/postman/openapi-docs/steering/framework-fastapi.md +0 -0
  365. /package/{workflows → mcp}/powers/postman/openapi-docs/steering/framework-nestjs.md +0 -0
  366. /package/{workflows → mcp}/powers/postman/openapi-docs/steering/framework-raw-openapi.md +0 -0
  367. /package/{workflows → mcp}/powers/postman/openapi-docs/steering/openapi-checklist.md +0 -0
  368. /package/{workflows → mcp}/powers/postman/openapi-docs/steering/stoplight-ui.md +0 -0
  369. /package/{workflows → mcp}/powers/postman/steering/steering.md +0 -0
  370. /package/{workflows → mcp}/skills/atlassian-mcp/references/authentication-patterns.md +0 -0
  371. /package/{workflows → mcp}/skills/atlassian-mcp/references/common-workflows.md +0 -0
  372. /package/{workflows → mcp}/skills/atlassian-mcp/references/confluence-operations.md +0 -0
  373. /package/{workflows → mcp}/skills/atlassian-mcp/references/jira-queries.md +0 -0
  374. /package/{workflows → mcp}/skills/atlassian-mcp/references/mcp-server-setup.md +0 -0
  375. /package/{workflows → mcp}/skills/building-mcp-server-on-cloudflare/references/examples.md +0 -0
  376. /package/{workflows → mcp}/skills/building-mcp-server-on-cloudflare/references/oauth-setup.md +0 -0
  377. /package/{workflows → mcp}/skills/building-mcp-server-on-cloudflare/references/tool-patterns.md +0 -0
  378. /package/{workflows → mcp}/skills/building-mcp-server-on-cloudflare/references/troubleshooting.md +0 -0
  379. /package/{workflows → mcp}/skills/mcp-builder/LICENSE.txt +0 -0
  380. /package/{workflows → mcp}/skills/mcp-builder/reference/evaluation.md +0 -0
  381. /package/{workflows → mcp}/skills/mcp-builder/reference/mcp_best_practices.md +0 -0
  382. /package/{workflows → mcp}/skills/mcp-builder/reference/node_mcp_server.md +0 -0
  383. /package/{workflows → mcp}/skills/mcp-builder/reference/python_mcp_server.md +0 -0
  384. /package/{workflows → mcp}/skills/mcp-builder/scripts/connections.py +0 -0
  385. /package/{workflows → mcp}/skills/mcp-builder/scripts/evaluation.py +0 -0
  386. /package/{workflows → mcp}/skills/mcp-builder/scripts/example_evaluation.xml +0 -0
  387. /package/{workflows → mcp}/skills/mcp-builder/scripts/requirements.txt +0 -0
  388. /package/{workflows → mcp}/skills/mcp-developer/references/protocol.md +0 -0
  389. /package/{workflows → mcp}/skills/mcp-developer/references/python-sdk.md +0 -0
  390. /package/{workflows → mcp}/skills/mcp-developer/references/resources.md +0 -0
  391. /package/{workflows → mcp}/skills/mcp-developer/references/tools.md +0 -0
  392. /package/{workflows → mcp}/skills/mcp-developer/references/typescript-sdk.md +0 -0
  393. /package/{workflows → mcp}/skills/postman/POWER.md +0 -0
  394. /package/{workflows → mcp}/skills/postman/flutter-expert/POWER.md +0 -0
  395. /package/{workflows → mcp}/skills/postman/flutter-expert/SKILL.md +0 -0
  396. /package/{workflows → mcp}/skills/postman/flutter-expert/references/bloc-state.md +0 -0
  397. /package/{workflows → mcp}/skills/postman/flutter-expert/references/engineering-principles.md +0 -0
  398. /package/{workflows → mcp}/skills/postman/flutter-expert/references/gorouter-navigation.md +0 -0
  399. /package/{workflows → mcp}/skills/postman/flutter-expert/references/performance.md +0 -0
  400. /package/{workflows → mcp}/skills/postman/flutter-expert/references/project-structure.md +0 -0
  401. /package/{workflows → mcp}/skills/postman/flutter-expert/references/riverpod-state.md +0 -0
  402. /package/{workflows → mcp}/skills/postman/flutter-expert/references/widget-patterns.md +0 -0
  403. /package/{workflows → mcp}/skills/postman/flutter-security-reviewer/POWER.md +0 -0
  404. /package/{workflows → mcp}/skills/postman/flutter-security-reviewer/SKILL.md +0 -0
  405. /package/{workflows → mcp}/skills/postman/flutter-security-reviewer/references/log_redaction.md +0 -0
  406. /package/{workflows → mcp}/skills/postman/flutter-security-reviewer/references/network_hardening.md +0 -0
  407. /package/{workflows → mcp}/skills/postman/flutter-security-reviewer/references/secret-scanning.md +0 -0
  408. /package/{workflows → mcp}/skills/postman/flutter-security-reviewer/references/secure_storage_policy.md +0 -0
  409. /package/{workflows → mcp}/skills/postman/flutter-security-reviewer/references/vulnerability-patterns.md +0 -0
  410. /package/{workflows → mcp}/skills/postman/flutter-security-reviewer/templates/security_review_response.md +0 -0
  411. /package/{workflows → mcp}/skills/postman/flutter-test-master/POWER.md +0 -0
  412. /package/{workflows → mcp}/skills/postman/flutter-test-master/SKILL.md +0 -0
  413. /package/{workflows → mcp}/skills/postman/flutter-test-master/references/golden-testing.md +0 -0
  414. /package/{workflows → mcp}/skills/postman/flutter-test-master/references/integration-testing.md +0 -0
  415. /package/{workflows → mcp}/skills/postman/flutter-test-master/references/property-testing.md +0 -0
  416. /package/{workflows → mcp}/skills/postman/flutter-test-master/references/riverpod-testing.md +0 -0
  417. /package/{workflows → mcp}/skills/postman/flutter-test-master/references/test-utilities.md +0 -0
  418. /package/{workflows → mcp}/skills/postman/flutter-test-master/references/unit-testing.md +0 -0
  419. /package/{workflows → mcp}/skills/postman/flutter-test-master/references/widget-testing.md +0 -0
  420. /package/{workflows → mcp}/skills/postman/git-commit/POWER.md +0 -0
  421. /package/{workflows → mcp}/skills/postman/git-commit/SKILL.md +0 -0
  422. /package/{workflows → mcp}/skills/postman/gorouter-restoration/POWER.md +0 -0
  423. /package/{workflows → mcp}/skills/postman/gorouter-restoration/SKILL.md +0 -0
  424. /package/{workflows → mcp}/skills/postman/gorouter-restoration/references/guard_patterns.md +0 -0
  425. /package/{workflows → mcp}/skills/postman/gorouter-restoration/references/tab_preservation.md +0 -0
  426. /package/{workflows → mcp}/skills/postman/gorouter-restoration/templates/guard_redirect.md +0 -0
  427. /package/{workflows → mcp}/skills/postman/gorouter-restoration/templates/stateful_shell_skeleton.md +0 -0
  428. /package/{workflows → mcp}/skills/postman/mcp.json +0 -0
  429. /package/{workflows → mcp}/skills/postman/microservices-architect/POWER.md +0 -0
  430. /package/{workflows → mcp}/skills/postman/microservices-architect/SKILL.md +0 -0
  431. /package/{workflows → mcp}/skills/postman/microservices-architect/references/communication.md +0 -0
  432. /package/{workflows → mcp}/skills/postman/microservices-architect/references/data.md +0 -0
  433. /package/{workflows → mcp}/skills/postman/microservices-architect/references/decomposition.md +0 -0
  434. /package/{workflows → mcp}/skills/postman/microservices-architect/references/observability.md +0 -0
  435. /package/{workflows → mcp}/skills/postman/microservices-architect/references/patterns.md +0 -0
  436. /package/{workflows → mcp}/skills/postman/nestjs-expert/POWER.md +0 -0
  437. /package/{workflows → mcp}/skills/postman/nestjs-expert/SKILL.md +0 -0
  438. /package/{workflows → mcp}/skills/postman/nestjs-expert/references/authentication.md +0 -0
  439. /package/{workflows → mcp}/skills/postman/nestjs-expert/references/controllers-routing.md +0 -0
  440. /package/{workflows → mcp}/skills/postman/nestjs-expert/references/dtos-validation.md +0 -0
  441. /package/{workflows → mcp}/skills/postman/nestjs-expert/references/migration-from-express.md +0 -0
  442. /package/{workflows → mcp}/skills/postman/nestjs-expert/references/secure-sessions.md +0 -0
  443. /package/{workflows → mcp}/skills/postman/nestjs-expert/references/services-di.md +0 -0
  444. /package/{workflows → mcp}/skills/postman/nestjs-expert/references/strangler-fig-pattern.md +0 -0
  445. /package/{workflows → mcp}/skills/postman/nestjs-expert/references/testing-patterns.md +0 -0
  446. /package/{workflows → mcp}/skills/postman/oneup-design/POWER.md +0 -0
  447. /package/{workflows → mcp}/skills/postman/oneup-design/SKILL.md +0 -0
  448. /package/{workflows → mcp}/skills/postman/oneup-design/references/colors.md +0 -0
  449. /package/{workflows → mcp}/skills/postman/oneup-design/references/components.md +0 -0
  450. /package/{workflows → mcp}/skills/postman/oneup-design/references/spacing.md +0 -0
  451. /package/{workflows → mcp}/skills/postman/openapi-docs/POWER.md +0 -0
  452. /package/{workflows → mcp}/skills/postman/openapi-docs/SKILL.md +0 -0
  453. /package/{workflows → mcp}/skills/postman/openapi-docs/references/crud-templates.md +0 -0
  454. /package/{workflows → mcp}/skills/postman/openapi-docs/references/framework-express.md +0 -0
  455. /package/{workflows → mcp}/skills/postman/openapi-docs/references/framework-fastapi.md +0 -0
  456. /package/{workflows → mcp}/skills/postman/openapi-docs/references/framework-nestjs.md +0 -0
  457. /package/{workflows → mcp}/skills/postman/openapi-docs/references/framework-raw-openapi.md +0 -0
  458. /package/{workflows → mcp}/skills/postman/openapi-docs/references/openapi-checklist.md +0 -0
  459. /package/{workflows → mcp}/skills/postman/openapi-docs/references/stoplight-ui.md +0 -0
  460. /package/{workflows → mcp}/skills/postman/references/steering.md +0 -0
@@ -2,22 +2,10 @@
2
2
  /**
3
3
  * generate-powers.mjs
4
4
  *
5
- * Generates POWER.md files for Kiro from the canonical SKILL.md files in the
6
- * skills/ directory. Powers are Kiro-specific wrappers around skills; the
7
- * install source of truth for `cbx install` is ALWAYS `skills/<id>/SKILL.md`.
8
- *
9
- * Source priority (matching cubis.js installBundleArtifacts):
10
- * 1. skills/<name>/SKILL.md ← canonical (what `cbx install` uses)
11
- * 2. powers/<name>/SKILL.md ← fallback (local override only)
12
- *
13
- * Usage:
14
- * node "workflows/scripts/generate-powers.mjs" [--dry-run] [--force] [--from-skills] [--sync-skills]
15
- *
16
- * Options:
17
- * --dry-run Preview changes without writing files
18
- * --force Overwrite existing POWER.md files
19
- * --from-skills Also create missing power directories from skills/
20
- * --sync-skills Sync canonical SKILL.md from skills/ → powers/ for every power
5
+ * Generates POWER.md files for Kiro from canonical SKILL.md files.
6
+ * Supports both workflow and MCP catalogs:
7
+ * - workflows/skills -> workflows/powers
8
+ * - mcp/skills -> mcp/powers
21
9
  */
22
10
 
23
11
  import path from "node:path";
@@ -27,9 +15,19 @@ import { promises as fs } from "node:fs";
27
15
 
28
16
  const __dirname = path.dirname(fileURLToPath(import.meta.url));
29
17
  const ROOT = path.resolve(__dirname, "..", "..");
30
- const ASSETS_ROOT = path.join(ROOT, "workflows");
31
- const POWERS_ROOT = path.join(ASSETS_ROOT, "powers");
32
- const SKILLS_ROOT = path.join(ASSETS_ROOT, "skills");
18
+
19
+ const ROOT_PAIRS = [
20
+ {
21
+ label: "workflows",
22
+ skillsRoot: path.join(ROOT, "workflows", "skills"),
23
+ powersRoot: path.join(ROOT, "workflows", "powers")
24
+ },
25
+ {
26
+ label: "mcp",
27
+ skillsRoot: path.join(ROOT, "mcp", "skills"),
28
+ powersRoot: path.join(ROOT, "mcp", "powers")
29
+ }
30
+ ];
33
31
 
34
32
  const ARGS = new Set(process.argv.slice(2));
35
33
  const DRY_RUN = ARGS.has("--dry-run");
@@ -37,14 +35,10 @@ const FORCE = ARGS.has("--force");
37
35
  const FROM_SKILLS = ARGS.has("--from-skills");
38
36
  const SYNC_SKILLS = ARGS.has("--sync-skills");
39
37
 
40
- // ─── Kiro POWER.md frontmatter keys ────────────────────────────────────────
41
- // Keys added/ensured for Kiro power format
42
38
  const KIRO_REQUIRED_KEYS = {
43
- inclusion: "manual",
39
+ inclusion: "manual"
44
40
  };
45
41
 
46
- // ─── Helpers ────────────────────────────────────────────────────────────────
47
-
48
42
  async function pathExists(p) {
49
43
  try {
50
44
  await fs.stat(p);
@@ -79,110 +73,72 @@ async function copyDir(src, dest) {
79
73
  }
80
74
  }
81
75
 
82
- /**
83
- * Strip an outer code fence wrapper from file content.
84
- * Handles both:
85
- * ```skill (backtick × 3)
86
- * ````skill (backtick × 4)
87
- * Returns the raw inner content (the markdown string inside the fence),
88
- * or the original content unchanged if no fence is found.
89
- */
90
76
  function stripCodeFence(content) {
91
77
  const trimmed = content.trim();
92
- // Match opening fence: 3+ backticks followed by optional language identifier
93
78
  const fenceMatch = trimmed.match(/^(`{3,})([a-zA-Z]*)\n([\s\S]*)\n\1\s*$/);
94
79
  if (!fenceMatch) return trimmed;
95
80
  return fenceMatch[3];
96
81
  }
97
82
 
98
- /**
99
- * Parse YAML frontmatter block from raw markdown.
100
- * Returns { frontmatterRaw, body } or null if no frontmatter found.
101
- */
102
83
  function parseFrontmatter(markdown) {
103
84
  const match = markdown.match(/^---\r?\n([\s\S]*?)\r?\n---\r?\n?([\s\S]*)$/);
104
85
  if (!match) return null;
105
86
  return {
106
87
  frontmatterRaw: match[1],
107
- body: match[2],
88
+ body: match[2]
108
89
  };
109
90
  }
110
91
 
111
- /**
112
- * Inject Kiro-specific keys into a raw frontmatter string if they are absent.
113
- * Returns updated frontmatter string.
114
- */
115
92
  function injectKiroKeys(frontmatterRaw) {
116
93
  let result = frontmatterRaw;
117
94
  for (const [key, value] of Object.entries(KIRO_REQUIRED_KEYS)) {
118
95
  const keyPresent = new RegExp(`^${key}\\s*:`, "m").test(result);
119
96
  if (!keyPresent) {
120
- // Prepend the key at the top of the frontmatter block
121
97
  result = `${key}: ${value}\n${result}`;
122
98
  }
123
99
  }
124
100
  return result;
125
101
  }
126
102
 
127
- /**
128
- * Build POWER.md content from a SKILL.md source string.
129
- * - Strips outer `skill` / ````skill fence if present
130
- * - Parses frontmatter and injects Kiro keys
131
- * - Re-wraps in a `markdown` code fence (matching the existing POWER.md convention)
132
- */
133
103
  function buildPowerContent(skillMdContent) {
134
- // 1. Strip outer code fence (the ````skill ... ```` wrapper)
135
104
  const inner = stripCodeFence(skillMdContent);
136
-
137
- // 2. Parse and update frontmatter
138
105
  const parsed = parseFrontmatter(inner);
139
106
  if (!parsed) {
140
- // No frontmatter found – just re-wrap with markdown fence and return
141
107
  return `\`\`\`\`markdown\n${inner}\n\`\`\`\`\n`;
142
108
  }
143
109
 
144
110
  const updatedFrontmatter = injectKiroKeys(parsed.frontmatterRaw);
145
111
  const reconstructed = `---\n${updatedFrontmatter}\n---\n${parsed.body}`;
146
-
147
- // 3. Wrap in markdown code fence for Kiro power format
148
112
  return `\`\`\`\`markdown\n${reconstructed}\n\`\`\`\`\n`;
149
113
  }
150
114
 
151
- // ─── Core logic ─────────────────────────────────────────────────────────────
152
-
153
115
  async function getSubdirectories(dir) {
154
- try {
155
- const entries = await fs.readdir(dir, { withFileTypes: true });
156
- return entries
157
- .filter((e) => e.isDirectory() && !e.name.startsWith("."))
158
- .map((e) => e.name);
159
- } catch {
160
- return [];
161
- }
116
+ if (!(await pathExists(dir))) return [];
117
+ const entries = await fs.readdir(dir, { withFileTypes: true });
118
+ return entries
119
+ .filter((e) => e.isDirectory() && !e.name.startsWith("."))
120
+ .map((e) => e.name)
121
+ .sort((a, b) => a.localeCompare(b));
162
122
  }
163
123
 
164
- async function processPowerDir(powerName) {
165
- const powerDir = path.join(POWERS_ROOT, powerName);
124
+ async function processPowerDir(pair, powerName) {
125
+ const powerDir = path.join(pair.powersRoot, powerName);
166
126
  const powerMdPath = path.join(powerDir, "POWER.md");
167
127
 
168
- // Source priority mirrors cubis.js installBundleArtifacts (line ~2097):
169
- // skills/<name>/SKILL.md ← canonical; what `cbx install` copies to the platform
170
- // powers/<name>/SKILL.md ← local fallback only (may be a stale copy)
171
- // Using skills/ as primary ensures POWER.md is generated from the same
172
- // content that users receive when they run `cbx install`.
173
- const canonicalSkill = path.join(SKILLS_ROOT, powerName, "SKILL.md");
128
+ const canonicalSkill = path.join(pair.skillsRoot, powerName, "SKILL.md");
174
129
  const localSkill = path.join(powerDir, "SKILL.md");
175
130
 
176
131
  let skillSource;
177
132
  if (await pathExists(canonicalSkill)) {
178
133
  skillSource = canonicalSkill;
179
134
  } else if (await pathExists(localSkill)) {
180
- skillSource = localSkill; // fallback: power-local override
135
+ skillSource = localSkill;
181
136
  } else {
182
137
  return {
183
138
  name: powerName,
184
139
  result: "skip",
185
140
  reason: "no SKILL.md found in skills/ or powers/",
141
+ pair: pair.label
186
142
  };
187
143
  }
188
144
 
@@ -192,45 +148,42 @@ async function processPowerDir(powerName) {
192
148
  name: powerName,
193
149
  result: "skip",
194
150
  reason: "POWER.md already exists (use --force to overwrite)",
151
+ pair: pair.label
195
152
  };
196
153
  }
197
154
 
198
155
  const skillContent = await readUtf8(skillSource);
199
156
  const powerContent = buildPowerContent(skillContent);
200
-
201
157
  await writeUtf8(powerMdPath, powerContent);
202
158
 
203
159
  return {
204
160
  name: powerName,
205
161
  result: powerExists ? "updated" : "created",
206
162
  source: path.relative(ROOT, skillSource),
163
+ pair: pair.label
207
164
  };
208
165
  }
209
166
 
210
- async function syncFromSkills() {
211
- const skillDirs = await getSubdirectories(SKILLS_ROOT);
167
+ async function syncFromSkills(pair) {
168
+ const skillDirs = await getSubdirectories(pair.skillsRoot);
212
169
  const created = [];
213
170
 
214
171
  for (const name of skillDirs) {
215
- // Skip non-skill entries
216
- if (name.startsWith(".") || name.endsWith(".json") || name.endsWith(".md"))
217
- continue;
172
+ if (name.startsWith(".") || name.endsWith(".json") || name.endsWith(".md")) continue;
218
173
 
219
- const powerDir = path.join(POWERS_ROOT, name);
220
- const skillDir = path.join(SKILLS_ROOT, name);
174
+ const powerDir = path.join(pair.powersRoot, name);
175
+ const skillDir = path.join(pair.skillsRoot, name);
221
176
  const skillMdSrc = path.join(skillDir, "SKILL.md");
222
177
 
223
178
  if (!(await pathExists(skillMdSrc))) continue;
224
- if (await pathExists(powerDir)) continue; // already exists
179
+ if (await pathExists(powerDir)) continue;
225
180
 
226
- // Create power directory and copy SKILL.md
227
181
  const skillMdDest = path.join(powerDir, "SKILL.md");
228
182
  if (!DRY_RUN) {
229
183
  await fs.mkdir(powerDir, { recursive: true });
230
184
  await fs.copyFile(skillMdSrc, skillMdDest);
231
185
  }
232
186
 
233
- // Copy steering/, templates/, references/ if they exist
234
187
  for (const subdir of ["steering", "templates", "references"]) {
235
188
  const srcSub = path.join(skillDir, subdir);
236
189
  const destSub = path.join(powerDir, subdir);
@@ -245,166 +198,106 @@ async function syncFromSkills() {
245
198
  return created;
246
199
  }
247
200
 
248
- /**
249
- * Sync canonical SKILL.md from skills/ → powers/ for every power directory.
250
- * This keeps powers/<name>/SKILL.md byte-identical to what `cbx install` will
251
- * deliver to users, so Kiro and cbx users always see the same skill content.
252
- */
253
- async function syncSkillsToPowers() {
254
- const powerDirs = await getSubdirectories(POWERS_ROOT);
201
+ async function syncSkillsToPowers(pair) {
202
+ const powerDirs = await getSubdirectories(pair.powersRoot);
255
203
  const synced = [];
256
204
  const unchanged = [];
257
205
  const missing = [];
258
206
 
259
207
  for (const name of powerDirs) {
260
- const canonicalSkill = path.join(SKILLS_ROOT, name, "SKILL.md");
261
- const powerSkill = path.join(POWERS_ROOT, name, "SKILL.md");
208
+ const canonicalSkill = path.join(pair.skillsRoot, name, "SKILL.md");
209
+ const powerSkill = path.join(pair.powersRoot, name, "SKILL.md");
262
210
 
263
211
  if (!(await pathExists(canonicalSkill))) {
264
212
  missing.push(name);
265
213
  continue;
266
214
  }
267
215
 
268
- const canonical = await readUtf8(canonicalSkill);
269
- const existing = (await pathExists(powerSkill))
270
- ? await readUtf8(powerSkill)
271
- : null;
216
+ const canonicalContent = await readUtf8(canonicalSkill);
217
+ const existingContent = (await pathExists(powerSkill)) ? await readUtf8(powerSkill) : null;
272
218
 
273
- if (existing === canonical) {
219
+ if (existingContent === canonicalContent) {
274
220
  unchanged.push(name);
275
221
  continue;
276
222
  }
277
223
 
278
- if (!DRY_RUN) {
279
- await fs.mkdir(path.join(POWERS_ROOT, name), { recursive: true });
280
- await fs.copyFile(canonicalSkill, powerSkill);
281
- }
282
-
224
+ await writeUtf8(powerSkill, canonicalContent);
283
225
  synced.push(name);
284
226
  }
285
227
 
286
228
  return { synced, unchanged, missing };
287
229
  }
288
230
 
289
- // ─── Main ───────────────────────────────────────────────────────────────────
290
-
291
231
  async function main() {
292
- console.log(`\nCubis Foundry generate-powers.mjs`);
293
- console.log(`Mode: ${DRY_RUN ? "DRY RUN (no files written)" : "LIVE"}`);
294
- if (FORCE) console.log("Force: overwriting existing POWER.md files");
295
- if (SYNC_SKILLS)
296
- console.log(
297
- "Sync-skills: syncing canonical SKILL.md from skills/ → powers/",
298
- );
299
- if (FROM_SKILLS)
300
- console.log("From-skills: creating missing power dirs from skills/");
301
- console.log();
302
-
303
- // 1a. Sync canonical SKILL.md from skills/ → powers/ so powers/SKILL.md matches
304
- // what `cbx install` delivers (cubis.js always installs from skills/, not powers/).
305
- if (SYNC_SKILLS) {
306
- const { synced, missing } = await syncSkillsToPowers();
307
- if (synced.length > 0) {
308
- console.log(
309
- `Synced SKILL.md for ${synced.length} power${synced.length === 1 ? "" : "s"} from skills/:`,
310
- );
311
- for (const name of synced) {
312
- console.log(` ↺ ${name}/SKILL.md`);
313
- }
314
- console.log();
315
- } else {
316
- console.log(
317
- "All power SKILL.md files are already in sync with skills/.\n",
318
- );
232
+ const pairResults = [];
233
+
234
+ for (const pair of ROOT_PAIRS) {
235
+ if (!(await pathExists(pair.skillsRoot)) && !(await pathExists(pair.powersRoot))) {
236
+ continue;
319
237
  }
320
- if (missing.length > 0) {
321
- console.log(
322
- `Note: ${missing.length} power${missing.length === 1 ? "" : "s"} have no matching skills/ entry (local-only):`,
323
- );
324
- for (const name of missing) console.log(` ~ ${name}`);
325
- console.log();
238
+
239
+ if (FROM_SKILLS) {
240
+ const created = await syncFromSkills(pair);
241
+ if (created.length > 0) {
242
+ console.log(`${DRY_RUN ? "[dry-run] " : ""}Created ${created.length} missing powers from ${pair.label}/skills:`);
243
+ for (const name of created) {
244
+ console.log(` + ${pair.label}/${name}`);
245
+ }
246
+ }
326
247
  }
327
- }
328
248
 
329
- // 1b. Create missing power directories from skills/
330
- if (FROM_SKILLS) {
331
- const created = await syncFromSkills();
332
- if (created.length > 0) {
333
- console.log(
334
- `Created ${created.length} new power director${created.length === 1 ? "y" : "ies"} from skills/:`,
335
- );
336
- for (const name of created) {
337
- console.log(` + ${name}/`);
249
+ if (SYNC_SKILLS) {
250
+ const syncResult = await syncSkillsToPowers(pair);
251
+ if (syncResult.synced.length > 0) {
252
+ console.log(`${DRY_RUN ? "[dry-run] " : ""}Synced ${syncResult.synced.length} SKILL.md files from ${pair.label}/skills to ${pair.label}/powers`);
253
+ }
254
+ if (syncResult.missing.length > 0) {
255
+ console.log(`Skipping ${syncResult.missing.length} ${pair.label}/powers entries with no canonical ${pair.label}/skills source.`);
338
256
  }
339
- console.log();
340
- } else {
341
- console.log("No new power directories needed from skills/.\n");
342
257
  }
343
- }
344
258
 
345
- // 2. Process each power directory
346
- const powerDirs = await getSubdirectories(POWERS_ROOT);
347
- const results = { created: [], updated: [], skipped: [], errors: [] };
259
+ const powerDirs = await getSubdirectories(pair.powersRoot);
260
+ if (powerDirs.length === 0) continue;
348
261
 
349
- for (const name of powerDirs) {
350
- try {
351
- const result = await processPowerDir(name);
352
- if (result.result === "created") results.created.push(result);
353
- else if (result.result === "updated") results.updated.push(result);
354
- else results.skipped.push(result);
355
- } catch (err) {
356
- results.errors.push({ name, error: err.message });
262
+ const results = [];
263
+ for (const powerName of powerDirs) {
264
+ results.push(await processPowerDir(pair, powerName));
357
265
  }
266
+ pairResults.push({ pair, results });
358
267
  }
359
268
 
360
- // 3. Report
361
- if (results.created.length > 0) {
362
- console.log(
363
- `Created ${results.created.length} POWER.md file${results.created.length === 1 ? "" : "s"}:`,
364
- );
365
- for (const r of results.created) {
366
- console.log(` ✓ ${r.name}/POWER.md (from ${r.source})`);
367
- }
368
- console.log();
369
- }
269
+ const allResults = pairResults.flatMap((item) => item.results);
270
+ const created = allResults.filter((r) => r.result === "created");
271
+ const updated = allResults.filter((r) => r.result === "updated");
272
+ const skipped = allResults.filter((r) => r.result === "skip");
370
273
 
371
- if (results.updated.length > 0) {
372
- console.log(
373
- `Updated ${results.updated.length} POWER.md file${results.updated.length === 1 ? "" : "s"}:`,
374
- );
375
- for (const r of results.updated) {
376
- console.log(` ↺ ${r.name}/POWER.md (from ${r.source})`);
377
- }
378
- console.log();
274
+ if (created.length === 0 && updated.length === 0 && skipped.length === 0) {
275
+ console.log("No powers directories found.");
276
+ return;
379
277
  }
380
278
 
381
- if (results.skipped.length > 0) {
382
- console.log(
383
- `Skipped ${results.skipped.length} director${results.skipped.length === 1 ? "y" : "ies"}:`,
384
- );
385
- for (const r of results.skipped) {
386
- console.log(` - ${r.name}: ${r.reason}`);
387
- }
388
- console.log();
279
+ console.log("\nPOWER.md generation summary");
280
+ console.log(` Created: ${created.length}`);
281
+ console.log(` Updated: ${updated.length}`);
282
+ console.log(` Skipped: ${skipped.length}`);
283
+
284
+ for (const result of [...created, ...updated]) {
285
+ console.log(` ${result.result === "created" ? "+" : "~"} [${result.pair}] ${result.name} (${result.source})`);
389
286
  }
390
287
 
391
- if (results.errors.length > 0) {
392
- console.error(`Errors (${results.errors.length}):`);
393
- for (const r of results.errors) {
394
- console.error(` ${r.name}: ${r.error}`);
288
+ if (skipped.length > 0) {
289
+ console.log("\nSkipped:");
290
+ for (const result of skipped) {
291
+ console.log(` - [${result.pair}] ${result.name}: ${result.reason}`);
395
292
  }
396
- console.log();
397
293
  }
398
294
 
399
- const total = results.created.length + results.updated.length;
400
- console.log(
401
- `Done. ${total} POWER.md file${total === 1 ? "" : "s"} ${DRY_RUN ? "would be" : ""} generated.`,
402
- );
403
-
404
- if (results.errors.length > 0) process.exit(1);
295
+ if (DRY_RUN) {
296
+ console.log("\nDry-run mode: no files were written.");
297
+ }
405
298
  }
406
299
 
407
300
  main().catch((err) => {
408
- console.error(err);
301
+ console.error(err?.stack || err?.message || String(err));
409
302
  process.exit(1);
410
303
  });
@@ -1,88 +1,18 @@
1
1
  ---
2
- name: atlassian-mcp
3
- description: Use when querying Jira issues, searching Confluence pages, creating tickets, updating documentation, or integrating Atlassian tools via MCP protocol.
4
- license: MIT
2
+ name: "atlassian-mcp"
3
+ description: "Compatibility wrapper skill. Canonical MCP skill moved to mcp/skills/atlassian-mcp."
5
4
  metadata:
6
- author: https://github.com/Jeffallan
7
- version: "1.0.0"
8
- domain: platform
9
- triggers: Jira, Confluence, Atlassian, MCP, tickets, issues, wiki, JQL, CQL, sprint, backlog, project management
10
- role: expert
11
- scope: implementation
12
- output-format: code
13
- related-skills: mcp-developer, api-designer, security-reviewer
5
+ deprecated: true
6
+ replaced_by: "atlassian-mcp"
7
+ moved_to: "mcp/skills/atlassian-mcp/SKILL.md"
8
+ removal_target: "v0.6.0"
14
9
  ---
15
10
 
16
- # Atlassian MCP Expert
11
+ # atlassian-mcp (Compatibility Wrapper)
17
12
 
18
- Senior integration specialist with deep expertise in connecting Jira, Confluence, and other Atlassian tools to AI systems via Model Context Protocol (MCP).
13
+ This legacy workflow-path skill is kept for backward compatibility.
19
14
 
20
- ## Role Definition
15
+ Canonical MCP skill path:
16
+ - mcp/skills/atlassian-mcp/SKILL.md
21
17
 
22
- You are an expert in Atlassian MCP integration with mastery of both official and open-source MCP servers, JQL/CQL query languages, OAuth 2.0 authentication, and production deployment patterns. You build robust workflows that automate issue triage, documentation sync, sprint planning, and cross-tool integration while respecting permissions and maintaining security.
23
-
24
- ## When to Use This Skill
25
-
26
- - Querying Jira issues with JQL filters
27
- - Searching or creating Confluence pages
28
- - Automating sprint workflows and backlog management
29
- - Setting up MCP server authentication (OAuth/API tokens)
30
- - Syncing meeting notes to Jira tickets
31
- - Generating documentation from issue data
32
- - Debugging Atlassian API integration issues
33
- - Choosing between official vs open-source MCP servers
34
-
35
- ## Core Workflow
36
-
37
- 1. **Select server** - Choose official cloud, open-source, or self-hosted MCP server
38
- 2. **Authenticate** - Configure OAuth 2.1, API tokens, or PAT credentials
39
- 3. **Design queries** - Write JQL for Jira, CQL for Confluence, test filters
40
- 4. **Implement workflow** - Build tool calls, handle pagination, error recovery
41
- 5. **Deploy** - Configure IDE integration, test permissions, monitor rate limits
42
-
43
- ## Reference Guide
44
-
45
- Load detailed guidance based on context:
46
-
47
- | Topic | Reference | Load When |
48
- |-------|-----------|-----------|
49
- | Server Setup | `references/mcp-server-setup.md` | Installation, choosing servers, configuration |
50
- | Jira Operations | `references/jira-queries.md` | JQL syntax, issue CRUD, sprints, boards |
51
- | Confluence Ops | `references/confluence-operations.md` | CQL search, page creation, spaces, comments |
52
- | Authentication | `references/authentication-patterns.md` | OAuth 2.0, API tokens, permission scopes |
53
- | Common Workflows | `references/common-workflows.md` | Issue triage, doc sync, sprint automation |
54
-
55
- ## Constraints
56
-
57
- ### MUST DO
58
- - Respect user permissions and workspace access controls
59
- - Validate JQL/CQL queries before execution
60
- - Handle rate limits with exponential backoff
61
- - Use pagination for large result sets (50-100 items per page)
62
- - Implement error recovery for network failures
63
- - Log API calls for debugging and audit trails
64
- - Test with read-only operations first
65
- - Document required permission scopes
66
-
67
- ### MUST NOT DO
68
- - Hardcode API tokens or OAuth secrets in code
69
- - Ignore rate limit headers from Atlassian APIs
70
- - Create issues without validating required fields
71
- - Skip input sanitization on user-provided query strings
72
- - Deploy without testing permission boundaries
73
- - Update production data without confirmation prompts
74
- - Mix different authentication methods in same session
75
- - Expose sensitive issue data in logs or error messages
76
-
77
- ## Output Templates
78
-
79
- When implementing Atlassian MCP features, provide:
80
- 1. MCP server configuration (JSON/environment vars)
81
- 2. Query examples (JQL/CQL with explanations)
82
- 3. Tool call implementation with error handling
83
- 4. Authentication setup instructions
84
- 5. Brief explanation of permission requirements
85
-
86
- ## Knowledge Reference
87
-
88
- Atlassian MCP Server (official), mcp-atlassian (sooperset), atlassian-mcp (xuanxt), JQL (Jira Query Language), CQL (Confluence Query Language), OAuth 2.1, API tokens, Personal Access Tokens (PAT), Model Context Protocol, JSON-RPC 2.0, rate limiting, pagination, permission scopes, Jira REST API, Confluence REST API
18
+ Install MCP skills with: cbx workflows install --include-mcp