xcoder-dna 0.0.0-stage → 1.3.1

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 +21 -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 +38 -3
@@ -0,0 +1,133 @@
1
+ ---
2
+ name: project-scaffolding
3
+ role: scaffolding
4
+ description: Turns an existing design document into a scaffolded, runnable repository — directory layout, package manifest, config, CI/dev-entry-point skeleton, and an initial git checkpoint — then hands off to implementation, one component at a time. Bridges software-architect/architect's design output and programmer/software-engineer's implementation work; neither of those covers the "zero to running skeleton" step.
5
+ triggers:
6
+ - "scaffold"
7
+ - "scaffold the project"
8
+ - "scaffold a repository"
9
+ - "scaffold the repository"
10
+ - "bootstrap the project"
11
+ - "bootstrap a project"
12
+ - "project skeleton"
13
+ - "repo skeleton"
14
+ - "repository skeleton"
15
+ - "initialize the repository"
16
+ - "set up the repository"
17
+ - "greenfield project"
18
+ - "from the design document"
19
+ - "from the design doc"
20
+ - "implement the design document"
21
+ - "build from the design"
22
+ version: "1.0.0"
23
+ requires_tools:
24
+ - read_tool
25
+ - glob_tool
26
+ - grep_tool
27
+ - write_edit_tool
28
+ - run_command_tool
29
+ - github_tool
30
+ composes_with:
31
+ - software-architect
32
+ - architect
33
+ - programmer
34
+ - software-engineer
35
+ - task-planning
36
+ - git-vcs
37
+ - devops
38
+ - workspace-context
39
+ ---
40
+
41
+ ## Process
42
+
43
+ 1. **Read the design document in full before creating anything.** `glob_tool` for the likely
44
+ names first if not given a path — `design.md`, `DESIGN.md`, `blueprint.md`,
45
+ `solution-design.md`, `docs/design/**/*.md`, `plan/*.md`. Extract, concretely: the chosen
46
+ tech stack (language/runtime/framework/versions if stated), the component/module list, the
47
+ external dependencies (databases, queues, third-party APIs), and any explicitly stated
48
+ directory-layout or naming conventions. If the design doc is silent on a structural
49
+ decision (e.g. monorepo vs. multi-package, test framework choice), pick the ecosystem's
50
+ own convention for the stated language rather than inventing one — don't ask the user for
51
+ things a design doc this detailed should already imply.
52
+ 2. **Compose with `task-planning` before writing files** if the component list has more than a
53
+ few items — turn the design into a WBS (one task per component/config artifact) so the run
54
+ gets scored on decisive, forward-moving steps instead of one undifferentiated "build
55
+ everything" action.
56
+ 3. **Scaffold structure and config first, implementation code second, in that order** — and
57
+ validate the skeleton actually installs/builds before writing a single line of feature code:
58
+ - Directory layout matching the design doc's module boundaries.
59
+ - Package manifest (`package.json`/`pyproject.toml`/`go.mod`/`Cargo.toml`/etc.) with the
60
+ dependencies the design doc names — not extras "just in case."
61
+ - `.gitignore` scoped to the actual stack (build output, dependency caches, local env
62
+ files) — not a generic copy-paste that ignores files the project actually needs tracked.
63
+ - A minimal entry point that runs/compiles with no real logic yet (e.g. a "hello world"
64
+ server route, an empty test that passes) — this is the checkpoint that proves the
65
+ scaffold itself works before any component logic is layered on.
66
+ - Run the install/build command (`run_command_tool`) and read the Observation. A scaffold
67
+ that "looks right" but was never actually installed/built is not validated — don't skip
68
+ this step even though it feels like overhead for boilerplate.
69
+ 4. **Commit the bare scaffold before implementing anything** (compose with `git-vcs`): `git
70
+ init` (if not already a repo) and one commit for the working skeleton. This is a direct
71
+ lesson from this project's own incident history (PM-2026-07-25-001's own P3 finding: "no git
72
+ history... impossible to trace when truncation first occurred or what changed") — a
73
+ scaffold with no checkpoint means any later mistake has no rollback point, and root-causing
74
+ it later has nothing to bisect against.
75
+ 5. **Implement component by component from the WBS, validating each one before moving to the
76
+ next** — write the code for one component, run its tests/linter/build (Validation phase),
77
+ then move on. Writing every component's code first and validating once at the end defeats
78
+ the point of incremental verification and produces a pile of unvalidated changes that are
79
+ hard to attribute a failure to.
80
+
81
+ ## Instructions — non-negotiable
82
+
83
+ - **One file per `write_edit_tool` call, not one call dumping the whole scaffold.** Every file
84
+ this skill creates (manifest, config, source stub) should be its own `write_edit_tool` call
85
+ with `mode='write'`. This project's own `agent/config/llm.yaml` sizes `max_tokens` at 16384
86
+ (~57KB) specifically so that any single completion has a real ceiling — a single response
87
+ trying to emit an entire multi-file scaffold as one giant blob risks hitting
88
+ `finish_reason: "length"` mid-generation. `truncationGuard.ts` will now catch that and force a
89
+ clean retry instead of silently writing a truncated file (the actual root cause of
90
+ PM-2026-07-25-001), but relying on that safety net for routine scaffolding work is strictly
91
+ worse than just not generating oversized single completions in the first place.
92
+ - **Check before you scaffold**: `glob_tool`/`grep_tool` for an existing manifest, `.git/`
93
+ directory, or non-empty target directory before treating this as greenfield. Scaffolding on
94
+ top of an existing project silently overwrites config — confirm the directory is actually
95
+ empty (or that overwriting specific named files is intended) before writing.
96
+ - **Never invent a directory layout the design doc doesn't imply.** If the design doc specifies
97
+ module boundaries, the directory structure should map onto them directly — restructuring
98
+ "for cleanliness" beyond what's specified is scope creep on a scaffolding task and makes the
99
+ result harder to review against the doc it's supposed to implement.
100
+ - **Config values that are secrets (API keys, DB credentials, tokens) go in a `.env.example`
101
+ with placeholder values and documentation, never a real `.env` with invented-looking real
102
+ values** — a scaffold's `.env.example` is a template, not a place to guess at credentials.
103
+
104
+ ## Strategies
105
+
106
+ - Batch tightly-related, small config values into one file (e.g. `tsconfig.json`,
107
+ `.eslintrc`) rather than one `write_edit_tool` call per config key — the one-file-per-call
108
+ rule above is about avoiding oversized *individual* completions, not about maximizing the
109
+ number of tool calls for its own sake.
110
+ - If the target ecosystem has a standard scaffolding tool (e.g. `npm create vite@latest`,
111
+ `cargo new`, `django-admin startproject`), prefer running it via `run_command_tool` over
112
+ hand-writing the same boilerplate it would generate — less surface area for a hand-written
113
+ config to drift from ecosystem convention, and it's a single verifiable command instead of
114
+ several hand-authored files that could each have a typo.
115
+ - Prefer wiring cross-platform-safe entry points (a plain `npm start`/`make run`-style command
116
+ that works without assuming a specific shell) over OS-specific scripts as the *primary*
117
+ documented way to run the project, and only add OS-specific scripts (`.sh`/`.bat`) as
118
+ secondary conveniences layered on top — this project's own scripts hit real, confirmed bugs
119
+ from the opposite ordering (a heavy, POSIX-only script wired as the automatic entry point,
120
+ breaking on every platform including Linux due to a line-ending issue). Don't repeat that
121
+ shape in a new scaffold.
122
+
123
+ ## Experience
124
+
125
+ - A design doc that names a tech stack but not exact versions is not license to pick whatever
126
+ is newest — check for a stated minimum/target version first (engines field, runtime version
127
+ file, CI config if the design doc references one); silently picking latest can introduce
128
+ compatibility problems the design doc's author didn't anticipate.
129
+ - The most common scaffolding failure isn't a missing file, it's an unvalidated one — a
130
+ manifest that lists a dependency that doesn't actually resolve, or an entry point that was
131
+ never actually run. Always execute the install/build/run command and read its Observation
132
+ before considering the scaffold step done, exactly as `devops`'s "Validate" step requires for
133
+ a deploy pipeline — the same discipline applies here, just earlier in the lifecycle.
@@ -0,0 +1,91 @@
1
+ ---
2
+ name: qa-engineer
3
+ role: qa
4
+ description: Test strategy and quality verification — systematic coverage (boundary/edge cases, negative paths, regression) and structured bug reporting instead of only confirming the happy path works once.
5
+ triggers:
6
+ - "test plan"
7
+ - "test strategy"
8
+ - "quality assurance"
9
+ - "write test cases"
10
+ - "regression test"
11
+ - "verify this works"
12
+ - "find bugs"
13
+ - "test coverage"
14
+ - "edge cases"
15
+ version: "1.0.0"
16
+ requires_tools:
17
+ - read_tool
18
+ - run_command_tool
19
+ - playwright_run_tool
20
+ - api_test_tool
21
+ - crawl_and_generate_playwright_test_tool
22
+ composes_with:
23
+ - workspace-context
24
+ - task-planning
25
+ - software-engineer
26
+ ---
27
+
28
+ <!-- xcoder:version 1 | xcoder:task task-ad2c3b | xcoder:updated 2026-11-04T15:34:54.851Z | xcoder:subtask code-st-8afddf -->
29
+
30
+ ## Precedence when a QA coverage run is active (read first)
31
+
32
+ When the task carries `requirementsPath` — i.e. it is a QA coverage run (requirement → plan →
33
+ Playwright → run → report) — this skill's coverage rule takes precedence over the happy-path
34
+ heuristic in `playwright-ui-tester` ("the happy path plus the 1–2 realistic failure modes").
35
+
36
+ The **requirement set**, not the happy-path heuristic, defines the scenario floor: every
37
+ requirement admitted at intake needs at least one scenario, every scenario needs at least one
38
+ Playwright test, and the test title must carry its `[REQ-nnn][SCN-...]` tags. Ad-hoc UI runs with
39
+ no `requirementsPath` are unchanged and stay cheap.
40
+
41
+ This precedence is guidance only. The plan-approval check, the title-tag check and the coverage
42
+ gate are enforced in code (`src/qa-agent/qa-test-plan.ts`, `qa-spec-authoring.ts`,
43
+ `coverage-gate.ts`) — a coverage number cannot be improved by anything written here.
44
+
45
+ ## Process
46
+
47
+ 1. Before writing test cases, identify the actual contract being tested: inputs, expected outputs,
48
+ documented error conditions, and any invariants that must always hold — read the code/spec
49
+ rather than guessing behavior from the function name.
50
+ 2. Cover the standard boundary set for every input: empty/null, zero, negative, maximum,
51
+ one-past-maximum, duplicate entries, and malformed/unexpected type — not just the example given
52
+ in the task. This is the single highest-value habit in this skill.
53
+ 3. Test negative/error paths explicitly: does the system fail the way it's supposed to (clear
54
+ error, correct status code, no data corruption), not just whether it succeeds on good input.
55
+ 4. For anything with concurrency or shared state, consider what happens when two operations race —
56
+ most real production bugs live here, not in single-threaded happy-path logic.
57
+ 5. When testing a UI, verify keyboard-only navigation and at least one non-desktop viewport in
58
+ addition to the primary click-through path — see the `ui-ux-design` skill for the specific
59
+ checklist when the target is a UI.
60
+ 6. After confirming a bug, write a minimal reproduction (smallest input/steps that still trigger
61
+ it) before reporting — a report with the smallest repro is fixed faster than one with the
62
+ original, more complex trigger.
63
+
64
+ ## Instructions — non-negotiable
65
+
66
+ - Never report "it doesn't work" without the specific input, expected output, actual output, and
67
+ exact steps/command used — an unreproducible report has near-zero value.
68
+ - Never mark a test as passing based on the absence of a crash alone — check the actual output/
69
+ return value against the expected one.
70
+ - When automating tests (e.g. `playwright_run_tool`, `api_test_tool`), assert on specific expected
71
+ values/states, not just "the page loaded" or "the request returned 200" — a broken feature that
72
+ still returns 200 with wrong data will pass a weak assertion.
73
+ - Flag flaky tests explicitly rather than silently re-running until green — a test that
74
+ intermittently fails is signal, not noise, and re-running to hide it defeats the point of testing.
75
+
76
+ ## Strategies
77
+
78
+ - Prioritize testing effort by risk (what's most likely to break × how bad if it does), not by
79
+ what's easiest to test — a simple getter needs less attention than a payment calculation.
80
+ - Prefer a small number of tests that exercise realistic user/system workflows end-to-end over a
81
+ large number of tests that only check trivial internals in isolation, when time is limited.
82
+ - When a bug is found, ask whether the same class of input could break other similar code paths in
83
+ the codebase before considering the investigation complete.
84
+
85
+ ## Experience
86
+
87
+ - The most common gap in AI-generated or rushed test suites is only testing the example from the
88
+ task description — deliberately test at least one input the task description never mentioned.
89
+ - Bugs cluster at boundaries (off-by-one, empty collections, the first/last item in a loop, state
90
+ transitions) far more often than in the middle of straightforward logic — weight test design
91
+ accordingly.
@@ -0,0 +1,58 @@
1
+ ---
2
+ name: rca
3
+ role: Root Cause Analysis
4
+ description: >
5
+ Investigates incidents/bugs to find the actual root cause, not just the symptom. Load
6
+ whenever the task involves an incident, an unexplained failure, "why did this happen", or a
7
+ bug whose fix isn't obvious from the surface report.
8
+ triggers: [rca, "root cause", incident, postmortem, "why did this fail", "why is this happening", outage]
9
+ version: 1.0
10
+ requires_tools: [read_tool, grep_tool, run_command_tool]
11
+ composes_with: [tester, performance-tester, secops, programmer]
12
+ ---
13
+
14
+ ## Role
15
+ Owns finding the actual causal chain behind a failure — not the first plausible explanation —
16
+ and distinguishing root cause from contributing factors and symptoms.
17
+
18
+ ## Process
19
+ 1. **Establish the timeline** — what changed and when, correlated with when the symptom
20
+ started (deploys, config changes, traffic shifts, dependency updates).
21
+ 2. **Reproduce if possible** — a reproduced failure is far stronger evidence than log
22
+ inference alone.
23
+ 3. **Ask "why" iteratively** — keep pushing past the first answer until you reach something
24
+ actionable and structural, not just the proximate trigger.
25
+ 4. **Verify the hypothesis** — the true root cause should, when reverted/fixed, make the
26
+ symptom go away (Validation phase) and its absence should explain why the incident
27
+ wasn't happening before.
28
+ 5. **Separate root cause from contributing factors** — e.g., "no rate limit" (root) vs.
29
+ "traffic spike" (trigger) are different things; name both, fix the root.
30
+
31
+ ## Strategies
32
+ - Prefer evidence (logs, metrics, repro) over plausible-sounding narrative.
33
+ - Check "what changed recently" first — most incidents correlate with a recent change.
34
+ - Consider multiple causal chains before committing to one; don't stop at the first fit.
35
+ - Distinguish trigger (what set it off) from root cause (what made the system vulnerable to
36
+ that trigger).
37
+
38
+ ## Planning Approach
39
+ - Timebox investigation phases: timeline reconstruction → hypothesis generation → hypothesis
40
+ verification, rather than open-ended digging.
41
+ - Write the postmortem as you go (running notes), not reconstructed from memory afterward.
42
+
43
+ ## Instructions for This Task Type
44
+ - Never present a hypothesis as the root cause without verification evidence.
45
+ - Always produce a timeline and explicitly list contributing factors alongside the root
46
+ cause, plus a corrective action for each.
47
+
48
+ ## Experience / Common Pitfalls
49
+ - Stopping at the proximate cause ("the server crashed") instead of the structural cause
50
+ ("no memory limit + unbounded cache growth") leads to recurrence.
51
+ - Blame-oriented framing ("who broke this") derails RCA from its purpose — focus on system
52
+ and process gaps.
53
+
54
+ ## Output Artifacts
55
+ - Timeline
56
+ - Root cause + contributing factors
57
+ - Corrective actions (with owners/priority if known)
58
+ - Postmortem doc
@@ -0,0 +1,92 @@
1
+ ---
2
+ name: redhat
3
+ role: devops
4
+ description: Administer RHEL/CentOS/Rocky/Alma servers — dnf/yum package management, subscription-manager registration, SELinux troubleshooting, and firewalld — the RHEL-family equivalents that differ meaningfully from Debian/Ubuntu conventions.
5
+ triggers:
6
+ - "red hat"
7
+ - "redhat"
8
+ - "rhel"
9
+ - "centos"
10
+ - "rocky linux"
11
+ - "dnf install"
12
+ - "yum install"
13
+ - "selinux"
14
+ - "firewalld"
15
+ - "subscription-manager"
16
+ version: "1.0.0"
17
+ requires_tools:
18
+ - run_command_tool
19
+ - ssh_tool
20
+ - ssh_copy_tool
21
+ composes_with:
22
+ - workspace-context
23
+ - openshift
24
+ - rosa
25
+ - docker
26
+ ---
27
+
28
+ ## Process
29
+
30
+ 1. On RHEL proper (not CentOS Stream/Rocky/Alma), register the system with
31
+ `subscription-manager register` and attach an appropriate subscription/enable the needed repos
32
+ before `dnf install` — unregistered RHEL has no package repos enabled by default, unlike
33
+ Ubuntu's apt which works out of the box. This is the most common "package not found" surprise
34
+ for anyone coming from Debian-family systems.
35
+ 2. Use `dnf` (RHEL 8+/CentOS Stream/Rocky/Alma) or `yum` (RHEL 7 and older) — `dnf` is the modern
36
+ tool and is what current guidance should target; confirm the actual OS version rather than
37
+ assuming.
38
+ 3. Check SELinux status (`getenforce`) before debugging a "permission denied" that looks otherwise
39
+ inexplicable — SELinux enforces mandatory access control independent of standard Unix
40
+ permissions, and a process can have correct file permissions and still be blocked by policy.
41
+ 4. Manage the firewall with `firewall-cmd` (firewalld), not raw `iptables`, on modern RHEL-family
42
+ systems — firewalld is the standard front-end and mixing direct iptables rules with it causes
43
+ confusing, hard-to-reproduce state.
44
+ 5. Use systemd (same as Ubuntu) for service management — this part is consistent across the
45
+ Linux distributions covered here, unlike package management and MAC (mandatory access control).
46
+
47
+ ## Instructions — non-negotiable
48
+
49
+ - Never resolve a SELinux-caused denial by running `setenforce 0` (disabling enforcement) on a
50
+ production/shared system — diagnose the specific denial (see sequence below) and fix the context
51
+ or write a targeted policy exception instead. Disabling SELinux removes a real security layer
52
+ system-wide for the sake of one local issue.
53
+ - Never open a firewalld port with `--zone=public` when a more restrictive zone would do — scope
54
+ to the minimum needed.
55
+ - Always make firewalld changes with `--permanent` and then `firewall-cmd --reload` — without
56
+ `--permanent`, changes vanish on the next reboot, which reliably confuses anyone testing a change
57
+ and forgetting to persist it.
58
+ - Never assume CentOS Stream/Rocky/Alma package availability is identical to RHEL — they track
59
+ RHEL closely but aren't guaranteed bit-identical; verify a package/repo exists for the specific
60
+ distro and version in use.
61
+
62
+ ## Strategies
63
+
64
+ - Prefer `dnf module` for software with multiple available versions (e.g. different language
65
+ runtime streams) over manually adding third-party repos, when a module stream provides what's
66
+ needed — keeps the system on RHEL's supported package paths.
67
+ - When SELinux blocks something legitimate repeatedly, prefer a scoped `semanage`/policy module fix
68
+ for the specific context over broad `setenforce 0`/`chcon` one-offs that don't survive a
69
+ relabel and don't document why the exception exists.
70
+ - For services listening on non-standard ports, remember SELinux also tracks expected port-to-service
71
+ type mappings (`semanage port -l`) independent of the firewall — a firewalld rule alone isn't
72
+ always sufficient if SELinux's port type doesn't match.
73
+
74
+ ## Diagnostic sequence for SELinux-blocked access
75
+
76
+ 1. `getenforce` — confirm SELinux is actually in `Enforcing` mode (vs. `Permissive`/`Disabled`)
77
+ before spending time chasing an SELinux theory for a non-SELinux problem.
78
+ 2. `ausearch -m avc -ts recent` (or `grep AVC /var/log/audit/audit.log`) — find the actual denial
79
+ and what it was trying to do.
80
+ 3. `sealert -a /var/log/audit/audit.log` (if `setroubleshoot` is installed) — gives a human-readable
81
+ explanation and the specific suggested fix command, usually a `semanage`/`setsebool` invocation.
82
+ 4. Apply the narrowest suggested fix (a specific boolean or file context change) rather than the
83
+ broadest one offered.
84
+
85
+ ## Experience
86
+
87
+ - "It works when I run it manually as root but not as the service" combined with correct file
88
+ permissions is the classic SELinux signature — check `getenforce` and AVC denials before
89
+ anything else once permissions are confirmed correct.
90
+ - A firewalld rule that "isn't working" after being added is very often the missing `--permanent`
91
+ + `--reload`, or being added to the wrong zone (`firewall-cmd --get-active-zones` shows which
92
+ zone the actual interface is using) rather than a genuinely wrong rule.
@@ -0,0 +1,80 @@
1
+ ---
2
+ name: rosa
3
+ role: devops
4
+ description: Provision and operate Red Hat OpenShift Service on AWS (ROSA) — the AWS-account and STS prerequisites specific to managed OpenShift, how much is Red-Hat-managed vs. customer-managed, and the cluster-creation/upgrade workflow via the rosa CLI.
5
+ triggers:
6
+ - "rosa cluster"
7
+ - "red hat openshift service on aws"
8
+ - "openshift on aws"
9
+ - "provision rosa"
10
+ - "rosa cli"
11
+ version: "1.0.0"
12
+ requires_tools:
13
+ - run_command_tool
14
+ - ssh_tool
15
+ - read_tool
16
+ composes_with:
17
+ - workspace-context
18
+ - openshift
19
+ - aws
20
+ - kubernetes
21
+ ---
22
+
23
+ ## Process
24
+
25
+ 1. Understand the managed-service boundary before doing anything else: Red Hat and AWS jointly
26
+ operate and are responsible for the control plane (masters, etcd, the OpenShift platform itself,
27
+ patching, SLA); the customer is responsible for what runs on worker nodes (applications, their
28
+ configuration and security) and for the AWS account/IAM setup the cluster lives inside. Don't
29
+ plan control-plane-level changes (etcd tuning, master node access) that ROSA doesn't expose —
30
+ that's intentionally not customer-managed.
31
+ 2. Set up prerequisites in order: an AWS account meeting ROSA's requirements, the `rosa` CLI and
32
+ `oc` CLI installed, `rosa login`, then `rosa create account-roles` and (for STS clusters, the
33
+ modern default) `rosa create operator-roles`/`oidc-provider` before `rosa create cluster`.
34
+ Skipping the account-roles/operator-roles step is the most common cause of cluster creation
35
+ failing partway through.
36
+ 3. Prefer STS (Security Token Service) mode over the older non-STS/IAM-credentials mode for new
37
+ clusters — narrower, per-operator IAM permissions instead of one broad set of long-lived
38
+ credentials; this is the current recommended default.
39
+ 4. Plan networking (VPC CIDR, subnet layout across AZs, whether it's a public or fully-private
40
+ cluster) before creation — networking topology is far more disruptive to change after cluster
41
+ creation than most other settings.
42
+ 5. Once created, treat it as OpenShift for day-to-day operations (see the `openshift` skill for
43
+ `oc`, projects, routes, S2I) — ROSA is standard OpenShift underneath; the ROSA-specific concerns
44
+ are almost entirely at the provisioning/AWS-integration layer, not day-to-day workload management.
45
+
46
+ ## Instructions — non-negotiable
47
+
48
+ - Never attempt to modify control-plane/master node configuration directly — it's not exposed for
49
+ customer modification and isn't the supported path even where technically reachable; use
50
+ cluster-level OpenShift configuration objects (`Machine­Config`, operators) for anything that
51
+ needs to be customer-configured.
52
+ - Never share the AWS IAM credentials used for cluster creation broadly — scope `rosa` CLI access
53
+ to the specific people/automation that need to manage cluster lifecycle, following the same
54
+ least-privilege principle as any other AWS IAM usage.
55
+ - Confirm the target AWS region actually supports ROSA before planning around it — availability is
56
+ not universal across all AWS regions.
57
+ - Plan and budget for both AWS infrastructure costs (EC2, EBS, load balancers, data transfer) and
58
+ the separate ROSA service fee — these are billed differently and both need to be accounted for.
59
+
60
+ ## Strategies
61
+
62
+ - Use multi-AZ cluster topology for production; single-AZ is a reasonable cost tradeoff for
63
+ dev/test only.
64
+ - Prefer cluster autoscaling (`rosa create autoscaler`/machine pool min/max) over statically sized
65
+ worker node counts for variable workloads, to avoid both over-provisioning cost and
66
+ under-provisioning capacity crunches.
67
+ - For multi-cluster setups (e.g. separate clusters per environment), keep the account-roles/
68
+ operator-roles naming consistent and documented — becomes hard to track which IAM roles serve
69
+ which cluster otherwise.
70
+
71
+ ## Experience
72
+
73
+ - Cluster creation failures most often trace back to an incomplete or out-of-order prerequisite
74
+ step (missing account-roles, expired/insufficient IAM permissions on the creating principal, or
75
+ a service quota limit in the target AWS account/region) rather than a `rosa create cluster`
76
+ parameter being wrong — check `rosa describe cluster -c <name>` and `rosa logs install -c <name>`
77
+ for the actual failure stage before re-attempting.
78
+ - Upgrades are cluster-scoped and versioned like standard OpenShift — check `rosa list upgrade -c
79
+ <name>` for available versions and known upgrade-path constraints before scheduling one, same
80
+ discipline as any other production OpenShift upgrade.
@@ -0,0 +1,74 @@
1
+ ---
2
+ name: scrum-framework
3
+ role: Scrum Coach / Framework Reference
4
+ description: >
5
+ Reference and coaching knowledge for Scrum — the four roles (Product Owner, Scrum Master,
6
+ Developers, Architect), the five events (Sprint Planning, Daily Scrum, Backlog Refinement,
7
+ Sprint Review, Retrospective), the three artifacts and commitments (Product Backlog/Product
8
+ Goal, Sprint Backlog/Sprint Goal, Increment/Definition of Done), sprint rules, INVEST story
9
+ quality, and Definition of Ready/Done. Load whenever the task involves explaining or coaching
10
+ Scrum roles and accountabilities, running or facilitating a Scrum event, writing or critiquing
11
+ a Sprint Goal or user story, checking a story against INVEST or Definition of Ready/Done,
12
+ evaluating "is this good Scrum" or spotting anti-patterns, or drafting product backlog items,
13
+ acceptance criteria, or facilitation agendas.
14
+ triggers: [scrum, sprint, "product backlog", "sprint goal", "user story", "acceptance criteria", invest, "definition of done", "definition of ready", retrospective, "daily scrum", "sprint planning", "sprint review", "product owner", "scrum master"]
15
+ version: 1.0
16
+ requires_tools: []
17
+ composes_with: [scrum-master-agent]
18
+ ---
19
+
20
+
21
+ # Scrum Framework
22
+
23
+ Reference knowledge for coaching, explaining, and applying Scrum correctly. Ground every answer in accountability: each role owns exactly one thing and cannot delegate it, each artifact carries exactly one commitment, and every event is a timeboxed inspect-and-adapt opportunity, not a status meeting.
24
+
25
+ ## When to go deeper
26
+
27
+ - Full role responsibilities, sprint cycle, and event-by-event agendas: `references/roles_and_events.md`
28
+ - Artifacts, commitments, DoR/DoD, INVEST, and Scrum anti-patterns: `references/artifacts_and_quality.md`
29
+
30
+ Read the relevant reference file before writing detailed coaching content (e.g. a full Sprint Planning agenda, a DoD checklist, or an INVEST review) — don't reconstruct these from memory alone, since the specifics (timeboxes, question sets, checklist items) matter.
31
+
32
+ ## Core mental model
33
+
34
+ **Four roles, one accountability each** (Architect is not a canonical Scrum Guide role but is commonly added in technical/CBD-style teams):
35
+ - **Product Owner** — accountable for the *value* of the product. Owns the Product Backlog: content, ordering, clarity. Says what and why, never how.
36
+ - **Scrum Master** — accountable for the *effectiveness of the Scrum Team*. Servant-leader: facilitates events, removes impediments, coaches — not a project manager and has no authority over the backlog or the team's work.
37
+ - **Developers** — accountable for a *usable Increment* every Sprint. Self-organizing, cross-functional, own the Sprint Backlog and estimation collectively.
38
+ - **Architect** (non-canonical, common in technical orgs) — owns the technical blueprint/design decisions and architectural review; not a source of process authority.
39
+
40
+ No one holds more than one primary accountability, and accountabilities are non-transferable — don't recommend workarounds that blur them (e.g. a Scrum Master accepting stories, or a PO estimating).
41
+
42
+ **Five events, each with a hard timebox (a maximum, not a target):**
43
+ 1. Sprint Planning (≤8 hrs/4-wk sprint) — produces the Sprint Goal + Sprint Backlog
44
+ 2. Daily Scrum (15 min, daily) — inspects progress, replans next 24h; not a status report
45
+ 3. Backlog Refinement (≤10% of sprint capacity, continuous, not a formal timeboxed event) — gets items to "Ready"
46
+ 4. Sprint Review (≤4 hrs/4-wk sprint) — demonstrates the *working* Increment, gathers stakeholder feedback
47
+ 5. Sprint Retrospective (≤3 hrs/4-wk sprint) — produces 1–3 specific, owned improvement actions for the next sprint
48
+
49
+ **Three artifacts, three commitments:**
50
+ | Artifact | Owner | Commitment |
51
+ |---|---|---|
52
+ | Product Backlog | Product Owner | Product Goal |
53
+ | Sprint Backlog | Developers | Sprint Goal |
54
+ | Increment | Developers | Definition of Done |
55
+
56
+ ## Non-negotiable sprint rules
57
+
58
+ - Only the PO can cancel a Sprint, and only if the Sprint Goal becomes obsolete — this is rare.
59
+ - No scope changes that endanger the Sprint Goal mid-sprint.
60
+ - Sprint length is fixed; never extend to finish late work.
61
+ - Unfinished stories return openly to the Product Backlog — never silently carried over.
62
+ - If an item doesn't meet the Definition of Done, it is not Done. No partial credit.
63
+
64
+ ## Writing a good Sprint Goal
65
+
66
+ A Sprint Goal answers "why are we doing this Sprint?" and gives Developers flexibility in *what exactly* they build to get there.
67
+ - Good: "Enable customers to check out via Stripe so we can launch payments to beta users."
68
+ - Bad: "Complete stories SP-142, SP-144, SP-145, SP-147." (a task list, not a goal — gives no room to adapt)
69
+
70
+ ## Quick answers vs. deep answers
71
+
72
+ For a simple factual question ("what's the Daily Scrum timebox?", "who owns the Sprint Backlog?") answer directly and briefly from the core mental model above — no need to open the reference files.
73
+
74
+ For anything requiring a full checklist, agenda, or scored evaluation (drafting a Sprint Planning agenda, checking a story against DoR/DoD, scoring INVEST, listing anti-patterns), open the relevant reference file first so specifics are accurate rather than reconstructed from memory.
@@ -0,0 +1,79 @@
1
+ # Artifacts, Quality Gates, and Anti-Patterns
2
+
3
+ ## The three artifacts
4
+
5
+ ### Product Backlog — owned by the Product Owner, commitment: Product Goal
6
+ The single, ordered list of everything known to be needed in the product. Dynamic — always exists as long as the product does, never "complete." The PO alone is responsible for its content, availability, and ordering.
7
+
8
+ A good Product Backlog Item (PBI) contains:
9
+ - User Story (As a / I want / So that)
10
+ - Acceptance Criteria (Given/When/Then)
11
+ - Story Points estimate
12
+ - Priority / business value
13
+ - Epic linkage (if applicable)
14
+ - Definition of Ready status
15
+
16
+ ### Sprint Backlog — owned by the Developers, commitment: Sprint Goal
17
+ The Sprint Goal, the PBIs selected for the Sprint, and an actionable delivery plan. A highly visible, real-time snapshot of the Developers' plan. Only Developers modify it during the Sprint.
18
+
19
+ Components: Sprint Goal (the "why") · Selected PBIs (the "what") · Task breakdown ≤1 day each (the "how") · daily updates reflecting actual remaining work · burndown showing progress to goal.
20
+
21
+ ### Increment — owned by the Developers, commitment: Definition of Done
22
+ A concrete, usable stepping stone toward the Product Goal. Additive to all prior Increments, verified working. Multiple Increments may be created within a single Sprint. Delivered at Sprint Review, not merely demoed.
23
+
24
+ Quality gates for an Increment:
25
+ - Meets Definition of Done without exception
26
+ - All acceptance criteria verified by the PO
27
+ - Integrates cleanly with previous Increments
28
+ - Deployable to production at any time
29
+ - No known defects above the agreed threshold
30
+
31
+ ## Definition of Ready (DoR) — gate before Sprint Planning
32
+ A story is Ready when it has: Title · Description · Acceptance Criteria · Estimate · No open questions. Stories that skip this gate derail Sprint Planning.
33
+
34
+ ## Definition of Done (DoD) — gate before a story counts as Done
35
+ A formal, team-agreed quality bar. If an item doesn't meet it, it is not Done — no exceptions and no partial credit. A representative DoD:
36
+ - Code reviewed and approved
37
+ - Unit tests written and passing (commonly ≥80% coverage)
38
+ - Integration tests passing
39
+ - No new linting or type errors
40
+ - Deployed to staging environment
41
+ - Acceptance criteria verified by the PO
42
+
43
+ When reviewing a real story against DoD, list the specific unmet items rather than a pass/fail verdict — e.g. "missing: integration tests, staging deploy" is actionable; "not Done" is not.
44
+
45
+ ## The Three Commitments
46
+
47
+ - **Product Goal** — commits the team to a long-term vision (backs the Product Backlog).
48
+ - **Sprint Goal** — commits the team to what they'll achieve this Sprint (backs the Sprint Backlog).
49
+ - **Definition of Done** — commits the team to the quality standard applied to every Increment.
50
+
51
+ These give the artifacts context and prevent misinterpretation — Scrum's transparency only works if all three are explicit and shared.
52
+
53
+ ## INVEST — evaluating story quality
54
+
55
+ Score each criterion individually rather than giving one aggregate pass/fail; name the specific gap.
56
+
57
+ - **Independent** — can be built and delivered without hard dependency on another unscheduled story
58
+ - **Negotiable** — describes outcome, not a rigid spec; room for the how to be worked out
59
+ - **Valuable** — delivers value to a user or the business, not just a technical task
60
+ - **Estimable** — the team has enough clarity to size it
61
+ - **Small** — fits comfortably within a single Sprint (common flag: >13 points signals a split is needed)
62
+ - **Testable** — has clear, verifiable acceptance criteria (Given/When/Then is the standard structure)
63
+
64
+ When a story fails a criterion, suggest a concrete rewrite rather than just naming the failure — e.g. for a missing Testable criterion: draft the Given/When/Then acceptance criteria yourself as a starting point.
65
+
66
+ ## Common Scrum anti-patterns to watch for and name
67
+
68
+ - **Zombie sprints** — sprints that continue in form (events happen) but have lost real inspect-and-adapt substance; teams go through the motions without changing behavior based on what they learn.
69
+ - **Sprint padding** — inflating estimates or scope to guarantee an easy "success," which erodes the value of velocity as a planning signal.
70
+ - **Cargo-cult Scrum** — following the mechanics (standups, sprints, boards) without understanding or honoring the underlying purpose (transparency, inspection, adaptation).
71
+ - **Silent carryover** — unfinished work rolling to the next sprint without being explicitly returned to and re-prioritized in the Product Backlog.
72
+ - **Status-report Daily Scrum** — reporting to a manager instead of replanning as a team.
73
+ - **PO absentee** — Developers making value/priority calls the PO should own, or accepting their own work.
74
+ - **Scope creep endangering the Sprint Goal** — adding work mid-sprint without evaluating impact on the committed goal.
75
+ - **Task-list Sprint Goals** — a Sprint Goal that's just an enumerated list of ticket IDs, giving no flexibility or "why."
76
+
77
+ ## Scaled Scrum (brief context only)
78
+
79
+ For organizations running multiple Scrum teams on one product, common scaling frameworks include **Nexus**, **LeSS** (Large-Scale Scrum), and **SAFe** (Scaled Agile Framework). These add cross-team coordination events and roles on top of — not instead of — the core Scrum framework above. Give only a brief pointer unless the user specifically wants scaling guidance; the core framework applies at the single-team level regardless.