create-hq 6.0.0 → 10.0.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 (336) hide show
  1. package/dist/__tests__/deps.test.d.ts +2 -0
  2. package/dist/__tests__/deps.test.d.ts.map +1 -0
  3. package/dist/__tests__/deps.test.js +176 -0
  4. package/dist/__tests__/deps.test.js.map +1 -0
  5. package/dist/__tests__/platform.test.d.ts +2 -0
  6. package/dist/__tests__/platform.test.d.ts.map +1 -0
  7. package/dist/__tests__/platform.test.js +127 -0
  8. package/dist/__tests__/platform.test.js.map +1 -0
  9. package/dist/__tests__/scaffold.test.d.ts +2 -0
  10. package/dist/__tests__/scaffold.test.d.ts.map +1 -0
  11. package/dist/__tests__/scaffold.test.js +150 -0
  12. package/dist/__tests__/scaffold.test.js.map +1 -0
  13. package/dist/auth.d.ts +32 -0
  14. package/dist/auth.d.ts.map +1 -0
  15. package/dist/auth.js +156 -0
  16. package/dist/auth.js.map +1 -0
  17. package/dist/cloud-sync.d.ts +11 -0
  18. package/dist/cloud-sync.d.ts.map +1 -0
  19. package/dist/cloud-sync.js +25 -0
  20. package/dist/cloud-sync.js.map +1 -0
  21. package/dist/deps.d.ts +32 -2
  22. package/dist/deps.d.ts.map +1 -1
  23. package/dist/deps.js +182 -7
  24. package/dist/deps.js.map +1 -1
  25. package/dist/fetch-template.d.ts +14 -0
  26. package/dist/fetch-template.d.ts.map +1 -0
  27. package/dist/fetch-template.js +136 -0
  28. package/dist/fetch-template.js.map +1 -0
  29. package/dist/index.js +9 -7
  30. package/dist/index.js.map +1 -1
  31. package/dist/packages.d.ts +71 -0
  32. package/dist/packages.d.ts.map +1 -0
  33. package/dist/packages.js +332 -0
  34. package/dist/packages.js.map +1 -0
  35. package/dist/platform.d.ts +9 -0
  36. package/dist/platform.d.ts.map +1 -0
  37. package/dist/platform.js +69 -0
  38. package/dist/platform.js.map +1 -0
  39. package/dist/scaffold.d.ts +3 -2
  40. package/dist/scaffold.d.ts.map +1 -1
  41. package/dist/scaffold.js +109 -290
  42. package/dist/scaffold.js.map +1 -1
  43. package/dist/ui.d.ts +2 -3
  44. package/dist/ui.d.ts.map +1 -1
  45. package/dist/ui.js +90 -44
  46. package/dist/ui.js.map +1 -1
  47. package/package.json +49 -40
  48. package/template/.claude/CLAUDE.md +0 -202
  49. package/template/.claude/commands/checkpoint.md +0 -127
  50. package/template/.claude/commands/cleanup.md +0 -307
  51. package/template/.claude/commands/execute-task.md +0 -440
  52. package/template/.claude/commands/exit-plan.md +0 -41
  53. package/template/.claude/commands/handoff.md +0 -97
  54. package/template/.claude/commands/learn.md +0 -218
  55. package/template/.claude/commands/metrics.md +0 -118
  56. package/template/.claude/commands/newworker.md +0 -162
  57. package/template/.claude/commands/nexttask.md +0 -67
  58. package/template/.claude/commands/prd.md +0 -238
  59. package/template/.claude/commands/reanchor.md +0 -51
  60. package/template/.claude/commands/remember.md +0 -126
  61. package/template/.claude/commands/run-project.md +0 -348
  62. package/template/.claude/commands/run.md +0 -110
  63. package/template/.claude/commands/search-reindex.md +0 -62
  64. package/template/.claude/commands/search.md +0 -100
  65. package/template/.claude/commands/setup.md +0 -381
  66. package/template/.claude/scripts/pure-ralph-loop.ps1 +0 -312
  67. package/template/.claude/scripts/pure-ralph-loop.sh +0 -859
  68. package/template/CHANGELOG.md +0 -220
  69. package/template/LICENSE +0 -21
  70. package/template/MIGRATION.md +0 -259
  71. package/template/README.md +0 -368
  72. package/template/data/journal/.gitkeep +0 -0
  73. package/template/docs/images/ascii-banner-options.md +0 -122
  74. package/template/docs/images/hq-banner.svg +0 -105
  75. package/template/knowledge/Ralph/01-overview.md +0 -71
  76. package/template/knowledge/Ralph/02-core-concepts.md +0 -114
  77. package/template/knowledge/Ralph/03-how-ralph-works.md +0 -184
  78. package/template/knowledge/Ralph/04-back-pressure.md +0 -222
  79. package/template/knowledge/Ralph/05-specifications.md +0 -210
  80. package/template/knowledge/Ralph/06-agents-md.md +0 -222
  81. package/template/knowledge/Ralph/07-implementation.md +0 -316
  82. package/template/knowledge/Ralph/08-economics.md +0 -182
  83. package/template/knowledge/Ralph/09-resources.md +0 -145
  84. package/template/knowledge/Ralph/10-claude-code-workflow.md +0 -212
  85. package/template/knowledge/Ralph/11-team-training-guide.md +0 -383
  86. package/template/knowledge/Ralph/README.md +0 -40
  87. package/template/knowledge/ai-security-framework/CONTRIBUTING.md +0 -139
  88. package/template/knowledge/ai-security-framework/GLOSSARY.md +0 -176
  89. package/template/knowledge/ai-security-framework/LICENSE +0 -21
  90. package/template/knowledge/ai-security-framework/QUICK-START.md +0 -172
  91. package/template/knowledge/ai-security-framework/README.md +0 -232
  92. package/template/knowledge/ai-security-framework/checklists/browser-security.md +0 -301
  93. package/template/knowledge/ai-security-framework/checklists/credential-isolation.md +0 -322
  94. package/template/knowledge/ai-security-framework/checklists/incident-response.md +0 -288
  95. package/template/knowledge/ai-security-framework/checklists/pre-flight.md +0 -249
  96. package/template/knowledge/ai-security-framework/checklists/weekly-audit.md +0 -159
  97. package/template/knowledge/ai-security-framework/configs/audit-logging.md +0 -372
  98. package/template/knowledge/ai-security-framework/configs/kill-switches.md +0 -354
  99. package/template/knowledge/ai-security-framework/docs/01-core-principles.md +0 -256
  100. package/template/knowledge/ai-security-framework/docs/02-threat-landscape.md +0 -326
  101. package/template/knowledge/ai-security-framework/docs/03-security-posture.md +0 -250
  102. package/template/knowledge/ai-security-framework/templates/agents-security.md +0 -233
  103. package/template/knowledge/design-styles/README.md +0 -42
  104. package/template/knowledge/design-styles/american-industrial.md +0 -136
  105. package/template/knowledge/design-styles/ethereal-abstract.md +0 -133
  106. package/template/knowledge/design-styles/liminal-portal.md +0 -111
  107. package/template/knowledge/design-styles/swipes/american-industrial/G-3m4YPW0AADdu2.jpeg +0 -0
  108. package/template/knowledge/design-styles/swipes/american-industrial/G-JJlt5WwAABK3K.png +0 -0
  109. package/template/knowledge/design-styles/swipes/american-industrial/G-JJmj5W0AEbJ-7.png +0 -0
  110. package/template/knowledge/design-styles/swipes/american-industrial/G59fgNuXkAAKLJQ (1).jpeg +0 -0
  111. package/template/knowledge/design-styles/swipes/american-industrial/G59fgNuXkAAKLJQ.jpeg +0 -0
  112. package/template/knowledge/design-styles/swipes/american-industrial/G7fVkn3WEAAM-ST.jpeg +0 -0
  113. package/template/knowledge/design-styles/swipes/american-industrial/G8ECO5JWEAIksyn.png +0 -0
  114. package/template/knowledge/design-styles/swipes/american-industrial/G9-3GQSWoAA8eqZ.png +0 -0
  115. package/template/knowledge/design-styles/swipes/american-industrial/G9xEOqrXkAEZRcs.png +0 -0
  116. package/template/knowledge/design-styles/swipes/american-industrial/G_MVeJrXQAA8sx4.jpeg +0 -0
  117. package/template/knowledge/design-styles/swipes/american-industrial/G_RSkmGXkAAgAVZ.png +0 -0
  118. package/template/knowledge/design-styles/swipes/american-industrial/README.md +0 -31
  119. package/template/knowledge/design-styles/swipes/american-industrial/qyqtg7Dq.png +0 -0
  120. package/template/knowledge/dev-team/README.md +0 -35
  121. package/template/knowledge/dev-team/patterns/README.md +0 -34
  122. package/template/knowledge/dev-team/patterns/frontend/react-best-practices.md +0 -178
  123. package/template/knowledge/dev-team/troubleshooting/README.md +0 -31
  124. package/template/knowledge/dev-team/workflows/README.md +0 -49
  125. package/template/knowledge/hq/checkpoint-schema.json +0 -51
  126. package/template/knowledge/hq/index-md-spec.md +0 -74
  127. package/template/knowledge/hq/thread-schema.md +0 -153
  128. package/template/knowledge/hq-core/checkpoint-schema.json +0 -51
  129. package/template/knowledge/hq-core/index-md-spec.md +0 -74
  130. package/template/knowledge/hq-core/thread-schema.md +0 -153
  131. package/template/knowledge/loom/README.md +0 -51
  132. package/template/knowledge/loom/architecture.md +0 -125
  133. package/template/knowledge/loom/code-style.md +0 -169
  134. package/template/knowledge/loom/llm-proxy.md +0 -132
  135. package/template/knowledge/loom/state-machine.md +0 -131
  136. package/template/knowledge/loom/thread-system.md +0 -117
  137. package/template/knowledge/loom/tools.md +0 -94
  138. package/template/knowledge/loom/weaver.md +0 -96
  139. package/template/knowledge/loom/web-frontend.md +0 -131
  140. package/template/knowledge/projects/README.md +0 -72
  141. package/template/knowledge/projects/templates/README.template.md +0 -28
  142. package/template/knowledge/workers/README.md +0 -195
  143. package/template/knowledge/workers/ralph-loop-pattern.md +0 -157
  144. package/template/knowledge/workers/skill-schema.md +0 -182
  145. package/template/knowledge/workers/state-machine.md +0 -102
  146. package/template/knowledge/workers/templates/base-worker.yaml +0 -73
  147. package/template/knowledge/workers/templates/code-worker.yaml +0 -85
  148. package/template/knowledge/workers/templates/skill.yaml +0 -49
  149. package/template/knowledge/workers/templates/social-worker.yaml +0 -70
  150. package/template/modules/examples/full-manifest.yaml +0 -92
  151. package/template/modules/examples/minimal.yaml +0 -14
  152. package/template/modules/modules.yaml +0 -59
  153. package/template/projects/.gitkeep +0 -0
  154. package/template/projects/incorporate-workers-into-pure-ralph/prd.json +0 -88
  155. package/template/projects/pure-ralph-branch-isolation/README.md +0 -114
  156. package/template/projects/pure-ralph-branch-isolation/prd.json +0 -123
  157. package/template/projects/purist-ralph-loop/README.md +0 -148
  158. package/template/projects/purist-ralph-loop/prd.json +0 -135
  159. package/template/projects/ralph-test/prd.json +0 -50
  160. package/template/prompts/pure-ralph-base.md +0 -551
  161. package/template/settings/.gitkeep +0 -0
  162. package/template/settings/pure-ralph.json +0 -42
  163. package/template/social-content/drafts/INDEX.md +0 -21
  164. package/template/social-content/drafts/linkedin/.gitkeep +0 -1
  165. package/template/social-content/drafts/x/.gitkeep +0 -1
  166. package/template/social-content/images/.gitkeep +0 -1
  167. package/template/starter-projects/code-worker/README.md +0 -97
  168. package/template/starter-projects/code-worker/prd.json +0 -45
  169. package/template/starter-projects/personal-assistant/README.md +0 -42
  170. package/template/starter-projects/personal-assistant/prd.json +0 -43
  171. package/template/starter-projects/social-media/README.md +0 -60
  172. package/template/starter-projects/social-media/prd.json +0 -43
  173. package/template/workers/content-brand/README.md +0 -59
  174. package/template/workers/content-brand/skills/messaging-alignment.md +0 -91
  175. package/template/workers/content-brand/skills/tone-check.md +0 -76
  176. package/template/workers/content-brand/skills/voice-analysis.md +0 -68
  177. package/template/workers/content-brand/worker.yaml +0 -81
  178. package/template/workers/content-legal/README.md +0 -80
  179. package/template/workers/content-legal/skills/claim-substantiation.md +0 -150
  180. package/template/workers/content-legal/skills/compliance-scan.md +0 -123
  181. package/template/workers/content-legal/skills/disclaimer-check.md +0 -146
  182. package/template/workers/content-legal/worker.yaml +0 -118
  183. package/template/workers/content-product/README.md +0 -77
  184. package/template/workers/content-product/skills/claim-verification.md +0 -96
  185. package/template/workers/content-product/skills/feature-accuracy.md +0 -117
  186. package/template/workers/content-product/skills/stats-check.md +0 -128
  187. package/template/workers/content-product/worker.yaml +0 -97
  188. package/template/workers/content-sales/README.md +0 -70
  189. package/template/workers/content-sales/skills/conversion-analysis.md +0 -96
  190. package/template/workers/content-sales/skills/cta-audit.md +0 -107
  191. package/template/workers/content-sales/skills/value-prop-check.md +0 -114
  192. package/template/workers/content-sales/worker.yaml +0 -93
  193. package/template/workers/content-shared/cli.ts +0 -242
  194. package/template/workers/content-shared/index.ts +0 -234
  195. package/template/workers/content-shared/lib/accuracy-analyzer.ts +0 -661
  196. package/template/workers/content-shared/lib/analyze.ts +0 -370
  197. package/template/workers/content-shared/lib/brand-analyzer.ts +0 -526
  198. package/template/workers/content-shared/lib/cms-integration.ts +0 -446
  199. package/template/workers/content-shared/lib/compliance-analyzer.ts +0 -655
  200. package/template/workers/content-shared/lib/conversion-analyzer.ts +0 -555
  201. package/template/workers/content-shared/lib/github-integration.ts +0 -582
  202. package/template/workers/content-shared/lib/output.ts +0 -373
  203. package/template/workers/content-shared/lib/parser.ts +0 -771
  204. package/template/workers/content-shared/lib/priority.ts +0 -439
  205. package/template/workers/content-shared/lib/recommendations.ts +0 -512
  206. package/template/workers/content-shared/lib/reporter.ts +0 -749
  207. package/template/workers/content-shared/lib/restructure.ts +0 -664
  208. package/template/workers/content-shared/lib/scorer.ts +0 -140
  209. package/template/workers/content-shared/lib/types.ts +0 -227
  210. package/template/workers/content-shared/lib/variants.ts +0 -595
  211. package/template/workers/content-shared/package.json +0 -51
  212. package/template/workers/content-shared/pnpm-lock.yaml +0 -39
  213. package/template/workers/content-shared/test/sample-page.json +0 -115
  214. package/template/workers/content-shared/tsconfig.json +0 -20
  215. package/template/workers/dev-team/README.md +0 -166
  216. package/template/workers/dev-team/_template.yaml +0 -70
  217. package/template/workers/dev-team/architect/package.json +0 -27
  218. package/template/workers/dev-team/architect/skills/api-design.md +0 -89
  219. package/template/workers/dev-team/architect/skills/refactor-plan.md +0 -96
  220. package/template/workers/dev-team/architect/skills/system-design.md +0 -100
  221. package/template/workers/dev-team/architect/src/index.ts +0 -49
  222. package/template/workers/dev-team/architect/src/mcp-server.ts +0 -122
  223. package/template/workers/dev-team/architect/src/skills/api-design.ts +0 -316
  224. package/template/workers/dev-team/architect/src/skills/refactor-plan.ts +0 -264
  225. package/template/workers/dev-team/architect/src/skills/system-design.ts +0 -212
  226. package/template/workers/dev-team/architect/tsconfig.json +0 -19
  227. package/template/workers/dev-team/architect/worker.yaml +0 -128
  228. package/template/workers/dev-team/backend-dev/package-lock.json +0 -1252
  229. package/template/workers/dev-team/backend-dev/package.json +0 -27
  230. package/template/workers/dev-team/backend-dev/skills/implement-endpoint.md +0 -70
  231. package/template/workers/dev-team/backend-dev/skills/implement-service.md +0 -62
  232. package/template/workers/dev-team/backend-dev/src/index.ts +0 -51
  233. package/template/workers/dev-team/backend-dev/src/mcp-server.ts +0 -109
  234. package/template/workers/dev-team/backend-dev/src/skills/implement-endpoint.ts +0 -122
  235. package/template/workers/dev-team/backend-dev/src/skills/implement-service.ts +0 -126
  236. package/template/workers/dev-team/backend-dev/tsconfig.json +0 -19
  237. package/template/workers/dev-team/backend-dev/worker.yaml +0 -128
  238. package/template/workers/dev-team/code-reviewer/package-lock.json +0 -1080
  239. package/template/workers/dev-team/code-reviewer/package.json +0 -24
  240. package/template/workers/dev-team/code-reviewer/skills/merge-to-production.md +0 -61
  241. package/template/workers/dev-team/code-reviewer/skills/merge-to-staging.md +0 -54
  242. package/template/workers/dev-team/code-reviewer/skills/request-changes.md +0 -63
  243. package/template/workers/dev-team/code-reviewer/skills/review-pr.md +0 -77
  244. package/template/workers/dev-team/code-reviewer/src/index.ts +0 -56
  245. package/template/workers/dev-team/code-reviewer/src/mcp-server.ts +0 -101
  246. package/template/workers/dev-team/code-reviewer/tsconfig.json +0 -19
  247. package/template/workers/dev-team/code-reviewer/worker.yaml +0 -90
  248. package/template/workers/dev-team/database-dev/package.json +0 -22
  249. package/template/workers/dev-team/database-dev/skills/create-schema.md +0 -48
  250. package/template/workers/dev-team/database-dev/src/index.ts +0 -50
  251. package/template/workers/dev-team/database-dev/src/mcp-server.ts +0 -76
  252. package/template/workers/dev-team/database-dev/tsconfig.json +0 -18
  253. package/template/workers/dev-team/database-dev/worker.yaml +0 -90
  254. package/template/workers/dev-team/frontend-dev/package.json +0 -22
  255. package/template/workers/dev-team/frontend-dev/skills/create-component.md +0 -26
  256. package/template/workers/dev-team/frontend-dev/src/index.ts +0 -50
  257. package/template/workers/dev-team/frontend-dev/src/mcp-server.ts +0 -77
  258. package/template/workers/dev-team/frontend-dev/tsconfig.json +0 -18
  259. package/template/workers/dev-team/frontend-dev/worker.yaml +0 -132
  260. package/template/workers/dev-team/infra-dev/package.json +0 -24
  261. package/template/workers/dev-team/infra-dev/skills/add-monitoring.md +0 -73
  262. package/template/workers/dev-team/infra-dev/skills/configure-deployment.md +0 -80
  263. package/template/workers/dev-team/infra-dev/skills/create-dockerfile.md +0 -62
  264. package/template/workers/dev-team/infra-dev/skills/setup-cicd.md +0 -63
  265. package/template/workers/dev-team/infra-dev/src/index.ts +0 -55
  266. package/template/workers/dev-team/infra-dev/src/mcp-server.ts +0 -82
  267. package/template/workers/dev-team/infra-dev/tsconfig.json +0 -19
  268. package/template/workers/dev-team/infra-dev/worker.yaml +0 -92
  269. package/template/workers/dev-team/knowledge-curator/package.json +0 -24
  270. package/template/workers/dev-team/knowledge-curator/skills/curate-troubleshooting.md +0 -63
  271. package/template/workers/dev-team/knowledge-curator/skills/process-learnings.md +0 -61
  272. package/template/workers/dev-team/knowledge-curator/skills/sync-documentation.md +0 -76
  273. package/template/workers/dev-team/knowledge-curator/skills/update-patterns.md +0 -63
  274. package/template/workers/dev-team/knowledge-curator/src/index.ts +0 -53
  275. package/template/workers/dev-team/knowledge-curator/src/mcp-server.ts +0 -92
  276. package/template/workers/dev-team/knowledge-curator/tsconfig.json +0 -19
  277. package/template/workers/dev-team/knowledge-curator/worker.yaml +0 -80
  278. package/template/workers/dev-team/motion-designer/package.json +0 -22
  279. package/template/workers/dev-team/motion-designer/skills/add-animation.md +0 -25
  280. package/template/workers/dev-team/motion-designer/skills/generate-image.md +0 -36
  281. package/template/workers/dev-team/motion-designer/src/index.ts +0 -63
  282. package/template/workers/dev-team/motion-designer/src/mcp-server.ts +0 -79
  283. package/template/workers/dev-team/motion-designer/tsconfig.json +0 -18
  284. package/template/workers/dev-team/motion-designer/worker.yaml +0 -84
  285. package/template/workers/dev-team/product-planner/queue.json +0 -4
  286. package/template/workers/dev-team/product-planner/worker.yaml +0 -220
  287. package/template/workers/dev-team/project-manager/package-lock.json +0 -1252
  288. package/template/workers/dev-team/project-manager/package.json +0 -27
  289. package/template/workers/dev-team/project-manager/skills/create-prd.md +0 -66
  290. package/template/workers/dev-team/project-manager/skills/next-issue.md +0 -51
  291. package/template/workers/dev-team/project-manager/skills/project-status.md +0 -59
  292. package/template/workers/dev-team/project-manager/skills/update-learnings.md +0 -65
  293. package/template/workers/dev-team/project-manager/src/index.ts +0 -54
  294. package/template/workers/dev-team/project-manager/src/mcp-server.ts +0 -207
  295. package/template/workers/dev-team/project-manager/src/skills/create-prd.ts +0 -86
  296. package/template/workers/dev-team/project-manager/src/skills/next-issue.ts +0 -137
  297. package/template/workers/dev-team/project-manager/src/skills/project-status.ts +0 -131
  298. package/template/workers/dev-team/project-manager/src/skills/update-learnings.ts +0 -94
  299. package/template/workers/dev-team/project-manager/tsconfig.json +0 -19
  300. package/template/workers/dev-team/project-manager/worker.yaml +0 -96
  301. package/template/workers/dev-team/qa-tester/package.json +0 -24
  302. package/template/workers/dev-team/qa-tester/skills/create-demo-account.md +0 -36
  303. package/template/workers/dev-team/qa-tester/skills/run-tests.md +0 -36
  304. package/template/workers/dev-team/qa-tester/skills/write-test.md +0 -27
  305. package/template/workers/dev-team/qa-tester/src/index.ts +0 -61
  306. package/template/workers/dev-team/qa-tester/src/mcp-server.ts +0 -88
  307. package/template/workers/dev-team/qa-tester/tsconfig.json +0 -18
  308. package/template/workers/dev-team/qa-tester/worker.yaml +0 -116
  309. package/template/workers/dev-team/task-executor/package-lock.json +0 -1252
  310. package/template/workers/dev-team/task-executor/package.json +0 -27
  311. package/template/workers/dev-team/task-executor/skills/analyze-issue.md +0 -101
  312. package/template/workers/dev-team/task-executor/skills/execute.md +0 -133
  313. package/template/workers/dev-team/task-executor/skills/report-learnings.md +0 -106
  314. package/template/workers/dev-team/task-executor/skills/validate-completion.md +0 -121
  315. package/template/workers/dev-team/task-executor/src/index.ts +0 -54
  316. package/template/workers/dev-team/task-executor/src/mcp-server.ts +0 -139
  317. package/template/workers/dev-team/task-executor/src/skills/analyze-issue.ts +0 -219
  318. package/template/workers/dev-team/task-executor/src/skills/execute.ts +0 -132
  319. package/template/workers/dev-team/task-executor/src/skills/report-learnings.ts +0 -119
  320. package/template/workers/dev-team/task-executor/src/skills/validate-completion.ts +0 -142
  321. package/template/workers/dev-team/task-executor/tsconfig.json +0 -19
  322. package/template/workers/dev-team/task-executor/worker.yaml +0 -110
  323. package/template/workers/registry.yaml +0 -171
  324. package/template/workers/security-scanner/README.md +0 -73
  325. package/template/workers/security-scanner/skills/pre-deploy-check.md +0 -205
  326. package/template/workers/security-scanner/worker.yaml +0 -26
  327. package/template/workspace/checkpoints/.gitkeep +0 -0
  328. package/template/workspace/content-ideas/inbox.jsonl +0 -0
  329. package/template/workspace/drafts/.gitkeep +0 -0
  330. package/template/workspace/learnings/.gitkeep +0 -3
  331. package/template/workspace/orchestrator/.gitkeep +0 -0
  332. package/template/workspace/ralph-test/COMPLETE.md +0 -18
  333. package/template/workspace/ralph-test/hello.txt +0 -2
  334. package/template/workspace/reports/.gitkeep +0 -0
  335. package/template/workspace/scratch/.gitkeep +0 -0
  336. package/template/workspace/threads/.gitkeep +0 -3
@@ -1,137 +0,0 @@
1
- import * as fs from 'fs';
2
- import * as path from 'path';
3
- import { execSync } from 'child_process';
4
-
5
- interface Story {
6
- id: string;
7
- title: string;
8
- description?: string;
9
- acceptance_criteria: string[];
10
- priority: number;
11
- passes: boolean;
12
- dependsOn?: string[];
13
- worker_hints?: string[];
14
- }
15
-
16
- interface Epic {
17
- id: string;
18
- title: string;
19
- stories: Story[];
20
- }
21
-
22
- interface PRD {
23
- project: string;
24
- epics: Epic[];
25
- }
26
-
27
- interface NextIssueOptions {
28
- project: string;
29
- filter?: string;
30
- priority?: string;
31
- }
32
-
33
- export async function nextIssue(options: NextIssueOptions): Promise<void> {
34
- const { project, filter, priority } = options;
35
-
36
- // Find PRD file
37
- const prdPath = path.join(process.cwd(), '..', '..', '..', 'projects', project, 'prd.json');
38
-
39
- if (!fs.existsSync(prdPath)) {
40
- console.error(`PRD not found at ${prdPath}`);
41
- console.log('\nTo create a new PRD, run:');
42
- console.log(` project-manager create-prd --name ${project} --input requirements.md`);
43
- process.exit(1);
44
- }
45
-
46
- const prd: PRD = JSON.parse(fs.readFileSync(prdPath, 'utf-8'));
47
-
48
- // Collect all stories with their pass status
49
- const allStories: (Story & { epicId: string; epicTitle: string })[] = [];
50
- for (const epic of prd.epics) {
51
- for (const story of epic.stories) {
52
- allStories.push({ ...story, epicId: epic.id, epicTitle: epic.title });
53
- }
54
- }
55
-
56
- // Build pass map for dependency checking
57
- const passMap = new Map<string, boolean>();
58
- for (const story of allStories) {
59
- passMap.set(story.id, story.passes);
60
- }
61
-
62
- // Filter to incomplete stories with met dependencies
63
- let candidates = allStories.filter(story => {
64
- if (story.passes) return false;
65
-
66
- // Check dependencies
67
- if (story.dependsOn && story.dependsOn.length > 0) {
68
- for (const dep of story.dependsOn) {
69
- if (!passMap.get(dep)) return false;
70
- }
71
- }
72
-
73
- return true;
74
- });
75
-
76
- // Apply optional filters
77
- if (priority) {
78
- const priorityMap: Record<string, number> = { high: 1, medium: 2, low: 3 };
79
- const priorityValue = priorityMap[priority.toLowerCase()];
80
- if (priorityValue) {
81
- candidates = candidates.filter(s => s.priority <= priorityValue);
82
- }
83
- }
84
-
85
- if (candidates.length === 0) {
86
- console.log('No eligible issues found.');
87
- console.log('\nPossible reasons:');
88
- console.log(' - All stories are complete (passes: true)');
89
- console.log(' - Remaining stories have unmet dependencies');
90
- process.exit(0);
91
- }
92
-
93
- // Score and sort candidates
94
- candidates.sort((a, b) => {
95
- // Priority first (lower number = higher priority)
96
- if (a.priority !== b.priority) return a.priority - b.priority;
97
-
98
- // Then by number of stories blocked by this one
99
- const aBlocks = allStories.filter(s => s.dependsOn?.includes(a.id)).length;
100
- const bBlocks = allStories.filter(s => s.dependsOn?.includes(b.id)).length;
101
- return bBlocks - aBlocks;
102
- });
103
-
104
- // Present top candidates
105
- const top = candidates.slice(0, 3);
106
- const recommended = top[0];
107
-
108
- console.log(`\n=== Next Issue Selection for ${project} ===\n`);
109
- console.log(`Recommended: ${recommended.id} "${recommended.title}"`);
110
- console.log(` Epic: ${recommended.epicTitle}`);
111
- console.log(` Priority: ${recommended.priority}`);
112
-
113
- const blocksCount = allStories.filter(s => s.dependsOn?.includes(recommended.id)).length;
114
- if (blocksCount > 0) {
115
- console.log(` Blocks: ${blocksCount} other stories`);
116
- }
117
-
118
- if (recommended.worker_hints && recommended.worker_hints.length > 0) {
119
- console.log(` Workers: ${recommended.worker_hints.join(' → ')}`);
120
- }
121
-
122
- console.log('\n Acceptance Criteria:');
123
- for (const criterion of recommended.acceptance_criteria) {
124
- console.log(` - ${criterion}`);
125
- }
126
-
127
- if (top.length > 1) {
128
- console.log('\nAlternatives:');
129
- for (let i = 1; i < top.length; i++) {
130
- const alt = top[i];
131
- console.log(` - ${alt.id}: "${alt.title}" (Priority: ${alt.priority})`);
132
- }
133
- }
134
-
135
- console.log('\n[Human approval required to proceed]');
136
- console.log('To execute, run task-executor with the selected issue.');
137
- }
@@ -1,131 +0,0 @@
1
- import * as fs from 'fs';
2
- import * as path from 'path';
3
-
4
- interface Story {
5
- id: string;
6
- title: string;
7
- passes: boolean;
8
- dependsOn?: string[];
9
- }
10
-
11
- interface Epic {
12
- id: string;
13
- title: string;
14
- stories: Story[];
15
- }
16
-
17
- interface PRD {
18
- project: string;
19
- epics: Epic[];
20
- }
21
-
22
- interface ProjectStatusOptions {
23
- project: string;
24
- verbose?: boolean;
25
- format?: string;
26
- }
27
-
28
- export async function projectStatus(options: ProjectStatusOptions): Promise<void> {
29
- const { project, verbose, format = 'table' } = options;
30
-
31
- const prdPath = path.join(process.cwd(), '..', '..', '..', 'projects', project, 'prd.json');
32
-
33
- if (!fs.existsSync(prdPath)) {
34
- console.error(`PRD not found at ${prdPath}`);
35
- process.exit(1);
36
- }
37
-
38
- const prd: PRD = JSON.parse(fs.readFileSync(prdPath, 'utf-8'));
39
-
40
- // Collect all stories
41
- const allStories: (Story & { epicTitle: string })[] = [];
42
- for (const epic of prd.epics) {
43
- for (const story of epic.stories) {
44
- allStories.push({ ...story, epicTitle: epic.title });
45
- }
46
- }
47
-
48
- // Calculate stats
49
- const total = allStories.length;
50
- const completed = allStories.filter(s => s.passes).length;
51
- const pending = allStories.filter(s => !s.passes).length;
52
- const percentage = Math.round((completed / total) * 100);
53
-
54
- // Build pass map for dependency checking
55
- const passMap = new Map<string, boolean>();
56
- for (const story of allStories) {
57
- passMap.set(story.id, story.passes);
58
- }
59
-
60
- // Find blocked stories
61
- const blocked = allStories.filter(story => {
62
- if (story.passes) return false;
63
- if (!story.dependsOn || story.dependsOn.length === 0) return false;
64
- return story.dependsOn.some(dep => !passMap.get(dep));
65
- });
66
-
67
- // Find ready stories (not passed, dependencies met)
68
- const ready = allStories.filter(story => {
69
- if (story.passes) return false;
70
- if (!story.dependsOn || story.dependsOn.length === 0) return true;
71
- return story.dependsOn.every(dep => passMap.get(dep));
72
- });
73
-
74
- // Output
75
- if (format === 'json') {
76
- console.log(JSON.stringify({
77
- project,
78
- total,
79
- completed,
80
- pending,
81
- percentage,
82
- blocked: blocked.map(s => s.id),
83
- ready: ready.map(s => s.id)
84
- }, null, 2));
85
- return;
86
- }
87
-
88
- // Progress bar
89
- const barLength = 20;
90
- const filledLength = Math.round((percentage / 100) * barLength);
91
- const bar = '█'.repeat(filledLength) + '░'.repeat(barLength - filledLength);
92
-
93
- console.log(`\n=== ${project} ===`);
94
- console.log(`Progress: ${bar} ${percentage}% (${completed}/${total} stories)\n`);
95
-
96
- if (completed > 0) {
97
- console.log(`✅ Completed (${completed}):`);
98
- for (const story of allStories.filter(s => s.passes)) {
99
- console.log(` - ${story.id}: ${story.title}`);
100
- }
101
- console.log();
102
- }
103
-
104
- if (ready.length > 0) {
105
- console.log(`⏳ Ready (${ready.length}):`);
106
- for (const story of ready) {
107
- console.log(` - ${story.id}: ${story.title}`);
108
- }
109
- console.log();
110
- }
111
-
112
- if (blocked.length > 0) {
113
- console.log(`🚫 Blocked (${blocked.length}):`);
114
- for (const story of blocked) {
115
- const blockedBy = story.dependsOn?.filter(dep => !passMap.get(dep)) || [];
116
- console.log(` - ${story.id}: ${story.title}`);
117
- console.log(` blocked by: ${blockedBy.join(', ')}`);
118
- }
119
- console.log();
120
- }
121
-
122
- // Next recommendation
123
- if (ready.length > 0) {
124
- console.log(`Next: Run task-executor on ${ready[0].id}`);
125
- console.log(` task-executor execute --issue ${ready[0].id} --project ${project}`);
126
- } else if (pending > 0) {
127
- console.log('⚠️ All pending stories are blocked. Resolve dependencies first.');
128
- } else {
129
- console.log('🎉 All stories complete!');
130
- }
131
- }
@@ -1,94 +0,0 @@
1
- import * as fs from 'fs';
2
- import * as path from 'path';
3
-
4
- interface Learning {
5
- type: 'project' | 'pattern' | 'troubleshoot' | 'workflow';
6
- category?: string;
7
- content: string;
8
- task?: string;
9
- }
10
-
11
- interface UpdateLearningsOptions {
12
- project?: string;
13
- dryRun?: boolean;
14
- }
15
-
16
- const KNOWLEDGE_BASE = path.join(process.cwd(), '..', '..', '..', 'knowledge', 'dev-team');
17
-
18
- export async function updateLearnings(options: UpdateLearningsOptions): Promise<void> {
19
- const { project, dryRun } = options;
20
-
21
- // Read learnings from stdin or prompt
22
- console.log('=== Update Learnings ===\n');
23
- console.log('Paste learning report (JSON format), then press Ctrl+D:\n');
24
-
25
- // In practice, this would read from stdin or a file
26
- // For now, show the expected format
27
- console.log('Expected format:');
28
- console.log(JSON.stringify({
29
- task: 'US-001',
30
- learnings: [
31
- { type: 'pattern', category: 'backend', content: 'Use retry wrapper for external APIs' },
32
- { type: 'troubleshoot', content: 'Redis must connect before auth middleware' }
33
- ]
34
- }, null, 2));
35
-
36
- console.log('\n[This skill processes learnings from task-executor]');
37
- console.log('\nRouting destinations:');
38
- console.log(' - project → projects/{name}/learnings/');
39
- console.log(' - pattern → knowledge/dev-team/patterns/{category}/');
40
- console.log(' - troubleshoot → knowledge/dev-team/troubleshooting/');
41
- console.log(' - workflow → knowledge/dev-team/workflows/');
42
-
43
- if (dryRun) {
44
- console.log('\n[Dry run mode - no files will be written]');
45
- }
46
- }
47
-
48
- export function routeLearning(learning: Learning, project?: string): string {
49
- const date = new Date().toISOString().split('T')[0];
50
- const slug = learning.content
51
- .toLowerCase()
52
- .replace(/[^a-z0-9]+/g, '-')
53
- .substring(0, 40);
54
-
55
- switch (learning.type) {
56
- case 'project':
57
- if (!project) throw new Error('Project required for project-specific learnings');
58
- return path.join('projects', project, 'learnings', `${date}-${slug}.md`);
59
-
60
- case 'pattern':
61
- const category = learning.category || 'general';
62
- return path.join(KNOWLEDGE_BASE, 'patterns', category, `${slug}.md`);
63
-
64
- case 'troubleshoot':
65
- return path.join(KNOWLEDGE_BASE, 'troubleshooting', `${slug}.md`);
66
-
67
- case 'workflow':
68
- return path.join(KNOWLEDGE_BASE, 'workflows', `${slug}.md`);
69
-
70
- default:
71
- throw new Error(`Unknown learning type: ${learning.type}`);
72
- }
73
- }
74
-
75
- export function formatLearning(learning: Learning, task?: string): string {
76
- const lines = [
77
- `# ${learning.content.split('.')[0]}`,
78
- '',
79
- `## Content`,
80
- learning.content,
81
- ''
82
- ];
83
-
84
- if (task) {
85
- lines.push(`## Source`);
86
- lines.push(`Learned from task: ${task}`);
87
- lines.push('');
88
- }
89
-
90
- lines.push(`## Date`);
91
- lines.push(new Date().toISOString().split('T')[0]);
92
-
93
- return lines.join('\n');
94
- }
@@ -1,19 +0,0 @@
1
- {
2
- "compilerOptions": {
3
- "target": "ES2022",
4
- "module": "commonjs",
5
- "lib": ["ES2022"],
6
- "outDir": "./dist",
7
- "rootDir": "./src",
8
- "strict": true,
9
- "esModuleInterop": true,
10
- "skipLibCheck": true,
11
- "forceConsistentCasingInFileNames": true,
12
- "resolveJsonModule": true,
13
- "declaration": true,
14
- "declarationMap": true,
15
- "sourceMap": true
16
- },
17
- "include": ["src/**/*"],
18
- "exclude": ["node_modules", "dist"]
19
- }
@@ -1,96 +0,0 @@
1
- worker:
2
- id: project-manager
3
- name: "Project Manager"
4
- type: OpsWorker
5
- version: "1.0"
6
-
7
- execution:
8
- mode: on_demand
9
- max_runtime: 10m
10
- retry_attempts: 1
11
-
12
- context:
13
- base:
14
- - workers/public/dev-team/project-manager/
15
- - workers/public/dev-team/project-manager/skills/
16
- - knowledge/public/dev-team/workflows/
17
- dynamic:
18
- - pattern: "projects/{project}/"
19
- when: always
20
- exclude:
21
- - node_modules/
22
- - dist/
23
- - "*.log"
24
-
25
- verification:
26
- post_execute:
27
- - check: typescript
28
- command: npm run typecheck
29
- approval_required: true
30
-
31
- output:
32
- destination: workspace/reports/dev-team/
33
- format: both
34
- naming: "{date}-project-manager-{skill}.{ext}"
35
-
36
- mcp:
37
- server:
38
- command: node
39
- args:
40
- - dist/mcp-server.js
41
- cwd: workers/public/dev-team/project-manager
42
- tools:
43
- - next_issue
44
- - create_prd
45
- - update_learnings
46
- - project_status
47
-
48
- # State Machine (Loom pattern)
49
- state_machine:
50
- enabled: true
51
- max_retries: 1
52
- hooks:
53
- post_execute:
54
- - auto_checkpoint
55
- - log_metrics
56
- on_error:
57
- - log_error
58
- - checkpoint_error_state
59
-
60
- instructions: |
61
- # Project Manager
62
-
63
- Orchestrates project execution: PRD lifecycle, issue selection, learning aggregation.
64
-
65
- ## Skills
66
-
67
- | Skill | Description |
68
- |-------|-------------|
69
- | next-issue | Select next issue from PRD/beads to work on |
70
- | create-prd | Create new PRD from requirements |
71
- | update-learnings | Route learnings to appropriate knowledge locations |
72
- | project-status | Show project progress and blockers |
73
-
74
- ## CLI Usage
75
-
76
- ```bash
77
- cd workers/public/dev-team/project-manager
78
- node dist/index.js next-issue --project my-feature
79
- node dist/index.js create-prd --name "New Feature" --input requirements.md
80
- node dist/index.js project-status --project my-feature
81
- ```
82
-
83
- ## Workflow
84
-
85
- 1. Read PRD/beads for project
86
- 2. Select next issue (passes=false, dependencies met)
87
- 3. Spawn task-executor with selected issue
88
- 4. Receive learnings from task-executor
89
- 5. Route learnings via update-learnings skill
90
- 6. Repeat until all issues pass
91
-
92
- ## Human-in-the-loop
93
-
94
- - Before issue selection: Show candidates, get approval
95
- - After task completion: Show learnings, confirm routing
96
- - On project completion: Summarize outcomes
@@ -1,24 +0,0 @@
1
- {
2
- "name": "@hq/qa-tester",
3
- "version": "1.0.0",
4
- "description": "Testing, browser automation, and accessibility verification",
5
- "main": "dist/index.js",
6
- "bin": { "qa-tester": "dist/index.js" },
7
- "scripts": {
8
- "build": "tsc",
9
- "typecheck": "tsc --noEmit",
10
- "dev": "ts-node src/index.ts",
11
- "mcp": "node dist/mcp-server.js"
12
- },
13
- "dependencies": {
14
- "@modelcontextprotocol/sdk": "^1.0.0",
15
- "@playwright/test": "^1.57.0",
16
- "@axe-core/playwright": "^4.10.0",
17
- "commander": "^12.1.0"
18
- },
19
- "devDependencies": {
20
- "@types/node": "^22.10.0",
21
- "typescript": "^5.7.2",
22
- "ts-node": "^10.9.2"
23
- }
24
- }
@@ -1,36 +0,0 @@
1
- # create-demo-account
2
-
3
- Create a demo account for testing purposes.
4
-
5
- ## Arguments
6
-
7
- `$ARGUMENTS` = `--platform <shopify|stripe|etc>` (required)
8
-
9
- Optional:
10
- - `--name <string>` - Account name
11
- - `--project <name>` - Project context
12
-
13
- ## Process
14
-
15
- 1. Identify platform requirements
16
- 2. Generate demo credentials
17
- 3. Create account via API/UI
18
- 4. Store credentials safely
19
- 5. Verify account works
20
-
21
- ## Output
22
-
23
- Demo account details stored in:
24
- `projects/{project}/test-env/demo-accounts.json`
25
-
26
- ## Platforms Supported
27
-
28
- - Shopify (development store)
29
- - Stripe (test mode)
30
- - Custom platforms (via config)
31
-
32
- ## Human-in-the-loop
33
-
34
- - Approve account creation
35
- - Confirm platform selection
36
- - Review stored credentials
@@ -1,36 +0,0 @@
1
- # run-tests
2
-
3
- Run test suite and report results.
4
-
5
- ## Arguments
6
-
7
- `$ARGUMENTS` = `--suite <name>` or `--file <path>` (optional)
8
-
9
- Optional:
10
- - `--repo <path>` - Target repository
11
- - `--type <unit|e2e|all>` - Test type
12
- - `--watch` - Watch mode
13
-
14
- ## Process
15
-
16
- 1. Detect test framework (Jest, Vitest, Playwright)
17
- 2. Run specified tests
18
- 3. Capture results
19
- 4. Format report
20
- 5. Surface failures with context
21
-
22
- ## Output
23
-
24
- Test report:
25
- ```
26
- ✅ 42 passed
27
- ❌ 2 failed
28
- ⏭️ 3 skipped
29
-
30
- Failed tests:
31
- 1. src/api/auth.test.ts:42 - login should return token
32
- Error: Expected 200, got 401
33
-
34
- 2. src/components/Button.test.tsx:18 - renders correctly
35
- Error: Snapshot mismatch
36
- ```
@@ -1,27 +0,0 @@
1
- # write-test
2
-
3
- Write a new test for a feature or function.
4
-
5
- ## Arguments
6
-
7
- `$ARGUMENTS` = `--target <file|function>` (required)
8
-
9
- Optional:
10
- - `--repo <path>` - Target repository
11
- - `--type <unit|integration|e2e>` - Test type
12
-
13
- ## Process
14
-
15
- 1. Analyze target code
16
- 2. Identify test cases
17
- 3. Generate test file
18
- 4. Add to test suite
19
- 5. Verify tests pass
20
-
21
- ## Output
22
-
23
- New test file with:
24
- - Setup/teardown
25
- - Happy path tests
26
- - Edge cases
27
- - Error handling tests
@@ -1,61 +0,0 @@
1
- #!/usr/bin/env node
2
- import { Command } from 'commander';
3
-
4
- const program = new Command();
5
-
6
- program
7
- .name('qa-tester')
8
- .description('Testing, browser automation, and accessibility verification')
9
- .version('1.0.0');
10
-
11
- program
12
- .command('run-tests')
13
- .description('Run test suite')
14
- .option('--suite <name>', 'Test suite name')
15
- .option('--file <path>', 'Specific test file')
16
- .option('--repo <path>', 'Target repository')
17
- .option('--type <type>', 'Test type: unit|e2e|all')
18
- .option('--watch', 'Watch mode')
19
- .action(async (options) => {
20
- console.log('run-tests:', options);
21
- });
22
-
23
- program
24
- .command('write-test')
25
- .description('Write new test for feature')
26
- .requiredOption('--target <path>', 'Target file or function')
27
- .option('--repo <path>', 'Target repository')
28
- .option('--type <type>', 'Test type: unit|integration|e2e')
29
- .action(async (options) => {
30
- console.log('write-test:', options);
31
- });
32
-
33
- program
34
- .command('visual-regression')
35
- .description('Run visual regression tests')
36
- .option('--url <url>', 'Target URL')
37
- .option('--repo <path>', 'Target repository')
38
- .action(async (options) => {
39
- console.log('visual-regression:', options);
40
- });
41
-
42
- program
43
- .command('accessibility-scan')
44
- .description('Run accessibility audit')
45
- .requiredOption('--url <url>', 'Target URL')
46
- .option('--standard <wcag>', 'WCAG standard: 2.0|2.1|2.2')
47
- .action(async (options) => {
48
- console.log('accessibility-scan:', options);
49
- });
50
-
51
- program
52
- .command('create-demo-account')
53
- .description('Create demo account for testing')
54
- .requiredOption('--platform <name>', 'Platform: shopify|stripe|etc')
55
- .option('--name <string>', 'Account name')
56
- .option('--project <name>', 'Project context')
57
- .action(async (options) => {
58
- console.log('create-demo-account:', options);
59
- });
60
-
61
- program.parse();