xcoder-dna 0.0.0-stage → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (390) hide show
  1. package/LICENSE +66 -0
  2. package/README.md +87 -2
  3. package/dist/agents/ai-chat-debate.d.ts +36 -0
  4. package/dist/agents/ai-chat-debate.js +300 -0
  5. package/dist/agents/ai-chat-report-writer.d.ts +7 -0
  6. package/dist/agents/ai-chat-report-writer.js +100 -0
  7. package/dist/agents/duplicate-detector.d.ts +41 -0
  8. package/dist/agents/duplicate-detector.js +65 -0
  9. package/dist/agents/genesis-agent.d.ts +61 -0
  10. package/dist/agents/genesis-agent.js +340 -0
  11. package/dist/agents/samurai-agent.d.ts +53 -0
  12. package/dist/agents/samurai-agent.js +279 -0
  13. package/dist/agents/sub-agent.d.ts +56 -0
  14. package/dist/agents/sub-agent.js +353 -0
  15. package/dist/backlog/backlog-requirement-validator.d.ts +10 -0
  16. package/dist/backlog/backlog-requirement-validator.js +60 -0
  17. package/dist/backlog/backlog-store.d.ts +29 -0
  18. package/dist/backlog/backlog-store.js +148 -0
  19. package/dist/backlog/po-agent.d.ts +16 -0
  20. package/dist/backlog/po-agent.js +121 -0
  21. package/dist/backlog/types.d.ts +25 -0
  22. package/dist/backlog/types.js +4 -0
  23. package/dist/bench/run.d.ts +11 -0
  24. package/dist/bench/run.js +185 -0
  25. package/dist/bench/types.d.ts +50 -0
  26. package/dist/bench/types.js +1 -0
  27. package/dist/cli/swarm.d.ts +10 -0
  28. package/dist/cli/swarm.js +100 -0
  29. package/dist/cli/task.d.ts +14 -0
  30. package/dist/cli/task.js +121 -0
  31. package/dist/cli/wbc-arg.d.ts +6 -0
  32. package/dist/cli/wbc-arg.js +40 -0
  33. package/dist/cli/wbc.d.ts +45 -0
  34. package/dist/cli/wbc.js +98 -0
  35. package/dist/commands/license.d.ts +9 -0
  36. package/dist/commands/license.js +140 -0
  37. package/dist/commands/release.d.ts +44 -0
  38. package/dist/commands/release.js +180 -0
  39. package/dist/commands/test.d.ts +50 -0
  40. package/dist/commands/test.js +385 -0
  41. package/dist/config/loadConfig.d.ts +82 -0
  42. package/dist/config/loadConfig.js +240 -0
  43. package/dist/config/secure-mode.d.ts +29 -0
  44. package/dist/config/secure-mode.js +63 -0
  45. package/dist/config/user-config.d.ts +39 -0
  46. package/dist/config/user-config.js +202 -0
  47. package/dist/engine/reasoning-engine.d.ts +21 -0
  48. package/dist/engine/reasoning-engine.js +59 -0
  49. package/dist/events/bus.d.ts +22 -0
  50. package/dist/events/bus.js +18 -0
  51. package/dist/index.d.ts +79 -0
  52. package/dist/index.js +77 -0
  53. package/dist/indexing/ignoreRules.d.ts +1 -0
  54. package/dist/indexing/ignoreRules.js +53 -0
  55. package/dist/instance-swarm/instance-swarm-orchestrator.d.ts +57 -0
  56. package/dist/instance-swarm/instance-swarm-orchestrator.js +204 -0
  57. package/dist/instance-swarm/protocol-name-resolver.d.ts +23 -0
  58. package/dist/instance-swarm/protocol-name-resolver.js +64 -0
  59. package/dist/license/gate.d.ts +31 -0
  60. package/dist/license/gate.js +188 -0
  61. package/dist/license/http-client.d.ts +43 -0
  62. package/dist/license/http-client.js +195 -0
  63. package/dist/license/manager.d.ts +39 -0
  64. package/dist/license/manager.js +175 -0
  65. package/dist/license/receipt.d.ts +27 -0
  66. package/dist/license/receipt.js +108 -0
  67. package/dist/license/state-codec.d.ts +72 -0
  68. package/dist/license/state-codec.js +218 -0
  69. package/dist/license/state-paths.d.ts +17 -0
  70. package/dist/license/state-paths.js +64 -0
  71. package/dist/license/store.d.ts +44 -0
  72. package/dist/license/store.js +223 -0
  73. package/dist/license/trust-anchor.d.ts +24 -0
  74. package/dist/license/trust-anchor.js +74 -0
  75. package/dist/license/types.d.ts +34 -0
  76. package/dist/license/types.js +19 -0
  77. package/dist/llm/budget.d.ts +23 -0
  78. package/dist/llm/budget.js +58 -0
  79. package/dist/llm/client.d.ts +53 -0
  80. package/dist/llm/client.js +122 -0
  81. package/dist/llm/factory.d.ts +14 -0
  82. package/dist/llm/factory.js +32 -0
  83. package/dist/orchestrator/defect-logger.d.ts +31 -0
  84. package/dist/orchestrator/defect-logger.js +101 -0
  85. package/dist/orchestrator/defect-manager.d.ts +118 -0
  86. package/dist/orchestrator/defect-manager.js +338 -0
  87. package/dist/orchestrator/defect-migration.d.ts +14 -0
  88. package/dist/orchestrator/defect-migration.js +174 -0
  89. package/dist/orchestrator/defect-store.d.ts +48 -0
  90. package/dist/orchestrator/defect-store.js +76 -0
  91. package/dist/orchestrator/healing.d.ts +14 -0
  92. package/dist/orchestrator/healing.js +11 -0
  93. package/dist/orchestrator/interactive-steering.d.ts +64 -0
  94. package/dist/orchestrator/interactive-steering.js +107 -0
  95. package/dist/orchestrator/interrupt-handler.d.ts +30 -0
  96. package/dist/orchestrator/interrupt-handler.js +70 -0
  97. package/dist/orchestrator/lesson-manager.d.ts +25 -0
  98. package/dist/orchestrator/lesson-manager.js +122 -0
  99. package/dist/orchestrator/progress-summary.d.ts +15 -0
  100. package/dist/orchestrator/progress-summary.js +106 -0
  101. package/dist/orchestrator/reasoning-score.d.ts +49 -0
  102. package/dist/orchestrator/reasoning-score.js +117 -0
  103. package/dist/orchestrator/swarm.d.ts +36 -0
  104. package/dist/orchestrator/swarm.js +77 -0
  105. package/dist/orchestrator/task-factory.d.ts +15 -0
  106. package/dist/orchestrator/task-factory.js +176 -0
  107. package/dist/orchestrator/validation-gate.d.ts +23 -0
  108. package/dist/orchestrator/validation-gate.js +155 -0
  109. package/dist/protocol/react-contract.d.ts +136 -0
  110. package/dist/protocol/react-contract.js +698 -0
  111. package/dist/protocol/wks-protocol-manager.d.ts +22 -0
  112. package/dist/protocol/wks-protocol-manager.js +72 -0
  113. package/dist/sdlc-runtime/conversation-runner.d.ts +8 -0
  114. package/dist/sdlc-runtime/conversation-runner.js +64 -0
  115. package/dist/sdlc-runtime/dag-utils.d.ts +15 -0
  116. package/dist/sdlc-runtime/dag-utils.js +67 -0
  117. package/dist/sdlc-runtime/defect-integration.d.ts +7 -0
  118. package/dist/sdlc-runtime/defect-integration.js +99 -0
  119. package/dist/sdlc-runtime/execution-loop.d.ts +38 -0
  120. package/dist/sdlc-runtime/execution-loop.js +274 -0
  121. package/dist/sdlc-runtime/lesson-recorder.d.ts +9 -0
  122. package/dist/sdlc-runtime/lesson-recorder.js +27 -0
  123. package/dist/sdlc-runtime/plan-initializer.d.ts +47 -0
  124. package/dist/sdlc-runtime/plan-initializer.js +135 -0
  125. package/dist/sdlc-runtime/progress-persister.d.ts +10 -0
  126. package/dist/sdlc-runtime/progress-persister.js +34 -0
  127. package/dist/sdlc-runtime/protocol-loader.d.ts +10 -0
  128. package/dist/sdlc-runtime/protocol-loader.js +21 -0
  129. package/dist/sdlc-runtime/reporting.d.ts +24 -0
  130. package/dist/sdlc-runtime/reporting.js +68 -0
  131. package/dist/sdlc-runtime/sdlc-orchestrator.d.ts +59 -0
  132. package/dist/sdlc-runtime/sdlc-orchestrator.js +170 -0
  133. package/dist/sdlc-runtime/sdlc-skill.d.ts +44 -0
  134. package/dist/sdlc-runtime/sdlc-skill.js +148 -0
  135. package/dist/sdlc-runtime/steering-handler.d.ts +14 -0
  136. package/dist/sdlc-runtime/steering-handler.js +51 -0
  137. package/dist/sdlc-runtime/trace-recorder.d.ts +10 -0
  138. package/dist/sdlc-runtime/trace-recorder.js +7 -0
  139. package/dist/security/index.d.ts +16 -0
  140. package/dist/security/index.js +12 -0
  141. package/dist/security/input-screen.d.ts +30 -0
  142. package/dist/security/input-screen.js +75 -0
  143. package/dist/security/tool-call-guard.d.ts +16 -0
  144. package/dist/security/tool-call-guard.js +163 -0
  145. package/dist/security/untrusted-content.d.ts +34 -0
  146. package/dist/security/untrusted-content.js +63 -0
  147. package/dist/skills/advanced-dfir/SKILL.md +85 -0
  148. package/dist/skills/advanced-pentest-lab/SKILL.md +88 -0
  149. package/dist/skills/analyst/SKILL.md +55 -0
  150. package/dist/skills/architect/SKILL.md +54 -0
  151. package/dist/skills/aws/SKILL.md +92 -0
  152. package/dist/skills/azure/SKILL.md +90 -0
  153. package/dist/skills/bylaw-context.d.ts +45 -0
  154. package/dist/skills/bylaw-context.js +61 -0
  155. package/dist/skills/bylaw-review.d.ts +20 -0
  156. package/dist/skills/bylaw-review.js +101 -0
  157. package/dist/skills/conversation/SKILL.md +29 -0
  158. package/dist/skills/design-patterns/SKILL.md +190 -0
  159. package/dist/skills/devops/SKILL.md +55 -0
  160. package/dist/skills/directives.d.ts +20 -0
  161. package/dist/skills/directives.js +313 -0
  162. package/dist/skills/docker/SKILL.md +76 -0
  163. package/dist/skills/docker-expert/SKILL.md +56 -0
  164. package/dist/skills/enterprise-systems-analyst/SKILL.md +83 -0
  165. package/dist/skills/enterprise-systems-analyst/references/crm.md +41 -0
  166. package/dist/skills/enterprise-systems-analyst/references/erp.md +40 -0
  167. package/dist/skills/enterprise-systems-analyst/references/financial-systems.md +35 -0
  168. package/dist/skills/enterprise-systems-analyst/references/hcm.md +38 -0
  169. package/dist/skills/enterprise-systems-analyst/references/mrp.md +37 -0
  170. package/dist/skills/enterprise-systems-analyst/references/scm.md +32 -0
  171. package/dist/skills/ethical-hacking-methodology/SKILL.md +119 -0
  172. package/dist/skills/externalSkillLoader.d.ts +25 -0
  173. package/dist/skills/externalSkillLoader.js +65 -0
  174. package/dist/skills/externalSkillRegistry.d.ts +33 -0
  175. package/dist/skills/externalSkillRegistry.js +94 -0
  176. package/dist/skills/filesystem-management/SKILL.md +61 -0
  177. package/dist/skills/first-run-seed.d.ts +26 -0
  178. package/dist/skills/first-run-seed.js +75 -0
  179. package/dist/skills/git-vcs/SKILL.md +84 -0
  180. package/dist/skills/kafka/SKILL.md +89 -0
  181. package/dist/skills/kubernetes/SKILL.md +93 -0
  182. package/dist/skills/kubernetes-expert/SKILL.md +54 -0
  183. package/dist/skills/openshift/SKILL.md +93 -0
  184. package/dist/skills/pentester/SKILL.md +59 -0
  185. package/dist/skills/performance-tester/SKILL.md +57 -0
  186. package/dist/skills/playwright-ui-tester/SKILL.md +67 -0
  187. package/dist/skills/programmer/SKILL.md +58 -0
  188. package/dist/skills/project-scaffolding/SKILL.md +133 -0
  189. package/dist/skills/qa-engineer/SKILL.md +91 -0
  190. package/dist/skills/rca/SKILL.md +58 -0
  191. package/dist/skills/redhat/SKILL.md +92 -0
  192. package/dist/skills/rosa/SKILL.md +80 -0
  193. package/dist/skills/scrum-framework/SKILL.md +74 -0
  194. package/dist/skills/scrum-framework/references/artifacts_and_quality.md +79 -0
  195. package/dist/skills/scrum-framework/references/roles_and_events.md +105 -0
  196. package/dist/skills/scrum-master-agent/SKILL.md +74 -0
  197. package/dist/skills/scrum-master-agent/references/behaviors.md +56 -0
  198. package/dist/skills/sdlc-skill.d.ts +1 -0
  199. package/dist/skills/sdlc-skill.js +4 -0
  200. package/dist/skills/secops/SKILL.md +52 -0
  201. package/dist/skills/secure-architect.bylaws.d.ts +68 -0
  202. package/dist/skills/secure-architect.bylaws.js +525 -0
  203. package/dist/skills/seed-skills.d.ts +48 -0
  204. package/dist/skills/seed-skills.js +213 -0
  205. package/dist/skills/skill-authoring/SKILL.md +123 -0
  206. package/dist/skills/skill-header.d.ts +51 -0
  207. package/dist/skills/skill-header.js +163 -0
  208. package/dist/skills/skill-path-guard.d.ts +41 -0
  209. package/dist/skills/skill-path-guard.js +95 -0
  210. package/dist/skills/skillRouter.d.ts +51 -0
  211. package/dist/skills/skillRouter.js +90 -0
  212. package/dist/skills/skills-root.d.ts +64 -0
  213. package/dist/skills/skills-root.js +168 -0
  214. package/dist/skills/software-architect/SKILL.md +77 -0
  215. package/dist/skills/software-engineer/SKILL.md +74 -0
  216. package/dist/skills/solid-principles/SKILL.md +94 -0
  217. package/dist/skills/task-planning/SKILL.md +115 -0
  218. package/dist/skills/tester/SKILL.md +54 -0
  219. package/dist/skills/ubuntu/SKILL.md +87 -0
  220. package/dist/skills/ui-ux-design/SKILL.md +114 -0
  221. package/dist/skills/workspace-context/SKILL.md +103 -0
  222. package/dist/sprint/controller.d.ts +37 -0
  223. package/dist/sprint/controller.js +220 -0
  224. package/dist/sprint/dag-builder.d.ts +14 -0
  225. package/dist/sprint/dag-builder.js +105 -0
  226. package/dist/sprint/reporter.d.ts +11 -0
  227. package/dist/sprint/reporter.js +97 -0
  228. package/dist/sprint/state-store.d.ts +10 -0
  229. package/dist/sprint/state-store.js +71 -0
  230. package/dist/sprint/types.d.ts +24 -0
  231. package/dist/sprint/types.js +4 -0
  232. package/dist/store/file-version-store.d.ts +24 -0
  233. package/dist/store/file-version-store.js +73 -0
  234. package/dist/store/task-store.d.ts +90 -0
  235. package/dist/store/task-store.js +166 -0
  236. package/dist/task-ingest/architect-detailer.d.ts +43 -0
  237. package/dist/task-ingest/architect-detailer.js +141 -0
  238. package/dist/task-ingest/detail-schema.d.ts +9 -0
  239. package/dist/task-ingest/detail-schema.js +195 -0
  240. package/dist/task-ingest/detailed-run.d.ts +36 -0
  241. package/dist/task-ingest/detailed-run.js +108 -0
  242. package/dist/task-ingest/extract-id.d.ts +9 -0
  243. package/dist/task-ingest/extract-id.js +24 -0
  244. package/dist/task-ingest/index.d.ts +23 -0
  245. package/dist/task-ingest/index.js +14 -0
  246. package/dist/task-ingest/ingest.d.ts +45 -0
  247. package/dist/task-ingest/ingest.js +163 -0
  248. package/dist/task-ingest/list-ingested.d.ts +13 -0
  249. package/dist/task-ingest/list-ingested.js +30 -0
  250. package/dist/task-ingest/pending-filter.d.ts +30 -0
  251. package/dist/task-ingest/pending-filter.js +59 -0
  252. package/dist/task-ingest/scanner.d.ts +56 -0
  253. package/dist/task-ingest/scanner.js +216 -0
  254. package/dist/task-ingest/source-reader.d.ts +25 -0
  255. package/dist/task-ingest/source-reader.js +93 -0
  256. package/dist/task-ingest/spec-builder.d.ts +34 -0
  257. package/dist/task-ingest/spec-builder.js +89 -0
  258. package/dist/task-ingest/wbs-extract.d.ts +50 -0
  259. package/dist/task-ingest/wbs-extract.js +226 -0
  260. package/dist/task-ingest/wbs-parser.d.ts +36 -0
  261. package/dist/task-ingest/wbs-parser.js +170 -0
  262. package/dist/tools/apiTestTool.d.ts +37 -0
  263. package/dist/tools/apiTestTool.js +128 -0
  264. package/dist/tools/ast-tools.d.ts +183 -0
  265. package/dist/tools/ast-tools.js +853 -0
  266. package/dist/tools/browse-tool.d.ts +105 -0
  267. package/dist/tools/browse-tool.js +394 -0
  268. package/dist/tools/credential.d.ts +17 -0
  269. package/dist/tools/credential.js +32 -0
  270. package/dist/tools/dependency-graph.d.ts +23 -0
  271. package/dist/tools/dependency-graph.js +164 -0
  272. package/dist/tools/edit-tool.d.ts +34 -0
  273. package/dist/tools/edit-tool.js +95 -0
  274. package/dist/tools/file-header-manager.d.ts +27 -0
  275. package/dist/tools/file-header-manager.js +153 -0
  276. package/dist/tools/fs-tools.d.ts +154 -0
  277. package/dist/tools/fs-tools.js +337 -0
  278. package/dist/tools/git-tools.d.ts +79 -0
  279. package/dist/tools/git-tools.js +348 -0
  280. package/dist/tools/github-tool.d.ts +48 -0
  281. package/dist/tools/github-tool.js +147 -0
  282. package/dist/tools/globTool.d.ts +20 -0
  283. package/dist/tools/globTool.js +34 -0
  284. package/dist/tools/grepTool.d.ts +19 -0
  285. package/dist/tools/grepTool.js +44 -0
  286. package/dist/tools/index-freshness.d.ts +58 -0
  287. package/dist/tools/index-freshness.js +190 -0
  288. package/dist/tools/index-glob.d.ts +48 -0
  289. package/dist/tools/index-glob.js +175 -0
  290. package/dist/tools/load-skill-tool.d.ts +15 -0
  291. package/dist/tools/load-skill-tool.js +114 -0
  292. package/dist/tools/patch-tools.d.ts +58 -0
  293. package/dist/tools/patch-tools.js +153 -0
  294. package/dist/tools/playwright-tool.d.ts +66 -0
  295. package/dist/tools/playwright-tool.js +121 -0
  296. package/dist/tools/project-detect.d.ts +20 -0
  297. package/dist/tools/project-detect.js +87 -0
  298. package/dist/tools/prompt-guidance.d.ts +22 -0
  299. package/dist/tools/prompt-guidance.js +23 -0
  300. package/dist/tools/scheduleTool.d.ts +19 -0
  301. package/dist/tools/scheduleTool.js +181 -0
  302. package/dist/tools/search-tools.d.ts +27 -0
  303. package/dist/tools/search-tools.js +78 -0
  304. package/dist/tools/sed-tool.d.ts +66 -0
  305. package/dist/tools/sed-tool.js +402 -0
  306. package/dist/tools/shell-result.d.ts +11 -0
  307. package/dist/tools/shell-result.js +1 -0
  308. package/dist/tools/shell-tool.d.ts +45 -0
  309. package/dist/tools/shell-tool.js +141 -0
  310. package/dist/tools/siteCrawlerTool.d.ts +32 -0
  311. package/dist/tools/siteCrawlerTool.js +205 -0
  312. package/dist/tools/tool-registry.d.ts +67 -0
  313. package/dist/tools/tool-registry.js +596 -0
  314. package/dist/tools/validate-tool.d.ts +23 -0
  315. package/dist/tools/validate-tool.js +201 -0
  316. package/dist/tools/workspace-index.d.ts +46 -0
  317. package/dist/tools/workspace-index.js +173 -0
  318. package/dist/types.d.ts +222 -0
  319. package/dist/types.js +7 -0
  320. package/dist/updater/index.d.ts +14 -0
  321. package/dist/updater/index.js +120 -0
  322. package/dist/util/banner.d.ts +25 -0
  323. package/dist/util/banner.js +140 -0
  324. package/dist/util/command-suggester.d.ts +6 -0
  325. package/dist/util/command-suggester.js +25 -0
  326. package/dist/util/confirm-interrupt.d.ts +10 -0
  327. package/dist/util/confirm-interrupt.js +31 -0
  328. package/dist/util/continue-trigger.d.ts +11 -0
  329. package/dist/util/continue-trigger.js +20 -0
  330. package/dist/util/env-info.d.ts +18 -0
  331. package/dist/util/env-info.js +37 -0
  332. package/dist/util/file-access-log.d.ts +35 -0
  333. package/dist/util/file-access-log.js +140 -0
  334. package/dist/util/footer-manager.d.ts +124 -0
  335. package/dist/util/footer-manager.js +195 -0
  336. package/dist/util/footer-renderer.d.ts +67 -0
  337. package/dist/util/footer-renderer.js +319 -0
  338. package/dist/util/footer-state.d.ts +34 -0
  339. package/dist/util/footer-state.js +18 -0
  340. package/dist/util/footer-text.d.ts +51 -0
  341. package/dist/util/footer-text.js +74 -0
  342. package/dist/util/ids.d.ts +1 -0
  343. package/dist/util/ids.js +4 -0
  344. package/dist/util/levenshtein.d.ts +6 -0
  345. package/dist/util/levenshtein.js +34 -0
  346. package/dist/util/logger.d.ts +10 -0
  347. package/dist/util/logger.js +41 -0
  348. package/dist/util/logs.d.ts +26 -0
  349. package/dist/util/logs.js +88 -0
  350. package/dist/util/output-handler.d.ts +89 -0
  351. package/dist/util/output-handler.js +193 -0
  352. package/dist/util/output-interceptor.d.ts +18 -0
  353. package/dist/util/output-interceptor.js +49 -0
  354. package/dist/util/output-paths.d.ts +43 -0
  355. package/dist/util/output-paths.js +121 -0
  356. package/dist/util/package-json.d.ts +6 -0
  357. package/dist/util/package-json.js +36 -0
  358. package/dist/util/process-kill.d.ts +27 -0
  359. package/dist/util/process-kill.js +148 -0
  360. package/dist/util/protocol-error-logger.d.ts +33 -0
  361. package/dist/util/protocol-error-logger.js +73 -0
  362. package/dist/util/redact.d.ts +25 -0
  363. package/dist/util/redact.js +103 -0
  364. package/dist/util/scroll-region-guard.d.ts +33 -0
  365. package/dist/util/scroll-region-guard.js +63 -0
  366. package/dist/util/spinner.d.ts +15 -0
  367. package/dist/util/spinner.js +49 -0
  368. package/dist/util/terminal-output.d.ts +34 -0
  369. package/dist/util/terminal-output.js +1 -0
  370. package/dist/util/terminal-silent.d.ts +6 -0
  371. package/dist/util/terminal-silent.js +20 -0
  372. package/dist/util/terminal.d.ts +56 -0
  373. package/dist/util/terminal.js +124 -0
  374. package/dist/util/text-sanitize.d.ts +8 -0
  375. package/dist/util/text-sanitize.js +45 -0
  376. package/dist/util/thinking-spinner.d.ts +27 -0
  377. package/dist/util/thinking-spinner.js +189 -0
  378. package/dist/util/tool-error-logger.d.ts +33 -0
  379. package/dist/util/tool-error-logger.js +77 -0
  380. package/dist/util/tty.d.ts +13 -0
  381. package/dist/util/tty.js +16 -0
  382. package/dist/util/xcoder-paths.d.ts +56 -0
  383. package/dist/util/xcoder-paths.js +63 -0
  384. package/dist/version.d.ts +2 -0
  385. package/dist/version.js +4 -0
  386. package/dist/worker-agent/to-subtask-node.d.ts +35 -0
  387. package/dist/worker-agent/to-subtask-node.js +41 -0
  388. package/dist/worker-agent/worker-orchestrator.d.ts +104 -0
  389. package/dist/worker-agent/worker-orchestrator.js +201 -0
  390. package/package.json +39 -4
@@ -0,0 +1,84 @@
1
+ ---
2
+ name: git-vcs
3
+ role: devops
4
+ description: Git workflow discipline — clean, atomic commits, safe branching/merging/rebasing, and the correct recovery command for common "I broke my git state" situations, using this project's github_tool (clone/fetch/pull/status/commit/push).
5
+ triggers:
6
+ - "git repo"
7
+ - "git log"
8
+ - "git status"
9
+ - "using git"
10
+ - "commit"
11
+ - "branch"
12
+ - "merge conflict"
13
+ - "rebase"
14
+ - "pull request"
15
+ - "git history"
16
+ - "revert"
17
+ - "cherry-pick"
18
+ version: "1.0.0"
19
+ requires_tools:
20
+ - github_tool
21
+ - run_command_tool
22
+ composes_with:
23
+ - workspace-context
24
+ - software-engineer
25
+ ---
26
+
27
+ ## Process
28
+
29
+ 1. Before committing, check `status` and the actual diff (not just the file list) — stage exactly
30
+ the intended changes. `files` defaults to `['.']` in this project's `github_tool`, which stages
31
+ everything in the working tree; be deliberate about that when unrelated changes exist locally.
32
+ 2. Write commit messages that state *why*, not just *what* — the diff already shows what changed;
33
+ the message's job is the reasoning a diff can't express (why this approach, what it fixes, what
34
+ it doesn't cover).
35
+ 3. Keep commits atomic: one logical change per commit. A commit that mixes an unrelated formatting
36
+ pass with a real fix makes `git blame`/`git bisect` far less useful later.
37
+ 4. Pull/rebase onto the latest target branch before starting new work when working against a
38
+ shared branch, to minimize conflict surface discovered at the end instead of the start.
39
+ 5. Before pushing, re-read the actual diff being pushed (not just recall what you intended to
40
+ change) — catches accidental debug code, unintended file inclusions, or leftover conflict markers.
41
+
42
+ ## Instructions — non-negotiable
43
+
44
+ - Never force-push (`push --force`) to a shared/main branch — if history needs rewriting on a
45
+ shared branch, coordinate explicitly or use `--force-with-lease` on a branch confirmed to be
46
+ exclusively yours.
47
+ - Never commit secrets, credentials, or `.env` files — if one is committed by mistake, rotating the
48
+ credential is required; removing it from a later commit does not remove it from history that's
49
+ already been pushed/shared.
50
+ - Never resolve a merge conflict by blindly accepting "ours" or "theirs" wholesale without reading
51
+ both sides — conflicts often mean both changes are needed, merged correctly, not one discarded.
52
+ - Never rewrite (rebase/amend) commits that have already been pushed and pulled by others, without
53
+ explicit coordination.
54
+
55
+ ## Strategies
56
+
57
+ - Prefer `rebase` for keeping a feature branch current with its base (linear, readable history) and
58
+ `merge` for combining a completed feature branch back into a shared branch (preserves the actual
59
+ point-in-time context of when work merged) — know which one the project's convention expects.
60
+ - Prefer small, frequent commits over one large commit at the end of a task — easier to review,
61
+ easier to revert just the problematic part if something's wrong.
62
+ - When a change touches generated files (lockfiles, build output) alongside source, commit them
63
+ together only if the project tracks generated files at all — check `.gitignore` first.
64
+
65
+ ## Recovery commands for common situations
66
+
67
+ - Committed to the wrong branch, not yet pushed: `git reset --soft HEAD~1` on the wrong branch,
68
+ switch to the correct branch, commit there.
69
+ - Need to undo a pushed commit without rewriting shared history: `git revert <sha>` (creates a new
70
+ commit undoing it) rather than resetting/force-pushing.
71
+ - Merge conflict mid-rebase and want to abandon: `git rebase --abort` restores the pre-rebase state
72
+ cleanly — always safe to bail out this way rather than trying to force through a confusing
73
+ conflict state.
74
+ - Need one specific commit from another branch without merging everything: `git cherry-pick <sha>`.
75
+ - Accidentally staged something that shouldn't be committed: `git restore --staged <file>` (unstages
76
+ without discarding the actual edit).
77
+
78
+ ## Experience
79
+
80
+ - Most "git broke" panics have a clean, low-risk recovery command (see above) — resist the urge to
81
+ delete and re-clone the repo, which loses any uncommitted local work.
82
+ - A conflict that reappears identically after a previous "resolution" usually means the resolution
83
+ wasn't actually committed/staged correctly, not that the conflict is unresolvable — verify with
84
+ `status` after resolving.
@@ -0,0 +1,89 @@
1
+ ---
2
+ name: kafka
3
+ role: devops
4
+ description: Design and troubleshoot Kafka topics, partitioning, and consumer groups — correct delivery-semantics choice, partition-key design for ordering guarantees, and the standard diagnostic sequence for consumer lag.
5
+ triggers:
6
+ - "kafka"
7
+ - "topic partition"
8
+ - "consumer group"
9
+ - "message queue"
10
+ - "event streaming"
11
+ - "producer consumer"
12
+ version: "1.0.0"
13
+ requires_tools:
14
+ - run_command_tool
15
+ - ssh_tool
16
+ - read_tool
17
+ composes_with:
18
+ - workspace-context
19
+ - docker
20
+ - kubernetes
21
+ - aws
22
+ ---
23
+
24
+ ## Process
25
+
26
+ 1. Decide the delivery-semantics requirement explicitly before configuring anything: at-most-once
27
+ (fire and forget, fine for non-critical telemetry), at-least-once (default for most Kafka setups
28
+ — requires idempotent consumers since duplicates are possible), or exactly-once (transactional
29
+ producer + consumer, real throughput cost — only use where a duplicate is genuinely unacceptable,
30
+ e.g. financial transactions).
31
+ 2. Choose the partition key based on the ordering guarantee actually needed: messages with the same
32
+ key land on the same partition and are ordered relative to each other, but there is no ordering
33
+ guarantee across partitions. Partitioning by a high-cardinality key (e.g. user ID) gives good
34
+ parallelism; partitioning by something low-cardinality or constant defeats the purpose of having
35
+ multiple partitions.
36
+ 3. Set partition count based on target consumer parallelism, not arbitrarily — max useful
37
+ parallelism for one consumer group equals the partition count; more consumers than partitions
38
+ sit idle. Partition count can be increased later but never decreased on an existing topic, so
39
+ under-provisioning is more recoverable than over-provisioning is reversible.
40
+ 4. Set a retention policy (`retention.ms`/`retention.bytes`) deliberately based on how long
41
+ consumers legitimately need to replay from, not left at the cluster default by accident.
42
+ 5. For schema evolution, use a schema registry with a compatibility mode (backward/forward/full)
43
+ matched to the actual deploy order of producers vs. consumers — deploying an incompatible schema
44
+ change before all consumers are updated is a common outage cause.
45
+
46
+ ## Instructions — non-negotiable
47
+
48
+ - Never assume global ordering across a topic — only same-key messages on the same partition are
49
+ ordered. Design consumers to be correct under cross-partition reordering.
50
+ - Always make consumers idempotent (dedupe on a message ID/offset, or make the operation naturally
51
+ idempotent) when using at-least-once delivery — duplicates *will* happen (rebalances, retries).
52
+ - Never rely on manual offset management without understanding the commit strategy in use
53
+ (auto-commit vs. manual commit, and whether it's committed before or after processing) — this
54
+ determines exactly what's re-processed on a consumer crash.
55
+ - Monitor and alert on consumer lag, not just consumer liveness — a consumer that's running but
56
+ falling behind is a slow-motion outage that liveness checks won't catch.
57
+
58
+ ## Strategies
59
+
60
+ - Prefer fewer, well-designed topics over many narrow ones unless there's a genuine reason to
61
+ separate (different retention needs, different access-control boundary, different consumer
62
+ scaling needs).
63
+ - For high-throughput producers, batch and compress (`linger.ms`, `batch.size`, `compression.type`)
64
+ rather than sending every message individually — meaningful throughput difference at scale.
65
+ - Prefer Kafka Streams/ksqlDB for stream-processing logic that needs to live close to the data
66
+ over pulling everything into a separate service, when the processing is naturally
67
+ stream-shaped (windowed aggregation, joins between topics).
68
+
69
+ ## Diagnostic sequence for consumer lag / "messages aren't being processed"
70
+
71
+ 1. Check consumer group lag directly (`kafka-consumer-groups.sh --describe --group <g>` or the
72
+ equivalent cluster UI/API) — confirms whether it's actually lagging vs. a false alarm.
73
+ 2. If lag is growing steadily: is the consumer under-provisioned relative to partition count and
74
+ incoming rate, or is per-message processing slow (check consumer-side processing time, not just
75
+ Kafka-side metrics)?
76
+ 3. If lag is flat/not moving at all: check for a stuck/crashed consumer, a rebalance loop (frequent
77
+ rebalances usually mean `session.timeout.ms`/`max.poll.interval.ms` too tight for actual
78
+ processing time), or a permissions/connectivity issue preventing fetch.
79
+ 4. Check for a "poison pill" message (one malformed message repeatedly failing and blocking the
80
+ partition if the consumer isn't skipping/dead-lettering failed messages).
81
+
82
+ ## Experience
83
+
84
+ - Rebalance storms (consumers repeatedly leaving/rejoining the group) are usually caused by
85
+ processing taking longer than `max.poll.interval.ms`, not a Kafka infrastructure problem —
86
+ check consumer-side timing before touching cluster config.
87
+ - A "topic doesn't exist" error on first produce often means `auto.create.topics.enable` is off
88
+ (common and correct for production clusters) — the topic needs to be created explicitly, not
89
+ debugged as a connectivity issue.
@@ -0,0 +1,93 @@
1
+ ---
2
+ name: kubernetes
3
+ role: devops
4
+ description: Write and troubleshoot Kubernetes manifests and cluster workloads — correct workload type choice, resource requests/limits, probes, and the standard kubectl-based diagnostic sequence for a failing pod/deployment.
5
+ triggers:
6
+ - "kubernetes"
7
+ - "k8s"
8
+ - "kubectl"
9
+ - "the pod "
10
+ - "a pod "
11
+ - "pod is "
12
+ - "pod status"
13
+ - "deployment yaml"
14
+ - "helm chart"
15
+ - "ingress"
16
+ - "kubernetes cluster"
17
+ version: "1.0.0"
18
+ requires_tools:
19
+ - run_command_tool
20
+ - ssh_tool
21
+ - read_tool
22
+ - write_edit_tool
23
+ composes_with:
24
+ - workspace-context
25
+ - docker
26
+ - openshift
27
+ - rosa
28
+ - aws
29
+ - azure
30
+ ---
31
+
32
+ ## Process
33
+
34
+ 1. Choose the right workload type deliberately: `Deployment` for stateless/replaceable pods,
35
+ `StatefulSet` when pods need stable identity/storage/ordering, `DaemonSet` for one-per-node
36
+ agents, `Job`/`CronJob` for run-to-completion work. Using `Deployment` for something that needs
37
+ stable network identity or ordered startup is a common, hard-to-debug-later mistake.
38
+ 2. Always set both `resources.requests` and `resources.limits` (CPU and memory) — no requests means
39
+ the scheduler can't place pods sensibly; no limits means one runaway pod can starve its node.
40
+ 3. Define `readinessProbe` (traffic routing) and `livenessProbe` (restart-if-stuck) separately and
41
+ correctly — a liveness probe that's too aggressive causes restart loops on slow-starting apps; a
42
+ missing readiness probe sends traffic to a pod before it's actually ready.
43
+ 4. Use `ConfigMap`/`Secret` for configuration, never bake environment-specific values into the
44
+ image — the same image should be deployable unchanged across environments.
45
+ 5. For anything beyond a handful of static manifests, prefer Helm or Kustomize over hand-copied
46
+ YAML per environment, to keep environment diffs explicit and reviewable instead of implicit.
47
+
48
+ ## Instructions — non-negotiable
49
+
50
+ - Never apply a manifest without first running `kubectl diff` (or `--dry-run=client -o yaml`) to
51
+ see what will actually change, when the cluster is a shared/production one.
52
+ - Never set `livenessProbe` with a timeout/period tight enough to fail during normal startup —
53
+ check actual startup time first, or use `startupProbe` to give slow-starting apps room before
54
+ liveness checks begin.
55
+ - Namespace every resource explicitly rather than relying on `kubectl`'s current context default —
56
+ applying to the wrong namespace/cluster is a common, costly mistake.
57
+ - Never store secrets as plain `ConfigMap` values or in-image — use `Secret` objects (and note that
58
+ base64 in a `Secret` is encoding, not encryption; use a proper secrets manager/sealed-secrets
59
+ approach for anything genuinely sensitive).
60
+
61
+ ## Strategies
62
+
63
+ - Prefer many small, single-purpose containers/pods over one large pod doing several unrelated
64
+ jobs — matches Kubernetes' scaling and failure-isolation model.
65
+ - Set `PodDisruptionBudget` for anything that must maintain a minimum available replica count
66
+ during voluntary disruptions (node drains, cluster upgrades).
67
+ - Prefer `kubectl rollout status`/`kubectl rollout undo` for deploys over deleting and recreating
68
+ resources — preserves rollout history and enables clean rollback.
69
+
70
+ ## The standard diagnostic sequence for "pod isn't working"
71
+
72
+ 1. `kubectl get pods -n <ns>` — what phase is it in (Pending/CrashLoopBackOff/ImagePullBackOff/
73
+ Running-but-not-Ready)? The phase narrows the cause category immediately.
74
+ 2. `kubectl describe pod <pod> -n <ns>` — check `Events` at the bottom first; scheduling failures,
75
+ image pull errors, and probe failures all show up here with a specific reason.
76
+ 3. `kubectl logs <pod> -n <ns>` (add `--previous` if it's currently restarting) — application-level
77
+ errors.
78
+ 4. `kubectl get events -n <ns> --sort-by='.lastTimestamp'` — cluster-level events (evictions,
79
+ node pressure) that `describe pod` alone might not surface.
80
+ 5. For networking issues specifically: confirm the `Service` selector actually matches the pod's
81
+ labels (`kubectl get endpoints <svc>` should list the pod IPs — if empty, the selector is wrong).
82
+
83
+ ## Experience
84
+
85
+ - `ImagePullBackOff` is almost always either a typo'd image tag, a private registry the cluster
86
+ isn't authenticated against, or a platform/architecture mismatch (e.g. arm64 image on an amd64
87
+ node) — check these three before anything more exotic.
88
+ - `CrashLoopBackOff` combined with a very short `Age`-to-restart interval usually means the
89
+ container is exiting immediately on start (missing env var, bad config, wrong entrypoint) rather
90
+ than crashing after real work — `kubectl logs --previous` is the fastest path to the actual error.
91
+ - Pending pods are almost always a scheduling constraint (insufficient resources, node
92
+ selector/affinity nothing matches, or a taint with no matching toleration) — `describe pod`'s
93
+ Events section names the specific unmet constraint.
@@ -0,0 +1,54 @@
1
+ ---
2
+ name: kubernetes-expert
3
+ role: Kubernetes Specialist
4
+ description: >
5
+ Designs and troubleshoots Kubernetes manifests, cluster resources, and workload
6
+ configuration. Load whenever the task involves k8s manifests, deployments, services,
7
+ ingress, helm charts, cluster troubleshooting, or resource scaling.
8
+ triggers: [kubernetes, k8s, pod, deployment.yaml, helm, ingress, "cluster", "kubectl", statefulset, hpa]
9
+ version: 1.0
10
+ requires_tools: [read_tool, glob_tool, grep_tool, write_edit_tool, run_command_tool, ssh_tool]
11
+ composes_with: [docker-expert, devops, secops, performance-tester]
12
+ ---
13
+
14
+ ## Role
15
+ Owns correctness and efficiency of workloads on Kubernetes: manifests, resource sizing,
16
+ networking (Service/Ingress), scaling policy, and cluster-level troubleshooting.
17
+
18
+ ## Process
19
+ 1. **Understand workload shape** — stateless vs stateful, traffic pattern, resource needs.
20
+ 2. **Author manifests** — Deployment/StatefulSet, Service, Ingress, ConfigMap/Secret refs,
21
+ resource requests/limits set deliberately (not omitted, not copy-pasted defaults).
22
+ 3. **Wire health checks** — readiness/liveness probes matched to actual startup/health
23
+ behavior.
24
+ 4. **Validate** — `kubectl apply --dry-run` / lint manifests, then apply and check rollout
25
+ status and pod events.
26
+ 5. **Troubleshoot** — for issues, read pod events/logs and describe output before guessing at
27
+ a fix.
28
+
29
+ ## Strategies
30
+ - Always set resource requests/limits; unset limits are the most common cause of noisy-
31
+ neighbor incidents.
32
+ - Use readiness probes to gate traffic, liveness probes to recover hung processes — don't
33
+ conflate the two.
34
+ - Prefer Horizontal Pod Autoscaler over manual replica counts for variable load.
35
+ - Keep secrets out of manifests directly — reference Kubernetes Secrets/external secret
36
+ stores.
37
+
38
+ ## Planning Approach
39
+ - Namespace and label workloads by environment/team from the start; retrofitting later is
40
+ costly.
41
+ - Plan rollout strategy (RollingUpdate params, maxSurge/maxUnavailable) relative to
42
+ workload's tolerance for reduced capacity during deploys.
43
+
44
+ ## Instructions for This Task Type
45
+ - Always validate manifests (dry-run/lint) before declaring a change done.
46
+ - After apply, check `kubectl rollout status` and pod events, not just "apply succeeded".
47
+
48
+ ## Experience / Common Pitfalls
49
+ - Missing/incorrect probes cause traffic to hit not-yet-ready pods or mask hung processes.
50
+ - Unbounded resource requests lead to unpredictable scheduling and eviction under pressure.
51
+
52
+ ## Output Artifacts
53
+ - Kubernetes manifests / Helm chart
54
+ - Rollout validation report
@@ -0,0 +1,93 @@
1
+ ---
2
+ name: openshift
3
+ role: devops
4
+ description: Operate OpenShift day-to-day — the oc CLI, Projects vs. raw Kubernetes namespaces, Routes vs. Ingress, Source-to-Image builds, and the Operator Lifecycle Manager — the parts that differ from or extend plain Kubernetes.
5
+ triggers:
6
+ - "openshift"
7
+ - "oc cli"
8
+ - "oc apply"
9
+ - "s2i"
10
+ - "source-to-image"
11
+ - "openshift route"
12
+ - "operator lifecycle manager"
13
+ version: "1.0.0"
14
+ requires_tools:
15
+ - run_command_tool
16
+ - ssh_tool
17
+ - read_tool
18
+ - write_edit_tool
19
+ composes_with:
20
+ - workspace-context
21
+ - kubernetes
22
+ - rosa
23
+ - redhat
24
+ - docker
25
+ ---
26
+
27
+ ## Process
28
+
29
+ 1. Use `oc` for OpenShift-specific resources (Projects, Routes, BuildConfigs, DeploymentConfigs,
30
+ ImageStreams) and standard `kubectl`-compatible manifests/`oc apply` for plain Kubernetes
31
+ objects — `oc` is a superset of `kubectl`, so it's safe to default to `oc` throughout rather
32
+ than switching tools.
33
+ 2. Use `Project` (`oc new-project`) as the day-to-day unit — it's a Kubernetes `Namespace` with
34
+ additional OpenShift access-control and metadata; don't create a raw `Namespace` and expect
35
+ identical behavior to a `Project` created via `oc`.
36
+ 3. Use `Route` for exposing HTTP(S) services externally rather than `Ingress` unless there's a
37
+ specific portability reason to use Ingress — Routes integrate with OpenShift's built-in router
38
+ and support things like automatic edge/passthrough TLS termination more directly.
39
+ 4. For building application images from source, evaluate Source-to-Image (`oc new-app` from a Git
40
+ repo, or an explicit `BuildConfig` with an S2I builder image) as an alternative to hand-writing
41
+ a Dockerfile when the language/framework has a good S2I builder available — it removes an entire
42
+ class of Dockerfile-maintenance work for straightforward apps; fall back to a Dockerfile-based
43
+ `BuildConfig` for anything with unusual build requirements.
44
+ 5. Install cluster capabilities (databases, service meshes, monitoring stacks) via Operators through
45
+ OLM (`oc get packagemanifests`, then a `Subscription`) rather than hand-installed Helm charts
46
+ where a well-maintained Operator exists — gets you lifecycle management (upgrades, health
47
+ reconciliation) the raw Helm install doesn't provide.
48
+
49
+ ## Instructions — non-negotiable
50
+
51
+ - Never run application containers as root inside the pod spec — OpenShift's default Security
52
+ Context Constraints (SCCs) block arbitrary root UIDs by design (`restricted` SCC assigns a
53
+ random non-root UID). If an image is built assuming a fixed root UID, fix the image rather than
54
+ requesting a broader SCC as the first move.
55
+ - Never grant the `anyuid` or `privileged` SCC broadly to "make deployment errors go away" without
56
+ understanding why the default `restricted` SCC is failing — diagnose the actual permission need
57
+ first (see diagnostic sequence below); broad SCC grants are a real security regression.
58
+ - Always set explicit resource requests/limits on `DeploymentConfig`/`Deployment` objects, same
59
+ requirement as plain Kubernetes — OpenShift doesn't change this need.
60
+ - Use `oc whoami`/`oc project` to confirm the current user and project context before applying
61
+ changes on a shared cluster — same class of mistake as applying to the wrong `kubectl` context.
62
+
63
+ ## Strategies
64
+
65
+ - Prefer `DeploymentConfig` only where its OpenShift-specific features (image-change triggers,
66
+ built-in rollback) are actually needed; prefer standard Kubernetes `Deployment` otherwise for
67
+ better portability and alignment with upstream tooling/documentation.
68
+ - Use `ImageStream`s to track image tags/get automatic rollout on new image pushes when working
69
+ within OpenShift's build/deploy chain; use plain image references pulled from an external
70
+ registry when the image is built outside OpenShift entirely.
71
+ - For multi-tenant clusters, use `ResourceQuota` and `LimitRange` per Project alongside SCCs — SCCs
72
+ govern *what* a pod is allowed to do; quotas govern *how much* a project can consume.
73
+
74
+ ## Diagnostic sequence for "pod won't schedule / SCC-related failure"
75
+
76
+ 1. `oc get events -n <project>` — SCC admission failures show up here with the specific reason
77
+ (e.g. attempting to run as a disallowed UID).
78
+ 2. `oc describe pod <pod>` — same `Events` section, often the fastest path to the exact denial.
79
+ 3. `oc get scc` and `oc describe scc restricted` (or whichever SCC applies) — confirm what the
80
+ applicable SCC actually allows before assuming a broader one is required.
81
+ 4. Fix the pod spec (remove a hardcoded `runAsUser`, let OpenShift assign one) before considering
82
+ an SCC change — most "SCC failures" are a pod spec asking for something unnecessary, not a
83
+ genuine need for elevated permissions.
84
+
85
+ ## Experience
86
+
87
+ - Images built assuming Docker Hub-style "runs as root by default" behavior are the most common
88
+ source of first-deployment failures on OpenShift — build images to run as an arbitrary non-root
89
+ UID (writable directories owned by group `0` with group-write permissions is the standard
90
+ pattern) rather than requesting `anyuid`.
91
+ - "Works on plain Kubernetes, fails on OpenShift" is very often exactly this SCC/root-UID
92
+ difference, not a genuine incompatibility — check that first before assuming an OpenShift-specific
93
+ bug.
@@ -0,0 +1,59 @@
1
+ ---
2
+ name: pentester
3
+ role: Penetration Tester (Offensive Security)
4
+ description: >
5
+ Performs authorized offensive security testing — probing for exploitable vulnerabilities
6
+ in code/infra the user owns or has explicit authorization to test. Load whenever the task
7
+ involves penetration testing, exploit verification, or offensive security assessment of
8
+ the user's own system. Refuses to target systems without clear ownership/authorization
9
+ context.
10
+ triggers: [pentest, "penetration test", exploit, "vulnerability assessment", "red team", "attack surface"]
11
+ version: 1.0
12
+ requires_tools: [read_tool, grep_tool, run_command_tool]
13
+ composes_with: [secops, rca, kubernetes-expert, docker-expert]
14
+ ---
15
+
16
+ ## Role
17
+ Owns proving (not just theorizing) that a vulnerability is exploitable, within the scope of
18
+ systems the user owns/is authorized to test, then hands findings to SecOps for remediation.
19
+
20
+ ## Process
21
+ 1. **Confirm scope and authorization** — target must be owned by the user or explicitly
22
+ authorized for testing. Out-of-scope or third-party targets are refused.
23
+ 2. **Recon** — enumerate attack surface from code/config already in the workspace (endpoints,
24
+ auth flows, dependencies, exposed ports/services).
25
+ 3. **Hypothesize and verify** — for each candidate weakness, attempt a proof-of-concept in a
26
+ controlled/non-destructive way against the authorized target only.
27
+ 4. **Document impact** — what an attacker could actually achieve (data exposure, privilege
28
+ escalation, DoS), not just "this looks weak".
29
+ 5. **Hand off** — findings go to SecOps for remediation; verify the fix by re-attempting the
30
+ same PoC (Validation phase).
31
+
32
+ ## Strategies
33
+ - Prefer non-destructive PoCs (read-only proof) over anything that could damage data or
34
+ availability, unless explicitly authorized for destructive testing.
35
+ - Prioritize findings by real exploitability and impact, not by scanner-reported severity
36
+ alone.
37
+ - Chain low-severity issues where realistic (an attacker would) to show true impact.
38
+
39
+ ## Planning Approach
40
+ - Scope the assessment explicitly (which systems, which techniques are in/out of bounds)
41
+ before starting.
42
+ - Sequence: recon → low-risk verification → higher-risk verification only if justified and
43
+ authorized.
44
+
45
+ ## Instructions for This Task Type
46
+ - Always require explicit authorization/ownership context before testing anything; if it's
47
+ ambiguous, ask rather than assume.
48
+ - Never provide exploit content generically decoupled from the user's own authorized system
49
+ under test.
50
+ - Report findings with severity, exploit path, and concrete remediation — hand to SecOps.
51
+
52
+ ## Experience / Common Pitfalls
53
+ - Findings without a demonstrated exploit path get deprioritized by teams — always show
54
+ impact, not just theory.
55
+ - Destructive testing without explicit sign-off turns a test into an incident.
56
+
57
+ ## Output Artifacts
58
+ - Findings report (severity, exploit path, impact, remediation)
59
+ - PoC (non-destructive, scoped to authorized target)
@@ -0,0 +1,57 @@
1
+ ---
2
+ name: performance-tester
3
+ role: Performance/Load Test Engineer
4
+ description: >
5
+ Designs and runs load/stress/soak tests, profiles bottlenecks, and reports latency/
6
+ throughput characteristics. Load whenever the task involves load testing, benchmarking,
7
+ profiling, or "is this fast/scalable enough".
8
+ triggers: [performance, load test, "stress test", benchmark, latency, throughput, profiling, scalability, "soak test"]
9
+ version: 1.0
10
+ requires_tools: [read_tool, grep_tool, run_command_tool]
11
+ composes_with: [architect, kubernetes-expert, docker-expert, rca]
12
+ ---
13
+
14
+ ## Role
15
+ Owns quantitative answers to "how does this behave under load": throughput, latency
16
+ percentiles, resource usage curves, and breaking points.
17
+
18
+ ## Process
19
+ 1. **Define target and SLOs** — expected traffic shape, acceptable p50/p95/p99 latency,
20
+ error-rate budget — get these before running anything.
21
+ 2. **Establish baseline** — measure current state before any change, so improvements are
22
+ provable.
23
+ 3. **Design the test** — load profile (steady, ramp, spike, soak) matched to the real usage
24
+ pattern being validated.
25
+ 4. **Run and observe** — execute the test, capture latency distribution, throughput, resource
26
+ utilization, and error rate — not just "pass/fail".
27
+ 5. **Report and correlate** — tie observed bottlenecks to a specific component/resource
28
+ (CPU, memory, I/O, lock contention, DB, network).
29
+
30
+ ## Strategies
31
+ - Report percentiles (p95/p99), not just averages — averages hide tail latency that hurts
32
+ real users.
33
+ - Isolate variables: change one thing between test runs, or attribution becomes guesswork.
34
+ - Test at realistic data volumes/cardinality — small fixtures hide scaling issues.
35
+ - Distinguish capacity limits (can scale out) from architectural limits (can't scale without
36
+ redesign).
37
+
38
+ ## Planning Approach
39
+ - Define SLOs and load profile before the design phase of any performance-sensitive
40
+ component, not after it's built.
41
+ - Schedule soak tests (sustained load over time) separately from spike tests — they surface
42
+ different failure classes (leaks vs burst capacity).
43
+
44
+ ## Instructions for This Task Type
45
+ - Always establish a baseline measurement before proposing or validating an optimization.
46
+ - Report findings with concrete numbers (p50/p95/p99, throughput, error rate), not
47
+ qualitative impressions.
48
+
49
+ ## Experience / Common Pitfalls
50
+ - Optimizing without a baseline makes it impossible to prove the change helped.
51
+ - Load tests run against unrealistic (tiny/uniform) data miss real-world bottlenecks like
52
+ index scans or cache misses.
53
+
54
+ ## Output Artifacts
55
+ - Load test scripts/config
56
+ - Performance report (latency percentiles, throughput, resource usage)
57
+ - Bottleneck root cause (hands off to RCA skill if deep investigation is needed)
@@ -0,0 +1,67 @@
1
+ ---
2
+ name: playwright-ui-tester
3
+ role: UI Test Automation Engineer (Playwright)
4
+ description: >
5
+ Writes and maintains Playwright UI test scripts (@playwright/test). Load whenever the task
6
+ involves creating browser/UI tests, converting a page or user flow into automated tests,
7
+ or fixing flaky/broken Playwright specs.
8
+ triggers: [playwright, "ui test", "e2e test", "browser test", "page object", "user flow test", "click through test"]
9
+ version: 1.0
10
+ requires_tools: [read_tool, glob_tool, grep_tool, write_edit_tool, run_command_tool, playwright_run_tool, crawl_and_generate_playwright_test_tool]
11
+ composes_with: [tester, programmer, analyst]
12
+ ---
13
+
14
+ ## Role
15
+ Owns turning real user flows into reliable, maintainable Playwright tests: locator strategy,
16
+ assertions, fixtures, and keeping specs stable against normal UI churn.
17
+
18
+ ## Process
19
+ 1. **Understand the flow** — what should a user be able to do, and what's the observable
20
+ success condition (URL change, element appears, API call fires, text updates)?
21
+ 2. **Scaffold or crawl** — for a brand-new page, use `crawl_and_generate_playwright_test_tool`
22
+ to get a starting skeleton from the live page's actual elements; for an existing flow,
23
+ write the spec directly against the known selectors.
24
+ 3. **Prefer resilient locators** — `getByRole`, `getByLabel`, `getByText` over CSS selectors
25
+ tied to implementation details (class names, DOM structure) that churn with redesigns.
26
+ 4. **Write the assertion, not just the click** — every interaction should end in an
27
+ `expect()` that proves the flow actually succeeded, not just that a click didn't throw.
28
+ 5. **Run and validate** — use `playwright_run_tool` to execute the spec, read the JSON
29
+ summary/failure output, and iterate until green.
30
+
31
+ ## Strategies
32
+ - One logical user flow per test; avoid mega-tests that chain unrelated assertions — a single
33
+ failure should point at one broken behavior, not five.
34
+ - Use `test.describe` to group by page/feature, not by test type.
35
+ - Wait on state (`expect(locator).toBeVisible()`), never on fixed timeouts (`waitForTimeout`).
36
+ - When multiple elements share a label (nav toggles, repeated cards), disambiguate with
37
+ `.nth()`, a scoped parent locator, or a more specific role/name rather than a brittle index
38
+ into the raw DOM.
39
+ - Keep test data and fixtures separate from assertions so the same spec can run against
40
+ different environments (local/staging).
41
+
42
+ ## Planning Approach
43
+ - For a new page/feature, decide up front which flows are worth covering (happy path +
44
+ the 1-2 realistic failure modes) rather than testing every possible click.
45
+ - Group related specs under a shared `test.describe` and a `playwright.config.ts` project
46
+ per environment if the same suite needs to run against multiple targets.
47
+
48
+ ## Instructions for This Task Type
49
+ - Always run the generated/edited spec via `playwright_run_tool` before declaring it done —
50
+ a spec that "looks right" but has never executed is not validated.
51
+ - When `crawl_and_generate_playwright_test_tool` produces a skeleton, treat it as a draft:
52
+ replace generic "is visible" checks with assertions that reflect actual desired behavior
53
+ (form submission results, navigation outcomes, state changes) before shipping it.
54
+ - Flag any test that depends on external network state (third-party pages, live data) as
55
+ potentially flaky and prefer mocking/fixtures where the framework being tested supports it.
56
+
57
+ ## Experience / Common Pitfalls
58
+ - Duplicate accessible names (e.g. two "Toggle navigation" buttons) generate duplicate test
59
+ titles if scripted mechanically — always dedupe/disambiguate generated test names.
60
+ - CSS-selector-heavy specs break on every minor markup change; role/label-based locators
61
+ survive redesigns far better.
62
+ - Tests that pass locally but fail in CI are usually a timing issue (missing an `expect`-based
63
+ wait) — never paper over this with `waitForTimeout`.
64
+
65
+ ## Output Artifacts
66
+ - Playwright spec file(s) (`*.spec.ts`)
67
+ - Run/validation report (pass/fail counts, failure details)
@@ -0,0 +1,58 @@
1
+ ---
2
+ name: programmer
3
+ role: Software Engineer
4
+ description: >
5
+ Writes and edits code implementing a new feature or component from a design/spec, across
6
+ languages/frameworks. Load this skill whenever the task involves implementing a feature,
7
+ writing a function, a class, or producing runnable code from a spec. NOTE: for fixing an
8
+ existing defect in a minimal, non-redesigning way, prefer Xcoder SDLC's own "refactorer" Role
9
+ directive instead (see src/skills/directives.ts) — this skill's "new implementation" framing
10
+ can otherwise nudge a refactor task toward broader scope than that Role intends.
11
+ triggers: [implement, "new feature", function, class, api, script, "write code", "from scratch"]
12
+ version: 1.0
13
+ requires_tools: [read_tool, glob_tool, grep_tool, write_edit_tool, run_command_tool, github_tool]
14
+ composes_with: [architect, tester, devops]
15
+ ---
16
+
17
+ ## Role
18
+ Turns a specification or bug report into correct, minimal, idiomatic code, and leaves the
19
+ codebase in a state that passes validation (see Re Act Validation phase).
20
+
21
+ ## Process
22
+ 1. **Locate context** — glob/grep/read the relevant files before writing anything. Never
23
+ guess at existing conventions.
24
+ 2. **Confirm contract** — inputs/outputs, error cases, edge cases. If solution design.md or
25
+ blueprint.md exists for this component, read it first.
26
+ 3. **Implement smallest correct change** — prefer editing existing patterns over introducing
27
+ new ones unless asked.
28
+ 4. **Self-validate** — run the test suite / linter / type-checker (Validation phase). Treat
29
+ failures as new Observations and loop back into Search → Action.
30
+ 5. **Document the diff** — summarize what changed and why, not a line-by-line narration.
31
+
32
+ ## Strategies
33
+ - Match existing naming/style conventions found via grep before inventing new ones.
34
+ - Prefer composition over inheritance unless the codebase already leans OOP-heavy.
35
+ - Isolate side effects; keep pure logic testable independently of I/O.
36
+ - When a fix touches shared code, grep for all call sites before editing.
37
+ - Never silently swallow exceptions — log via sys.log or rethrow with context.
38
+
39
+ ## Planning Approach
40
+ - Break work into atomic, independently testable units (mirrors wbs.md granularity).
41
+ - Sequence changes so the codebase is runnable after every step, not just at the end.
42
+
43
+ ## Instructions for This Task Type
44
+ - If a test runner is available, write/extend a test before or alongside the fix (regression
45
+ proof for bugs; contract proof for features).
46
+ - If no test runner is configured, at minimum re-run the exact repro steps.
47
+ - Flag any change that requires a migration, config change, or breaking API change explicitly.
48
+
49
+ ## Experience / Common Pitfalls
50
+ - "Guess and hope" (editing without re-checking) is the most common failure mode — always
51
+ close the loop with a Validation step.
52
+ - Large diffs that mix refactor + feature are hard to review — separate them when feasible.
53
+ - Silent scope creep (fixing unrelated things while in the file) causes review friction.
54
+
55
+ ## Output Artifacts
56
+ - Code diff/changeset
57
+ - Updated/added tests
58
+ - Short change summary