@glxmart/boss-cli 1.0.0-beta.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 (506) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +134 -0
  3. package/assets/claude-folder/agents/.gitkeep +0 -0
  4. package/assets/claude-folder/commands/boss-commands.md +138 -0
  5. package/assets/claude-folder/rules/boss-workflow.md +33 -0
  6. package/assets/claude-folder/rules/code-style.md +23 -0
  7. package/assets/claude-folder/rules/security.md +22 -0
  8. package/assets/claude-folder/rules/testing.md +32 -0
  9. package/assets/claude-folder/settings.local.json +88 -0
  10. package/assets/claude-folder/skills/.gitkeep +0 -0
  11. package/assets/claude-md/docs/container-use.md +140 -0
  12. package/assets/claude-md/docs/github-operations.md +238 -0
  13. package/assets/claude-md/docs/initialization.md +186 -0
  14. package/assets/claude-md/docs/quality-standards.md +15 -0
  15. package/assets/claude-md/docs/spec-kit.md +46 -0
  16. package/assets/claude-md/docs/workers.md +174 -0
  17. package/assets/claude-md/docs/workflow.md +140 -0
  18. package/assets/claude-md/template.md +812 -0
  19. package/assets/docker-compose/docker-compose.yml +52 -0
  20. package/assets/git-hooks/commit-msg.sh +102 -0
  21. package/assets/git-hooks/pre-commit-check.sh +21 -0
  22. package/assets/git-hooks/pre-commit.sh +6 -0
  23. package/assets/git-hooks/pre-push.sh +154 -0
  24. package/assets/git-hooks/security-check.sh +40 -0
  25. package/assets/git-hooks/test-changed.sh +84 -0
  26. package/assets/github-workflows/CODEOWNERS +3 -0
  27. package/assets/github-workflows/boss-ci.yml +40 -0
  28. package/assets/github-workflows/boss-gates.yml +28 -0
  29. package/assets/start-boss-sh/start-boss.sh +471 -0
  30. package/assets/template-docs/api-service-fastify.md +98 -0
  31. package/assets/template-docs/blank.md +91 -0
  32. package/assets/template-docs/nextjs-app-turbo.md +102 -0
  33. package/assets/template-docs/t3-app.md +106 -0
  34. package/assets/template-loader/README.md +28 -0
  35. package/assets/template-loader/eslint.config.node.js +28 -0
  36. package/assets/template-loader/eslint.config.react.js +47 -0
  37. package/assets/template-loader/gitignore +42 -0
  38. package/assets/template-loader/index.test.ts +10 -0
  39. package/assets/template-loader/index.ts +13 -0
  40. package/assets/template-loader/prettierignore +8 -0
  41. package/assets/template-loader/vitest.config.ts +19 -0
  42. package/assets/worker-configs/architect/.claude/commands/.gitkeep +0 -0
  43. package/assets/worker-configs/architect/.claude/skills/.gitkeep +0 -0
  44. package/assets/worker-configs/architect/CLAUDE.md +106 -0
  45. package/assets/worker-configs/clarifier/.claude/commands/.gitkeep +1 -0
  46. package/assets/worker-configs/clarifier/.claude/skills/.gitkeep +1 -0
  47. package/assets/worker-configs/clarifier/CLAUDE.md +112 -0
  48. package/assets/worker-configs/code-reviewer/CLAUDE.md +113 -0
  49. package/assets/worker-configs/consolidator/.claude/commands/.gitkeep +1 -0
  50. package/assets/worker-configs/consolidator/.claude/skills/.gitkeep +1 -0
  51. package/assets/worker-configs/consolidator/CLAUDE.md +114 -0
  52. package/assets/worker-configs/developer-backend/.claude/commands/.gitkeep +1 -0
  53. package/assets/worker-configs/developer-backend/.claude/skills/.gitkeep +1 -0
  54. package/assets/worker-configs/developer-backend/CLAUDE.md +116 -0
  55. package/assets/worker-configs/developer-frontend/.claude/commands/.gitkeep +1 -0
  56. package/assets/worker-configs/developer-frontend/.claude/skills/.gitkeep +1 -0
  57. package/assets/worker-configs/developer-frontend/CLAUDE.md +116 -0
  58. package/assets/worker-configs/developer-fullstack/.claude/commands/.gitkeep +1 -0
  59. package/assets/worker-configs/developer-fullstack/.claude/skills/.gitkeep +1 -0
  60. package/assets/worker-configs/developer-fullstack/CLAUDE.md +116 -0
  61. package/assets/worker-configs/devops-engineer/CLAUDE.md +111 -0
  62. package/assets/worker-configs/planner/.claude/commands/.gitkeep +1 -0
  63. package/assets/worker-configs/planner/.claude/skills/.gitkeep +1 -0
  64. package/assets/worker-configs/planner/CLAUDE.md +111 -0
  65. package/assets/worker-configs/product-owner/CLAUDE.md +108 -0
  66. package/assets/worker-configs/reviewer/.claude/commands/.gitkeep +1 -0
  67. package/assets/worker-configs/reviewer/.claude/skills/.gitkeep +1 -0
  68. package/assets/worker-configs/reviewer/CLAUDE.md +110 -0
  69. package/assets/worker-configs/security-engineer/CLAUDE.md +109 -0
  70. package/assets/worker-configs/spec-writer/.claude/commands/.gitkeep +1 -0
  71. package/assets/worker-configs/spec-writer/.claude/skills/.gitkeep +1 -0
  72. package/assets/worker-configs/spec-writer/CLAUDE.md +110 -0
  73. package/assets/worker-configs/technical-writer/CLAUDE.md +107 -0
  74. package/assets/worker-configs/tester/CLAUDE.md +110 -0
  75. package/dist/assets/claude-folder/agents/.gitkeep +0 -0
  76. package/dist/assets/claude-folder/commands/boss-commands.md +138 -0
  77. package/dist/assets/claude-folder/rules/boss-workflow.md +33 -0
  78. package/dist/assets/claude-folder/rules/code-style.md +23 -0
  79. package/dist/assets/claude-folder/rules/security.md +22 -0
  80. package/dist/assets/claude-folder/rules/testing.md +32 -0
  81. package/dist/assets/claude-folder/settings.local.json +88 -0
  82. package/dist/assets/claude-folder/skills/.gitkeep +0 -0
  83. package/dist/assets/claude-md/docs/container-use.md +140 -0
  84. package/dist/assets/claude-md/docs/github-operations.md +238 -0
  85. package/dist/assets/claude-md/docs/initialization.md +186 -0
  86. package/dist/assets/claude-md/docs/quality-standards.md +15 -0
  87. package/dist/assets/claude-md/docs/spec-kit.md +46 -0
  88. package/dist/assets/claude-md/docs/workers.md +174 -0
  89. package/dist/assets/claude-md/docs/workflow.md +140 -0
  90. package/dist/assets/claude-md/template.md +812 -0
  91. package/dist/assets/docker-compose/docker-compose.yml +52 -0
  92. package/dist/assets/git-hooks/commit-msg.sh +102 -0
  93. package/dist/assets/git-hooks/pre-commit-check.sh +21 -0
  94. package/dist/assets/git-hooks/pre-commit.sh +6 -0
  95. package/dist/assets/git-hooks/pre-push.sh +154 -0
  96. package/dist/assets/git-hooks/security-check.sh +40 -0
  97. package/dist/assets/git-hooks/test-changed.sh +84 -0
  98. package/dist/assets/github-workflows/CODEOWNERS +3 -0
  99. package/dist/assets/github-workflows/boss-ci.yml +40 -0
  100. package/dist/assets/github-workflows/boss-gates.yml +28 -0
  101. package/dist/assets/start-boss-sh/start-boss.sh +471 -0
  102. package/dist/assets/template-docs/api-service-fastify.md +98 -0
  103. package/dist/assets/template-docs/blank.md +91 -0
  104. package/dist/assets/template-docs/nextjs-app-turbo.md +102 -0
  105. package/dist/assets/template-docs/t3-app.md +106 -0
  106. package/dist/assets/template-loader/README.md +28 -0
  107. package/dist/assets/template-loader/eslint.config.node.js +28 -0
  108. package/dist/assets/template-loader/eslint.config.react.js +47 -0
  109. package/dist/assets/template-loader/gitignore +42 -0
  110. package/dist/assets/template-loader/index.test.ts +10 -0
  111. package/dist/assets/template-loader/index.ts +13 -0
  112. package/dist/assets/template-loader/prettierignore +8 -0
  113. package/dist/assets/template-loader/vitest.config.ts +19 -0
  114. package/dist/assets/worker-configs/architect/.claude/commands/.gitkeep +0 -0
  115. package/dist/assets/worker-configs/architect/.claude/skills/.gitkeep +0 -0
  116. package/dist/assets/worker-configs/architect/CLAUDE.md +106 -0
  117. package/dist/assets/worker-configs/clarifier/.claude/commands/.gitkeep +1 -0
  118. package/dist/assets/worker-configs/clarifier/.claude/skills/.gitkeep +1 -0
  119. package/dist/assets/worker-configs/clarifier/CLAUDE.md +112 -0
  120. package/dist/assets/worker-configs/code-reviewer/CLAUDE.md +113 -0
  121. package/dist/assets/worker-configs/consolidator/.claude/commands/.gitkeep +1 -0
  122. package/dist/assets/worker-configs/consolidator/.claude/skills/.gitkeep +1 -0
  123. package/dist/assets/worker-configs/consolidator/CLAUDE.md +114 -0
  124. package/dist/assets/worker-configs/developer-backend/.claude/commands/.gitkeep +1 -0
  125. package/dist/assets/worker-configs/developer-backend/.claude/skills/.gitkeep +1 -0
  126. package/dist/assets/worker-configs/developer-backend/CLAUDE.md +116 -0
  127. package/dist/assets/worker-configs/developer-frontend/.claude/commands/.gitkeep +1 -0
  128. package/dist/assets/worker-configs/developer-frontend/.claude/skills/.gitkeep +1 -0
  129. package/dist/assets/worker-configs/developer-frontend/CLAUDE.md +116 -0
  130. package/dist/assets/worker-configs/developer-fullstack/.claude/commands/.gitkeep +1 -0
  131. package/dist/assets/worker-configs/developer-fullstack/.claude/skills/.gitkeep +1 -0
  132. package/dist/assets/worker-configs/developer-fullstack/CLAUDE.md +116 -0
  133. package/dist/assets/worker-configs/devops-engineer/CLAUDE.md +111 -0
  134. package/dist/assets/worker-configs/planner/.claude/commands/.gitkeep +1 -0
  135. package/dist/assets/worker-configs/planner/.claude/skills/.gitkeep +1 -0
  136. package/dist/assets/worker-configs/planner/CLAUDE.md +111 -0
  137. package/dist/assets/worker-configs/product-owner/CLAUDE.md +108 -0
  138. package/dist/assets/worker-configs/reviewer/.claude/commands/.gitkeep +1 -0
  139. package/dist/assets/worker-configs/reviewer/.claude/skills/.gitkeep +1 -0
  140. package/dist/assets/worker-configs/reviewer/CLAUDE.md +110 -0
  141. package/dist/assets/worker-configs/security-engineer/CLAUDE.md +109 -0
  142. package/dist/assets/worker-configs/spec-writer/.claude/commands/.gitkeep +1 -0
  143. package/dist/assets/worker-configs/spec-writer/.claude/skills/.gitkeep +1 -0
  144. package/dist/assets/worker-configs/spec-writer/CLAUDE.md +110 -0
  145. package/dist/assets/worker-configs/technical-writer/CLAUDE.md +107 -0
  146. package/dist/assets/worker-configs/tester/CLAUDE.md +110 -0
  147. package/dist/commands/__tests__/bootstrap.test.d.ts +2 -0
  148. package/dist/commands/__tests__/bootstrap.test.d.ts.map +1 -0
  149. package/dist/commands/__tests__/bootstrap.test.js +379 -0
  150. package/dist/commands/__tests__/bootstrap.test.js.map +1 -0
  151. package/dist/commands/__tests__/doctor.test.d.ts +2 -0
  152. package/dist/commands/__tests__/doctor.test.d.ts.map +1 -0
  153. package/dist/commands/__tests__/doctor.test.js +13 -0
  154. package/dist/commands/__tests__/doctor.test.js.map +1 -0
  155. package/dist/commands/bootstrap.d.ts +3 -0
  156. package/dist/commands/bootstrap.d.ts.map +1 -0
  157. package/dist/commands/bootstrap.js +390 -0
  158. package/dist/commands/bootstrap.js.map +1 -0
  159. package/dist/commands/doctor.d.ts +2 -0
  160. package/dist/commands/doctor.d.ts.map +1 -0
  161. package/dist/commands/doctor.js +171 -0
  162. package/dist/commands/doctor.js.map +1 -0
  163. package/dist/commands/templates.d.ts +2 -0
  164. package/dist/commands/templates.d.ts.map +1 -0
  165. package/dist/commands/templates.js +12 -0
  166. package/dist/commands/templates.js.map +1 -0
  167. package/dist/constants.d.ts +23 -0
  168. package/dist/constants.d.ts.map +1 -0
  169. package/dist/constants.js +23 -0
  170. package/dist/constants.js.map +1 -0
  171. package/dist/generators/__tests__/boss-config.test.d.ts +2 -0
  172. package/dist/generators/__tests__/boss-config.test.d.ts.map +1 -0
  173. package/dist/generators/__tests__/boss-config.test.js +61 -0
  174. package/dist/generators/__tests__/boss-config.test.js.map +1 -0
  175. package/dist/generators/__tests__/claude-folder.test.d.ts +2 -0
  176. package/dist/generators/__tests__/claude-folder.test.d.ts.map +1 -0
  177. package/dist/generators/__tests__/claude-folder.test.js +128 -0
  178. package/dist/generators/__tests__/claude-folder.test.js.map +1 -0
  179. package/dist/generators/__tests__/claude-md.test.d.ts +2 -0
  180. package/dist/generators/__tests__/claude-md.test.d.ts.map +1 -0
  181. package/dist/generators/__tests__/claude-md.test.js +55 -0
  182. package/dist/generators/__tests__/claude-md.test.js.map +1 -0
  183. package/dist/generators/__tests__/container-use-config.test.d.ts +2 -0
  184. package/dist/generators/__tests__/container-use-config.test.d.ts.map +1 -0
  185. package/dist/generators/__tests__/container-use-config.test.js +80 -0
  186. package/dist/generators/__tests__/container-use-config.test.js.map +1 -0
  187. package/dist/generators/__tests__/docker-compose.test.d.ts +2 -0
  188. package/dist/generators/__tests__/docker-compose.test.d.ts.map +1 -0
  189. package/dist/generators/__tests__/docker-compose.test.js +39 -0
  190. package/dist/generators/__tests__/docker-compose.test.js.map +1 -0
  191. package/dist/generators/__tests__/git-hooks.test.d.ts +2 -0
  192. package/dist/generators/__tests__/git-hooks.test.d.ts.map +1 -0
  193. package/dist/generators/__tests__/git-hooks.test.js +118 -0
  194. package/dist/generators/__tests__/git-hooks.test.js.map +1 -0
  195. package/dist/generators/__tests__/github-workflows.test.d.ts +2 -0
  196. package/dist/generators/__tests__/github-workflows.test.d.ts.map +1 -0
  197. package/dist/generators/__tests__/github-workflows.test.js +86 -0
  198. package/dist/generators/__tests__/github-workflows.test.js.map +1 -0
  199. package/dist/generators/__tests__/mcp-config.test.d.ts +2 -0
  200. package/dist/generators/__tests__/mcp-config.test.d.ts.map +1 -0
  201. package/dist/generators/__tests__/mcp-config.test.js +131 -0
  202. package/dist/generators/__tests__/mcp-config.test.js.map +1 -0
  203. package/dist/generators/__tests__/project-structure.test.d.ts +2 -0
  204. package/dist/generators/__tests__/project-structure.test.d.ts.map +1 -0
  205. package/dist/generators/__tests__/project-structure.test.js +40 -0
  206. package/dist/generators/__tests__/project-structure.test.js.map +1 -0
  207. package/dist/generators/__tests__/quality-gates.test.d.ts +2 -0
  208. package/dist/generators/__tests__/quality-gates.test.d.ts.map +1 -0
  209. package/dist/generators/__tests__/quality-gates.test.js +71 -0
  210. package/dist/generators/__tests__/quality-gates.test.js.map +1 -0
  211. package/dist/generators/__tests__/specify-structure.test.d.ts +2 -0
  212. package/dist/generators/__tests__/specify-structure.test.d.ts.map +1 -0
  213. package/dist/generators/__tests__/specify-structure.test.js +63 -0
  214. package/dist/generators/__tests__/specify-structure.test.js.map +1 -0
  215. package/dist/generators/__tests__/start-boss-sh.test.d.ts +2 -0
  216. package/dist/generators/__tests__/start-boss-sh.test.d.ts.map +1 -0
  217. package/dist/generators/__tests__/start-boss-sh.test.js +36 -0
  218. package/dist/generators/__tests__/start-boss-sh.test.js.map +1 -0
  219. package/dist/generators/__tests__/template-docs.test.d.ts +2 -0
  220. package/dist/generators/__tests__/template-docs.test.d.ts.map +1 -0
  221. package/dist/generators/__tests__/template-docs.test.js +92 -0
  222. package/dist/generators/__tests__/template-docs.test.js.map +1 -0
  223. package/dist/generators/__tests__/template-loader.test.d.ts +2 -0
  224. package/dist/generators/__tests__/template-loader.test.d.ts.map +1 -0
  225. package/dist/generators/__tests__/template-loader.test.js +215 -0
  226. package/dist/generators/__tests__/template-loader.test.js.map +1 -0
  227. package/dist/generators/__tests__/worker-configs.test.d.ts +2 -0
  228. package/dist/generators/__tests__/worker-configs.test.d.ts.map +1 -0
  229. package/dist/generators/__tests__/worker-configs.test.js +122 -0
  230. package/dist/generators/__tests__/worker-configs.test.js.map +1 -0
  231. package/dist/generators/boss-config.d.ts +3 -0
  232. package/dist/generators/boss-config.d.ts.map +1 -0
  233. package/dist/generators/boss-config.js +242 -0
  234. package/dist/generators/boss-config.js.map +1 -0
  235. package/dist/generators/claude-folder.d.ts +3 -0
  236. package/dist/generators/claude-folder.d.ts.map +1 -0
  237. package/dist/generators/claude-folder.js +94 -0
  238. package/dist/generators/claude-folder.js.map +1 -0
  239. package/dist/generators/claude-md.d.ts +3 -0
  240. package/dist/generators/claude-md.d.ts.map +1 -0
  241. package/dist/generators/claude-md.js +64 -0
  242. package/dist/generators/claude-md.js.map +1 -0
  243. package/dist/generators/container-use-config.d.ts +13 -0
  244. package/dist/generators/container-use-config.d.ts.map +1 -0
  245. package/dist/generators/container-use-config.js +60 -0
  246. package/dist/generators/container-use-config.js.map +1 -0
  247. package/dist/generators/docker-compose.d.ts +2 -0
  248. package/dist/generators/docker-compose.d.ts.map +1 -0
  249. package/dist/generators/docker-compose.js +8 -0
  250. package/dist/generators/docker-compose.js.map +1 -0
  251. package/dist/generators/git-hooks.d.ts +3 -0
  252. package/dist/generators/git-hooks.d.ts.map +1 -0
  253. package/dist/generators/git-hooks.js +58 -0
  254. package/dist/generators/git-hooks.js.map +1 -0
  255. package/dist/generators/github-workflows.d.ts +3 -0
  256. package/dist/generators/github-workflows.d.ts.map +1 -0
  257. package/dist/generators/github-workflows.js +27 -0
  258. package/dist/generators/github-workflows.js.map +1 -0
  259. package/dist/generators/mcp-config.d.ts +3 -0
  260. package/dist/generators/mcp-config.d.ts.map +1 -0
  261. package/dist/generators/mcp-config.js +183 -0
  262. package/dist/generators/mcp-config.js.map +1 -0
  263. package/dist/generators/project-structure.d.ts +3 -0
  264. package/dist/generators/project-structure.d.ts.map +1 -0
  265. package/dist/generators/project-structure.js +24 -0
  266. package/dist/generators/project-structure.js.map +1 -0
  267. package/dist/generators/quality-gates.d.ts +3 -0
  268. package/dist/generators/quality-gates.d.ts.map +1 -0
  269. package/dist/generators/quality-gates.js +32 -0
  270. package/dist/generators/quality-gates.js.map +1 -0
  271. package/dist/generators/specify-structure.d.ts +2 -0
  272. package/dist/generators/specify-structure.d.ts.map +1 -0
  273. package/dist/generators/specify-structure.js +43 -0
  274. package/dist/generators/specify-structure.js.map +1 -0
  275. package/dist/generators/start-boss-sh.d.ts +2 -0
  276. package/dist/generators/start-boss-sh.d.ts.map +1 -0
  277. package/dist/generators/start-boss-sh.js +10 -0
  278. package/dist/generators/start-boss-sh.js.map +1 -0
  279. package/dist/generators/template-docs.d.ts +3 -0
  280. package/dist/generators/template-docs.d.ts.map +1 -0
  281. package/dist/generators/template-docs.js +19 -0
  282. package/dist/generators/template-docs.js.map +1 -0
  283. package/dist/generators/template-loader.d.ts +3 -0
  284. package/dist/generators/template-loader.d.ts.map +1 -0
  285. package/dist/generators/template-loader.js +308 -0
  286. package/dist/generators/template-loader.js.map +1 -0
  287. package/dist/generators/worker-configs.d.ts +3 -0
  288. package/dist/generators/worker-configs.d.ts.map +1 -0
  289. package/dist/generators/worker-configs.js +119 -0
  290. package/dist/generators/worker-configs.js.map +1 -0
  291. package/dist/index.d.ts +3 -0
  292. package/dist/index.d.ts.map +1 -0
  293. package/dist/index.js +57 -0
  294. package/dist/index.js.map +1 -0
  295. package/dist/presets/__tests__/quality-presets.test.d.ts +2 -0
  296. package/dist/presets/__tests__/quality-presets.test.d.ts.map +1 -0
  297. package/dist/presets/__tests__/quality-presets.test.js +152 -0
  298. package/dist/presets/__tests__/quality-presets.test.js.map +1 -0
  299. package/dist/presets/quality-presets.d.ts +3 -0
  300. package/dist/presets/quality-presets.d.ts.map +1 -0
  301. package/dist/presets/quality-presets.js +65 -0
  302. package/dist/presets/quality-presets.js.map +1 -0
  303. package/dist/types/index.d.ts +42 -0
  304. package/dist/types/index.d.ts.map +1 -0
  305. package/dist/types/index.js +2 -0
  306. package/dist/types/index.js.map +1 -0
  307. package/dist/utils/__tests__/file-system.test.d.ts +2 -0
  308. package/dist/utils/__tests__/file-system.test.d.ts.map +1 -0
  309. package/dist/utils/__tests__/file-system.test.js +83 -0
  310. package/dist/utils/__tests__/file-system.test.js.map +1 -0
  311. package/dist/utils/__tests__/git.test.d.ts +2 -0
  312. package/dist/utils/__tests__/git.test.d.ts.map +1 -0
  313. package/dist/utils/__tests__/git.test.js +79 -0
  314. package/dist/utils/__tests__/git.test.js.map +1 -0
  315. package/dist/utils/__tests__/template-loader.test.d.ts +2 -0
  316. package/dist/utils/__tests__/template-loader.test.d.ts.map +1 -0
  317. package/dist/utils/__tests__/template-loader.test.js +109 -0
  318. package/dist/utils/__tests__/template-loader.test.js.map +1 -0
  319. package/dist/utils/__tests__/validators.test.d.ts +2 -0
  320. package/dist/utils/__tests__/validators.test.d.ts.map +1 -0
  321. package/dist/utils/__tests__/validators.test.js +118 -0
  322. package/dist/utils/__tests__/validators.test.js.map +1 -0
  323. package/dist/utils/file-system.d.ts +8 -0
  324. package/dist/utils/file-system.d.ts.map +1 -0
  325. package/dist/utils/file-system.js +54 -0
  326. package/dist/utils/file-system.js.map +1 -0
  327. package/dist/utils/git.d.ts +7 -0
  328. package/dist/utils/git.d.ts.map +1 -0
  329. package/dist/utils/git.js +98 -0
  330. package/dist/utils/git.js.map +1 -0
  331. package/dist/utils/logger.d.ts +13 -0
  332. package/dist/utils/logger.d.ts.map +1 -0
  333. package/dist/utils/logger.js +42 -0
  334. package/dist/utils/logger.js.map +1 -0
  335. package/dist/utils/prompts.d.ts +18 -0
  336. package/dist/utils/prompts.d.ts.map +1 -0
  337. package/dist/utils/prompts.js +197 -0
  338. package/dist/utils/prompts.js.map +1 -0
  339. package/dist/utils/template-loader.d.ts +18 -0
  340. package/dist/utils/template-loader.d.ts.map +1 -0
  341. package/dist/utils/template-loader.js +92 -0
  342. package/dist/utils/template-loader.js.map +1 -0
  343. package/dist/utils/validators.d.ts +21 -0
  344. package/dist/utils/validators.d.ts.map +1 -0
  345. package/dist/utils/validators.js +50 -0
  346. package/dist/utils/validators.js.map +1 -0
  347. package/package.json +79 -0
  348. package/templates/spec-kit/README.md +17 -0
  349. package/templates/spec-kit/memory/constitution.md +50 -0
  350. package/templates/spec-kit/scripts/bash/check-prerequisites.sh +166 -0
  351. package/templates/spec-kit/scripts/bash/common.sh +156 -0
  352. package/templates/spec-kit/scripts/bash/create-new-feature.sh +297 -0
  353. package/templates/spec-kit/scripts/bash/setup-plan.sh +61 -0
  354. package/templates/spec-kit/scripts/bash/update-agent-context.sh +799 -0
  355. package/templates/spec-kit/scripts/powershell/check-prerequisites.ps1 +148 -0
  356. package/templates/spec-kit/scripts/powershell/common.ps1 +137 -0
  357. package/templates/spec-kit/scripts/powershell/create-new-feature.ps1 +283 -0
  358. package/templates/spec-kit/scripts/powershell/setup-plan.ps1 +61 -0
  359. package/templates/spec-kit/scripts/powershell/update-agent-context.ps1 +448 -0
  360. package/templates/spec-kit/src/specify_cli/__init__.py +1369 -0
  361. package/templates/spec-kit/templates/agent-file-template.md +28 -0
  362. package/templates/spec-kit/templates/checklist-template.md +40 -0
  363. package/templates/spec-kit/templates/commands/analyze.md +187 -0
  364. package/templates/spec-kit/templates/commands/checklist.md +297 -0
  365. package/templates/spec-kit/templates/commands/clarify.md +184 -0
  366. package/templates/spec-kit/templates/commands/constitution.md +82 -0
  367. package/templates/spec-kit/templates/commands/implement.md +138 -0
  368. package/templates/spec-kit/templates/commands/plan.md +95 -0
  369. package/templates/spec-kit/templates/commands/specify.md +261 -0
  370. package/templates/spec-kit/templates/commands/tasks.md +140 -0
  371. package/templates/spec-kit/templates/commands/taskstoissues.md +33 -0
  372. package/templates/spec-kit/templates/plan-template.md +104 -0
  373. package/templates/spec-kit/templates/spec-template.md +115 -0
  374. package/templates/spec-kit/templates/tasks-template.md +251 -0
  375. package/templates/spec-kit/templates/vscode-settings.json +14 -0
  376. package/templates/t3-app/README.md +41 -0
  377. package/templates/t3-app/base/README.md +29 -0
  378. package/templates/t3-app/base/_gitignore +47 -0
  379. package/templates/t3-app/base/next-env.d.ts +5 -0
  380. package/templates/t3-app/base/next.config.js +22 -0
  381. package/templates/t3-app/base/package.json +26 -0
  382. package/templates/t3-app/base/public/favicon.ico +0 -0
  383. package/templates/t3-app/base/src/env.js +40 -0
  384. package/templates/t3-app/base/src/styles/globals.css +16 -0
  385. package/templates/t3-app/base/tsconfig.json +42 -0
  386. package/templates/t3-app/extras/config/_eslint.base.js +45 -0
  387. package/templates/t3-app/extras/config/_eslint.drizzle.js +58 -0
  388. package/templates/t3-app/extras/config/_prettier.config.js +2 -0
  389. package/templates/t3-app/extras/config/_tailwind.prettier.config.js +4 -0
  390. package/templates/t3-app/extras/config/biome.jsonc +69 -0
  391. package/templates/t3-app/extras/config/drizzle-config-mysql.ts +12 -0
  392. package/templates/t3-app/extras/config/drizzle-config-postgres.ts +12 -0
  393. package/templates/t3-app/extras/config/drizzle-config-sqlite.ts +12 -0
  394. package/templates/t3-app/extras/config/next-config-appdir.js +10 -0
  395. package/templates/t3-app/extras/config/postcss.config.js +5 -0
  396. package/templates/t3-app/extras/pnpm/_npmrc +2 -0
  397. package/templates/t3-app/extras/prisma/schema/base-planetscale.prisma +25 -0
  398. package/templates/t3-app/extras/prisma/schema/base.prisma +21 -0
  399. package/templates/t3-app/extras/prisma/schema/with-auth-planetscale.prisma +79 -0
  400. package/templates/t3-app/extras/prisma/schema/with-auth.prisma +75 -0
  401. package/templates/t3-app/extras/prisma/schema/with-better-auth-planetscale.prisma +90 -0
  402. package/templates/t3-app/extras/prisma/schema/with-better-auth.prisma +89 -0
  403. package/templates/t3-app/extras/src/app/_components/post-tw.tsx +50 -0
  404. package/templates/t3-app/extras/src/app/_components/post.tsx +54 -0
  405. package/templates/t3-app/extras/src/app/api/auth/[...all]/route.ts +5 -0
  406. package/templates/t3-app/extras/src/app/api/auth/[...nextauth]/route.ts +3 -0
  407. package/templates/t3-app/extras/src/app/api/trpc/[trpc]/route.ts +34 -0
  408. package/templates/t3-app/extras/src/app/layout/base.tsx +24 -0
  409. package/templates/t3-app/extras/src/app/layout/with-trpc-tw.tsx +29 -0
  410. package/templates/t3-app/extras/src/app/layout/with-trpc.tsx +28 -0
  411. package/templates/t3-app/extras/src/app/layout/with-tw.tsx +25 -0
  412. package/templates/t3-app/extras/src/app/page/base.tsx +39 -0
  413. package/templates/t3-app/extras/src/app/page/with-auth-trpc-tw.tsx +69 -0
  414. package/templates/t3-app/extras/src/app/page/with-auth-trpc.tsx +70 -0
  415. package/templates/t3-app/extras/src/app/page/with-better-auth-trpc-tw.tsx +105 -0
  416. package/templates/t3-app/extras/src/app/page/with-better-auth-trpc.tsx +103 -0
  417. package/templates/t3-app/extras/src/app/page/with-better-auth-tw.tsx +90 -0
  418. package/templates/t3-app/extras/src/app/page/with-better-auth.tsx +88 -0
  419. package/templates/t3-app/extras/src/app/page/with-trpc-tw.tsx +53 -0
  420. package/templates/t3-app/extras/src/app/page/with-trpc.tsx +54 -0
  421. package/templates/t3-app/extras/src/app/page/with-tw.tsx +37 -0
  422. package/templates/t3-app/extras/src/env/with-auth-db-planetscale.js +58 -0
  423. package/templates/t3-app/extras/src/env/with-auth-db.js +52 -0
  424. package/templates/t3-app/extras/src/env/with-auth.js +51 -0
  425. package/templates/t3-app/extras/src/env/with-better-auth-db-planetscale.js +58 -0
  426. package/templates/t3-app/extras/src/env/with-better-auth-db.js +50 -0
  427. package/templates/t3-app/extras/src/env/with-better-auth.js +49 -0
  428. package/templates/t3-app/extras/src/env/with-db-planetscale.js +50 -0
  429. package/templates/t3-app/extras/src/env/with-db.js +44 -0
  430. package/templates/t3-app/extras/src/index.module.css +177 -0
  431. package/templates/t3-app/extras/src/pages/_app/base.tsx +18 -0
  432. package/templates/t3-app/extras/src/pages/_app/with-auth-trpc-tw.tsx +27 -0
  433. package/templates/t3-app/extras/src/pages/_app/with-auth-trpc.tsx +27 -0
  434. package/templates/t3-app/extras/src/pages/_app/with-auth-tw.tsx +25 -0
  435. package/templates/t3-app/extras/src/pages/_app/with-auth.tsx +25 -0
  436. package/templates/t3-app/extras/src/pages/_app/with-better-auth-trpc-tw.tsx +20 -0
  437. package/templates/t3-app/extras/src/pages/_app/with-better-auth-trpc.tsx +20 -0
  438. package/templates/t3-app/extras/src/pages/_app/with-trpc-tw.tsx +20 -0
  439. package/templates/t3-app/extras/src/pages/_app/with-trpc.tsx +20 -0
  440. package/templates/t3-app/extras/src/pages/_app/with-tw.tsx +18 -0
  441. package/templates/t3-app/extras/src/pages/api/auth/[...all].ts +8 -0
  442. package/templates/t3-app/extras/src/pages/api/trpc/[trpc].ts +19 -0
  443. package/templates/t3-app/extras/src/pages/index/base.tsx +47 -0
  444. package/templates/t3-app/extras/src/pages/index/with-auth-trpc-tw.tsx +81 -0
  445. package/templates/t3-app/extras/src/pages/index/with-auth-trpc.tsx +82 -0
  446. package/templates/t3-app/extras/src/pages/index/with-better-auth-trpc-tw.tsx +99 -0
  447. package/templates/t3-app/extras/src/pages/index/with-better-auth-trpc.tsx +100 -0
  448. package/templates/t3-app/extras/src/pages/index/with-better-auth-tw.tsx +87 -0
  449. package/templates/t3-app/extras/src/pages/index/with-better-auth.tsx +88 -0
  450. package/templates/t3-app/extras/src/pages/index/with-trpc-tw.tsx +52 -0
  451. package/templates/t3-app/extras/src/pages/index/with-trpc.tsx +53 -0
  452. package/templates/t3-app/extras/src/pages/index/with-tw.tsx +45 -0
  453. package/templates/t3-app/extras/src/server/api/root.ts +23 -0
  454. package/templates/t3-app/extras/src/server/api/routers/post/base.ts +40 -0
  455. package/templates/t3-app/extras/src/server/api/routers/post/with-auth-drizzle.ts +39 -0
  456. package/templates/t3-app/extras/src/server/api/routers/post/with-auth-prisma.ts +41 -0
  457. package/templates/t3-app/extras/src/server/api/routers/post/with-auth.ts +37 -0
  458. package/templates/t3-app/extras/src/server/api/routers/post/with-drizzle.ts +30 -0
  459. package/templates/t3-app/extras/src/server/api/routers/post/with-prisma.ts +31 -0
  460. package/templates/t3-app/extras/src/server/api/trpc-app/base.ts +103 -0
  461. package/templates/t3-app/extras/src/server/api/trpc-app/with-auth-db.ts +133 -0
  462. package/templates/t3-app/extras/src/server/api/trpc-app/with-auth.ts +130 -0
  463. package/templates/t3-app/extras/src/server/api/trpc-app/with-better-auth-db.ts +134 -0
  464. package/templates/t3-app/extras/src/server/api/trpc-app/with-better-auth.ts +131 -0
  465. package/templates/t3-app/extras/src/server/api/trpc-app/with-db.ts +106 -0
  466. package/templates/t3-app/extras/src/server/api/trpc-pages/base.ts +122 -0
  467. package/templates/t3-app/extras/src/server/api/trpc-pages/with-auth-db.ts +160 -0
  468. package/templates/t3-app/extras/src/server/api/trpc-pages/with-auth.ts +158 -0
  469. package/templates/t3-app/extras/src/server/api/trpc-pages/with-better-auth-db.ts +168 -0
  470. package/templates/t3-app/extras/src/server/api/trpc-pages/with-better-auth.ts +166 -0
  471. package/templates/t3-app/extras/src/server/api/trpc-pages/with-db.ts +125 -0
  472. package/templates/t3-app/extras/src/server/auth/config/base.ts +52 -0
  473. package/templates/t3-app/extras/src/server/auth/config/with-drizzle.ts +67 -0
  474. package/templates/t3-app/extras/src/server/auth/config/with-prisma.ts +56 -0
  475. package/templates/t3-app/extras/src/server/auth/index.ts +10 -0
  476. package/templates/t3-app/extras/src/server/better-auth/client.ts +5 -0
  477. package/templates/t3-app/extras/src/server/better-auth/config/base.ts +12 -0
  478. package/templates/t3-app/extras/src/server/better-auth/config/with-drizzle.ts +26 -0
  479. package/templates/t3-app/extras/src/server/better-auth/config/with-prisma.ts +26 -0
  480. package/templates/t3-app/extras/src/server/better-auth/index.ts +1 -0
  481. package/templates/t3-app/extras/src/server/better-auth/server.ts +7 -0
  482. package/templates/t3-app/extras/src/server/db/db-prisma-planetscale.ts +19 -0
  483. package/templates/t3-app/extras/src/server/db/db-prisma.ts +16 -0
  484. package/templates/t3-app/extras/src/server/db/index-drizzle/with-mysql.ts +18 -0
  485. package/templates/t3-app/extras/src/server/db/index-drizzle/with-planetscale.ts +7 -0
  486. package/templates/t3-app/extras/src/server/db/index-drizzle/with-postgres.ts +18 -0
  487. package/templates/t3-app/extras/src/server/db/index-drizzle/with-sqlite.ts +19 -0
  488. package/templates/t3-app/extras/src/server/db/schema-drizzle/base-mysql.ts +26 -0
  489. package/templates/t3-app/extras/src/server/db/schema-drizzle/base-planetscale.ts +26 -0
  490. package/templates/t3-app/extras/src/server/db/schema-drizzle/base-postgres.ts +26 -0
  491. package/templates/t3-app/extras/src/server/db/schema-drizzle/base-sqlite.ts +27 -0
  492. package/templates/t3-app/extras/src/server/db/schema-drizzle/with-auth-mysql.ts +111 -0
  493. package/templates/t3-app/extras/src/server/db/schema-drizzle/with-auth-planetscale.ts +100 -0
  494. package/templates/t3-app/extras/src/server/db/schema-drizzle/with-auth-postgres.ts +108 -0
  495. package/templates/t3-app/extras/src/server/db/schema-drizzle/with-auth-sqlite.ts +105 -0
  496. package/templates/t3-app/extras/src/server/db/schema-drizzle/with-better-auth-mysql.ts +106 -0
  497. package/templates/t3-app/extras/src/server/db/schema-drizzle/with-better-auth-planetscale.ts +106 -0
  498. package/templates/t3-app/extras/src/server/db/schema-drizzle/with-better-auth-postgres.ts +105 -0
  499. package/templates/t3-app/extras/src/server/db/schema-drizzle/with-better-auth-sqlite.ts +134 -0
  500. package/templates/t3-app/extras/src/styles/globals.css +6 -0
  501. package/templates/t3-app/extras/src/trpc/query-client.ts +25 -0
  502. package/templates/t3-app/extras/src/trpc/react.tsx +78 -0
  503. package/templates/t3-app/extras/src/trpc/server.ts +30 -0
  504. package/templates/t3-app/extras/src/utils/api.ts +68 -0
  505. package/templates/t3-app/extras/start-database/mysql.sh +86 -0
  506. package/templates/t3-app/extras/start-database/postgres.sh +88 -0
@@ -0,0 +1,242 @@
1
+ import path from 'path';
2
+ import yaml from 'js-yaml';
3
+ import { writeFile } from '../utils/file-system.js';
4
+ import { TEMPLATES, QUALITY_PRESETS } from '../utils/prompts.js';
5
+ export async function generateBossConfig(projectPath, config) {
6
+ const bossConfig = {
7
+ boss: {
8
+ version: '1.0.0',
9
+ template: config.template,
10
+ quality: config.quality
11
+ },
12
+ project: {
13
+ name: config.name,
14
+ type: getProjectType(config.template),
15
+ stack: getStackForTemplate(config.template)
16
+ },
17
+ workers: {
18
+ max_concurrent: 5,
19
+ timeout: 3600
20
+ },
21
+ quality: {
22
+ preset: config.quality,
23
+ gates: {} // Will be populated by quality preset
24
+ }
25
+ };
26
+ const yamlContent = yaml.dump(bossConfig, { indent: 2 });
27
+ await writeFile(path.join(projectPath, '.boss', 'config.yaml'), yamlContent);
28
+ // Generate project-config.json for status tracking
29
+ await generateProjectConfig(projectPath, config);
30
+ }
31
+ async function generateProjectConfig(projectPath, config) {
32
+ const templateInfo = TEMPLATES[config.template];
33
+ const qualityInfo = QUALITY_PRESETS[config.quality];
34
+ const projectType = getProjectType(config.template);
35
+ const stack = getStackForTemplate(config.template);
36
+ const projectConfig = {
37
+ // Project Identity
38
+ project: {
39
+ name: config.name,
40
+ type: projectType,
41
+ template: {
42
+ id: config.template,
43
+ name: templateInfo.name,
44
+ description: templateInfo.description,
45
+ stack: stack
46
+ },
47
+ quality: {
48
+ preset: config.quality,
49
+ name: qualityInfo.name,
50
+ description: qualityInfo.description,
51
+ gates: qualityInfo.gates
52
+ },
53
+ organization: config.githubOrg || null,
54
+ createdAt: new Date().toISOString()
55
+ },
56
+ // Initialization Status
57
+ initialization: {
58
+ stage: 'bootstrap',
59
+ status: 'completed',
60
+ bootstrapComplete: true,
61
+ bootstrapDate: new Date().toISOString(),
62
+ remoteCreated: false,
63
+ initialSetupComplete: false,
64
+ nextSteps: [
65
+ 'Create feature/boss-initial-setup branch (if not already created)',
66
+ 'Check if GitHub remote repository exists',
67
+ 'If no remote exists, ask user for repository preferences (private/public, organization)',
68
+ 'Create GitHub repository using GitHub MCP',
69
+ 'Add remote using Container-Use MCP',
70
+ 'Push initial commit to remote',
71
+ 'Mark initialization.stage as "ready"'
72
+ ],
73
+ operationsRequired: [
74
+ {
75
+ operation: 'create-initial-setup-branch',
76
+ description: 'Create feature/boss-initial-setup branch for BOSS work',
77
+ status: 'pending',
78
+ required: true
79
+ },
80
+ {
81
+ operation: 'check-remote-repository',
82
+ description: 'Check if GitHub remote repository exists',
83
+ status: 'pending',
84
+ required: true
85
+ },
86
+ {
87
+ operation: 'create-github-repository',
88
+ description: 'Create GitHub repository if it does not exist',
89
+ status: 'pending',
90
+ required: false,
91
+ dependsOn: ['check-remote-repository']
92
+ },
93
+ {
94
+ operation: 'add-remote',
95
+ description: 'Add remote using Container-Use MCP',
96
+ status: 'pending',
97
+ required: true,
98
+ dependsOn: ['create-github-repository']
99
+ },
100
+ {
101
+ operation: 'push-initial-commit',
102
+ description: 'Push initial commit to remote',
103
+ status: 'pending',
104
+ required: true,
105
+ dependsOn: ['add-remote']
106
+ }
107
+ ]
108
+ },
109
+ // Repository Information
110
+ repository: {
111
+ remote: null,
112
+ url: null,
113
+ owner: null,
114
+ name: config.name,
115
+ private: null,
116
+ organization: config.githubOrg || null,
117
+ defaultBranch: 'main',
118
+ branches: {
119
+ main: {
120
+ exists: true,
121
+ lastCommit: null
122
+ },
123
+ 'feature/boss-initial-setup': {
124
+ exists: false,
125
+ lastCommit: null
126
+ }
127
+ }
128
+ },
129
+ // Current State
130
+ currentBranch: 'main',
131
+ currentWorkflow: {
132
+ stage: 'initialization',
133
+ phase: 'bootstrap-complete',
134
+ status: 'ready-for-setup'
135
+ },
136
+ // Workflow Tracking
137
+ workflow: {
138
+ stage: 'initialization',
139
+ phase: 'bootstrap-complete',
140
+ activeWorkers: [],
141
+ completedTasks: [],
142
+ pendingTasks: [
143
+ 'Complete initial setup (remote repository)',
144
+ 'Switch to feature/boss-initial-setup branch',
145
+ 'Begin Spec-Kit workflow (Constitution → Clarification → Specification → Planning → Implementation)'
146
+ ]
147
+ },
148
+ // Worker Management
149
+ workers: {
150
+ summaries: [],
151
+ availableWorkers: [
152
+ // Phase-Specific Workers
153
+ 'architect', // Phase 1: Constitution
154
+ 'clarifier', // Phase 2: Clarification
155
+ 'spec-writer', // Phase 3: Specification
156
+ 'planner', // Phase 4: Planning & Phase 6: Task Breakdown
157
+ 'reviewer', // Phase 5: Validation
158
+ 'developer-frontend', // Phase 7: Implementation
159
+ 'developer-backend', // Phase 7: Implementation
160
+ 'developer-fullstack', // Phase 7: Implementation
161
+ 'tester', // Phase 7: Implementation (Testing)
162
+ 'code-reviewer', // Phase 7: Implementation (Code Review)
163
+ 'consolidator', // Phase 8: Consolidation
164
+ // Cross-Phase Workers
165
+ 'product-owner', // Cross-Phase: Business & Requirements
166
+ 'security-engineer', // Cross-Phase: Security
167
+ 'devops-engineer', // Cross-Phase: Infrastructure & Deployment
168
+ 'technical-writer' // Cross-Phase: Documentation
169
+ ],
170
+ maxConcurrent: 5,
171
+ timeout: 3600
172
+ },
173
+ // Quality Gates Configuration
174
+ qualityGates: {
175
+ preset: config.quality,
176
+ requirements: {
177
+ coverage: qualityInfo.gates.coverage ?? null,
178
+ mutation: qualityInfo.gates.mutation ?? null,
179
+ lint: qualityInfo.gates.lint ?? false,
180
+ typecheck: qualityInfo.gates.typecheck ?? false,
181
+ test: qualityInfo.gates.test ?? false,
182
+ security: qualityInfo.gates.security ?? false
183
+ },
184
+ enforcement: {
185
+ testFirst: true,
186
+ bdd: true,
187
+ documentation: true
188
+ }
189
+ },
190
+ // BOSS Configuration
191
+ boss: {
192
+ version: '1.0.0',
193
+ orchestrator: 'claude-code',
194
+ mcpServers: {
195
+ 'container-use': {
196
+ enabled: true,
197
+ purpose: 'Worker management and file operations'
198
+ },
199
+ 'github': {
200
+ enabled: true,
201
+ purpose: 'Repository and PR management'
202
+ },
203
+ 'knowledge-base': {
204
+ enabled: true,
205
+ purpose: 'Context and pattern search'
206
+ }
207
+ },
208
+ restrictions: {
209
+ noGitCLI: true,
210
+ noHostFileSystem: true,
211
+ mcpOnly: true
212
+ }
213
+ },
214
+ // Metadata
215
+ metadata: {
216
+ bootstrapVersion: '1.0.0',
217
+ bootstrapDate: new Date().toISOString(),
218
+ lastUpdated: new Date().toISOString(),
219
+ notes: 'Project bootstrapped successfully. Ready for initial setup.'
220
+ }
221
+ };
222
+ await writeFile(path.join(projectPath, '.boss', 'project-config.json'), JSON.stringify(projectConfig, null, 2));
223
+ }
224
+ function getProjectType(template) {
225
+ if (template === 'nextjs-app-turbo')
226
+ return 'web-app';
227
+ if (template === 't3-app')
228
+ return 'web-app';
229
+ if (template === 'api-service-fastify')
230
+ return 'api-service';
231
+ return 'library';
232
+ }
233
+ function getStackForTemplate(template) {
234
+ const stacks = {
235
+ 'nextjs-app-turbo': ['nextjs', 'typescript', 'tailwind', 'prisma', 'vitest', 'shadcn-ui'],
236
+ 'api-service-fastify': ['fastify', 'typescript', 'prisma', 'vitest'],
237
+ 't3-app': ['nextjs', 'typescript', 'tailwind', 'prisma', 'trpc', 'nextauth'],
238
+ 'blank': ['typescript', 'vitest']
239
+ };
240
+ return stacks[template] || [];
241
+ }
242
+ //# sourceMappingURL=boss-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"boss-config.js","sourceRoot":"","sources":["../../src/generators/boss-config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { ProjectConfig } from '../types/index.js';
2
+ export declare function generateClaudeFolder(projectPath: string, config: ProjectConfig): Promise<void>;
3
+ //# sourceMappingURL=claude-folder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude-folder.d.ts","sourceRoot":"","sources":["../../src/generators/claude-folder.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD,wBAAsB,oBAAoB,CACxC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,IAAI,CAAC,CAIf"}
@@ -0,0 +1,94 @@
1
+ import path from 'path';
2
+ import { execa } from 'execa';
3
+ import { writeFile, ensureDirectory } from '../utils/file-system.js';
4
+ import { loadTemplate } from '../utils/template-loader.js';
5
+ export async function generateClaudeFolder(projectPath, config) {
6
+ // Detect which IDE is available and only generate that folder
7
+ const ideFolder = await detectIDE();
8
+ await generateIDEFolder(projectPath, ideFolder);
9
+ }
10
+ async function detectIDE() {
11
+ const os = await import('os');
12
+ const fs = await import('fs-extra');
13
+ // Use process.env.HOME if available (for testing), otherwise fall back to os.homedir()
14
+ const homeDir = process.env.HOME || os.homedir();
15
+ // Check for Claude Code config directory first (default/preferred)
16
+ const claudeCodeDir = path.join(homeDir, '.config', 'claude-code');
17
+ if (await fs.pathExists(claudeCodeDir)) {
18
+ return '.claude';
19
+ }
20
+ // Check for Cursor config directory
21
+ const cursorDir = path.join(homeDir, '.cursor');
22
+ if (await fs.pathExists(cursorDir)) {
23
+ return '.cursor';
24
+ }
25
+ // Check for CLI commands as fallback
26
+ try {
27
+ await execa('claude', ['--version'], { reject: false });
28
+ return '.claude';
29
+ }
30
+ catch {
31
+ try {
32
+ await execa('cursor', ['--version'], { reject: false });
33
+ return '.cursor';
34
+ }
35
+ catch {
36
+ // Neither detected, default to Claude Code
37
+ return '.claude';
38
+ }
39
+ }
40
+ }
41
+ async function generateIDEFolder(projectPath, folderName) {
42
+ const idePath = path.join(projectPath, folderName);
43
+ // Create directory structure
44
+ await ensureDirectory(path.join(idePath, 'rules'));
45
+ await ensureDirectory(path.join(idePath, 'commands'));
46
+ await ensureDirectory(path.join(idePath, 'agents'));
47
+ await ensureDirectory(path.join(idePath, 'skills'));
48
+ // Generate rule files
49
+ await generateCodeStyleRule(idePath);
50
+ await generateTestingRule(idePath);
51
+ await generateSecurityRule(idePath);
52
+ await generateBossWorkflowRule(idePath);
53
+ // Generate commands file
54
+ await generateBossCommands(idePath);
55
+ // Generate settings.json (optional)
56
+ await generateSettings(idePath);
57
+ // Generate settings.local.json for auto-approving common commands
58
+ await generateSettingsLocal(idePath);
59
+ }
60
+ async function generateCodeStyleRule(claudePath) {
61
+ const content = await loadTemplate('claude-folder/rules/code-style.md');
62
+ await writeFile(path.join(claudePath, 'rules', 'code-style.md'), content);
63
+ }
64
+ async function generateTestingRule(claudePath) {
65
+ const content = await loadTemplate('claude-folder/rules/testing.md');
66
+ await writeFile(path.join(claudePath, 'rules', 'testing.md'), content);
67
+ }
68
+ async function generateSecurityRule(claudePath) {
69
+ const content = await loadTemplate('claude-folder/rules/security.md');
70
+ await writeFile(path.join(claudePath, 'rules', 'security.md'), content);
71
+ }
72
+ async function generateBossWorkflowRule(claudePath) {
73
+ const content = await loadTemplate('claude-folder/rules/boss-workflow.md');
74
+ await writeFile(path.join(claudePath, 'rules', 'boss-workflow.md'), content);
75
+ }
76
+ async function generateBossCommands(claudePath) {
77
+ const content = await loadTemplate('claude-folder/commands/boss-commands.md');
78
+ await writeFile(path.join(claudePath, 'commands', 'boss-commands.md'), content);
79
+ }
80
+ async function generateSettings(claudePath) {
81
+ const settings = {
82
+ "spec-kit": {
83
+ "enabled": true,
84
+ "path": ".specify"
85
+ }
86
+ };
87
+ await writeFile(path.join(claudePath, 'settings.json'), JSON.stringify(settings, null, 2));
88
+ }
89
+ async function generateSettingsLocal(claudePath) {
90
+ // Load settings.local.json template
91
+ const content = await loadTemplate('claude-folder/settings.local.json');
92
+ await writeFile(path.join(claudePath, 'settings.local.json'), content);
93
+ }
94
+ //# sourceMappingURL=claude-folder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude-folder.js","sourceRoot":"","sources":["../../src/generators/claude-folder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { ProjectConfig } from '../types/index.js';
2
+ export declare function generateClaudeMD(projectPath: string, config: ProjectConfig): Promise<void>;
3
+ //# sourceMappingURL=claude-md.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude-md.d.ts","sourceRoot":"","sources":["../../src/generators/claude-md.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAKvD,wBAAsB,gBAAgB,CACpC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,IAAI,CAAC,CA6Bf"}
@@ -0,0 +1,64 @@
1
+ import path from 'path';
2
+ import { fileURLToPath } from 'url';
3
+ import { dirname } from 'path';
4
+ import { writeFile, copyDirectory } from '../utils/file-system.js';
5
+ import { loadTemplate } from '../utils/template-loader.js';
6
+ const __filename = fileURLToPath(import.meta.url);
7
+ const __dirname = dirname(__filename);
8
+ export async function generateClaudeMD(projectPath, config) {
9
+ const templateInfo = getTemplateInfo(config.template);
10
+ const qualityInfo = getQualityInfo(config.quality);
11
+ const content = await loadTemplate('claude-md/template.md', {
12
+ config,
13
+ templateInfo: {
14
+ name: templateInfo.name,
15
+ stack: templateInfo.stack.join(', ')
16
+ },
17
+ qualityInfo: {
18
+ name: qualityInfo.name,
19
+ gates: {
20
+ coverage: qualityInfo.gates.coverage || 80,
21
+ mutation: qualityInfo.gates.mutation || 80
22
+ }
23
+ }
24
+ });
25
+ await writeFile(path.join(projectPath, 'CLAUDE.md'), content);
26
+ // Copy docs folder from assets to project root
27
+ const assetsDocsPath = path.join(__dirname, '../../assets/claude-md/docs');
28
+ const projectDocsPath = path.join(projectPath, 'docs');
29
+ const { pathExists } = await import('../utils/file-system.js');
30
+ const docsExists = await pathExists(assetsDocsPath);
31
+ if (docsExists) {
32
+ await copyDirectory(assetsDocsPath, projectDocsPath);
33
+ }
34
+ }
35
+ function getTemplateInfo(template) {
36
+ const templates = {
37
+ 'nextjs-app-turbo': {
38
+ name: 'Next.js App (Turbo)',
39
+ stack: ['Next.js 15', 'TypeScript', 'Tailwind', 'Prisma', 'Vitest', 'shadcn/ui']
40
+ },
41
+ 'api-service-fastify': {
42
+ name: 'API Service (Fastify)',
43
+ stack: ['Fastify', 'TypeScript', 'Prisma', 'Vitest']
44
+ },
45
+ 't3-app': {
46
+ name: 'T3 App',
47
+ stack: ['Next.js', 'TypeScript', 'Tailwind', 'Prisma', 'tRPC', 'NextAuth.js']
48
+ },
49
+ 'blank': {
50
+ name: 'Blank',
51
+ stack: ['TypeScript', 'Vitest']
52
+ }
53
+ };
54
+ return templates[template] || { name: template, stack: [] };
55
+ }
56
+ function getQualityInfo(quality) {
57
+ const qualities = {
58
+ 'startup': { name: 'Startup', gates: { coverage: 60 } },
59
+ 'production': { name: 'Production', gates: { coverage: 80, mutation: 80 } },
60
+ 'enterprise': { name: 'Enterprise', gates: { coverage: 90, mutation: 80 } }
61
+ };
62
+ return qualities[quality] || { name: quality, gates: {} };
63
+ }
64
+ //# sourceMappingURL=claude-md.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude-md.js","sourceRoot":"","sources":["../../src/generators/claude-md.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Generate container-use configuration for BOSS projects
3
+ *
4
+ * Uses the pre-built boss/worker-base Docker image which includes:
5
+ * - Node.js 22 (LTS)
6
+ * - System dependencies (git, curl, build-essential)
7
+ * - pnpm (package manager)
8
+ * - claude-code (Anthropic CLI)
9
+ *
10
+ * This eliminates 60-90s of setup time per worker spawn.
11
+ */
12
+ export declare function generateContainerUseConfig(projectPath: string): Promise<void>;
13
+ //# sourceMappingURL=container-use-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"container-use-config.d.ts","sourceRoot":"","sources":["../../src/generators/container-use-config.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;GAUG;AACH,wBAAsB,0BAA0B,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA2DnF"}
@@ -0,0 +1,60 @@
1
+ import path from 'path';
2
+ import { writeFile } from '../utils/file-system.js';
3
+ import { DOCKER_IMAGE_FULL, BOSS_VERSION } from '../constants.js';
4
+ /**
5
+ * Generate container-use configuration for BOSS projects
6
+ *
7
+ * Uses the pre-built boss/worker-base Docker image which includes:
8
+ * - Node.js 22 (LTS)
9
+ * - System dependencies (git, curl, build-essential)
10
+ * - pnpm (package manager)
11
+ * - claude-code (Anthropic CLI)
12
+ *
13
+ * This eliminates 60-90s of setup time per worker spawn.
14
+ */
15
+ export async function generateContainerUseConfig(projectPath) {
16
+ const config = {
17
+ // Use pre-built BOSS worker base image (Phase 1 optimization)
18
+ // This includes all system dependencies and global npm packages
19
+ base_image: DOCKER_IMAGE_FULL,
20
+ // Setup commands run AFTER pulling image, BEFORE copying code
21
+ // Empty because all system setup is in the base image
22
+ setup_commands: [],
23
+ // Install commands run AFTER copying project code
24
+ // Only include project-specific dependencies
25
+ install_commands: [
26
+ 'pnpm install --frozen-lockfile'
27
+ ],
28
+ // Environment variables for all BOSS workers
29
+ environment_variables: {
30
+ // BOSS-specific
31
+ IS_SANDBOX: '1',
32
+ BOSS_VERSION,
33
+ // Spec-Kit configuration
34
+ SPEC_KIT_MODE: 'true',
35
+ SPEC_KIT_PATH: '.specify',
36
+ // Node.js environment
37
+ NODE_ENV: 'production',
38
+ // CI flag for automation detection
39
+ CI: 'true',
40
+ // PATH with Spec-Kit scripts
41
+ PATH: '/usr/local/bin:/usr/bin:/bin:$PWD/.specify/scripts'
42
+ },
43
+ // Secrets managed via container-use CLI or 1Password
44
+ secrets: [],
45
+ // Network access - default hosts for BOSS workers
46
+ network: {
47
+ allowed_hosts: [
48
+ // Anthropic API
49
+ 'api.anthropic.com',
50
+ 'claude.ai',
51
+ // Package registries
52
+ 'registry.npmjs.org',
53
+ // Version control
54
+ 'github.com'
55
+ ]
56
+ }
57
+ };
58
+ await writeFile(path.join(projectPath, '.container-use', 'environment.json'), JSON.stringify(config, null, 2));
59
+ }
60
+ //# sourceMappingURL=container-use-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"container-use-config.js","sourceRoot":"","sources":["../../src/generators/container-use-config.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAElE;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAAC,WAAmB;IAClE,MAAM,MAAM,GAAG;QACb,8DAA8D;QAC9D,gEAAgE;QAChE,UAAU,EAAE,iBAAiB;QAE7B,8DAA8D;QAC9D,sDAAsD;QACtD,cAAc,EAAE,EAAE;QAElB,kDAAkD;QAClD,6CAA6C;QAC7C,gBAAgB,EAAE;YAChB,gCAAgC;SACjC;QAED,6CAA6C;QAC7C,qBAAqB,EAAE;YACrB,gBAAgB;YAChB,UAAU,EAAE,GAAG;YACf,YAAY;YAEZ,yBAAyB;YACzB,aAAa,EAAE,MAAM;YACrB,aAAa,EAAE,UAAU;YAEzB,sBAAsB;YACtB,QAAQ,EAAE,YAAY;YAEtB,mCAAmC;YACnC,EAAE,EAAE,MAAM;YAEV,6BAA6B;YAC7B,IAAI,EAAE,oDAAoD;SAC3D;QAED,qDAAqD;QACrD,OAAO,EAAE,EAAE;QAEX,kDAAkD;QAClD,OAAO,EAAE;YACP,aAAa,EAAE;gBACb,gBAAgB;gBAChB,mBAAmB;gBACnB,WAAW;gBAEX,qBAAqB;gBACrB,oBAAoB;gBAEpB,kBAAkB;gBAClB,YAAY;aACb;SACF;KACF,CAAC;IAEF,MAAM,SAAS,CACb,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,gBAAgB,EAAE,kBAAkB,CAAC,EAC5D,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAChC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function generateDockerCompose(projectPath: string): Promise<void>;
2
+ //# sourceMappingURL=docker-compose.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docker-compose.d.ts","sourceRoot":"","sources":["../../src/generators/docker-compose.ts"],"names":[],"mappings":"AAIA,wBAAsB,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAM9E"}
@@ -0,0 +1,8 @@
1
+ import path from 'path';
2
+ import { writeFile } from '../utils/file-system.js';
3
+ import { loadTemplate } from '../utils/template-loader.js';
4
+ export async function generateDockerCompose(projectPath) {
5
+ const dockerCompose = await loadTemplate('docker-compose/docker-compose.yml');
6
+ await writeFile(path.join(projectPath, 'docker-compose.yml'), dockerCompose);
7
+ }
8
+ //# sourceMappingURL=docker-compose.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docker-compose.js","sourceRoot":"","sources":["../../src/generators/docker-compose.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAE3D,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,WAAmB;IAC7D,MAAM,aAAa,GAAG,MAAM,YAAY,CAAC,mCAAmC,CAAC,CAAC;IAC9E,MAAM,SAAS,CACb,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,oBAAoB,CAAC,EAC5C,aAAa,CACd,CAAC;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { QualityPreset } from '../types/index.js';
2
+ export declare function generateGitHooks(projectPath: string, quality: QualityPreset): Promise<void>;
3
+ //# sourceMappingURL=git-hooks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git-hooks.d.ts","sourceRoot":"","sources":["../../src/generators/git-hooks.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD,wBAAsB,gBAAgB,CACpC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,IAAI,CAAC,CAwBf"}
@@ -0,0 +1,58 @@
1
+ import path from 'path';
2
+ import { writeFile, makeExecutable, ensureDirectory } from '../utils/file-system.js';
3
+ import { loadTemplate } from '../utils/template-loader.js';
4
+ export async function generateGitHooks(projectPath, quality) {
5
+ await ensureDirectory(path.join(projectPath, '.husky'));
6
+ await ensureDirectory(path.join(projectPath, 'scripts'));
7
+ // Generate pre-commit check script
8
+ await generatePreCommitCheckScript(projectPath);
9
+ // Generate test changed files script
10
+ await generateTestChangedScript(projectPath);
11
+ // Generate pre-commit hook
12
+ await generatePreCommitHook(projectPath, quality);
13
+ // Generate commit-msg hook
14
+ await generateCommitMsgHook(projectPath, quality);
15
+ // Generate pre-push hook
16
+ await generatePrePushHook(projectPath);
17
+ // Generate security check script
18
+ await generateSecurityCheckScript(projectPath);
19
+ // Note: Husky initialization happens after package.json is created (in bootstrap.ts)
20
+ // This ensures package.json with husky dependency exists before initialization
21
+ }
22
+ async function generatePreCommitCheckScript(projectPath) {
23
+ const script = await loadTemplate('git-hooks/pre-commit-check.sh');
24
+ const scriptPath = path.join(projectPath, 'scripts', 'pre-commit-check.sh');
25
+ await writeFile(scriptPath, script);
26
+ await makeExecutable(scriptPath);
27
+ }
28
+ async function generateTestChangedScript(projectPath) {
29
+ const script = await loadTemplate('git-hooks/test-changed.sh');
30
+ const scriptPath = path.join(projectPath, 'scripts', 'test-changed.sh');
31
+ await writeFile(scriptPath, script);
32
+ await makeExecutable(scriptPath);
33
+ }
34
+ async function generatePreCommitHook(projectPath, quality) {
35
+ const hook = await loadTemplate('git-hooks/pre-commit.sh');
36
+ const hookPath = path.join(projectPath, '.husky', 'pre-commit');
37
+ await writeFile(hookPath, hook);
38
+ await makeExecutable(hookPath);
39
+ }
40
+ async function generateCommitMsgHook(projectPath, quality) {
41
+ const hook = await loadTemplate('git-hooks/commit-msg.sh');
42
+ const hookPath = path.join(projectPath, '.husky', 'commit-msg');
43
+ await writeFile(hookPath, hook);
44
+ await makeExecutable(hookPath);
45
+ }
46
+ async function generatePrePushHook(projectPath) {
47
+ const hook = await loadTemplate('git-hooks/pre-push.sh');
48
+ const hookPath = path.join(projectPath, '.husky', 'pre-push');
49
+ await writeFile(hookPath, hook);
50
+ await makeExecutable(hookPath);
51
+ }
52
+ async function generateSecurityCheckScript(projectPath) {
53
+ const script = await loadTemplate('git-hooks/security-check.sh');
54
+ const scriptPath = path.join(projectPath, 'scripts', 'security-check.sh');
55
+ await writeFile(scriptPath, script);
56
+ await makeExecutable(scriptPath);
57
+ }
58
+ //# sourceMappingURL=git-hooks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git-hooks.js","sourceRoot":"","sources":["../../src/generators/git-hooks.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { ProjectConfig } from '../types/index.js';
2
+ export declare function generateGitHubWorkflows(projectPath: string, config: ProjectConfig): Promise<void>;
3
+ //# sourceMappingURL=github-workflows.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"github-workflows.d.ts","sourceRoot":"","sources":["../../src/generators/github-workflows.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD,wBAAsB,uBAAuB,CAC3C,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,IAAI,CAAC,CAWf"}