@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
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 glxmart
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,134 @@
1
+ # BOSS Bootstrap CLI
2
+
3
+ Command-line tool for scaffolding new BOSS projects with complete configuration.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ pnpm add -g @glxmart/boss-cli
9
+ ```
10
+
11
+ ## Usage
12
+
13
+ ### Interactive Mode
14
+
15
+ ```bash
16
+ boss bootstrap
17
+ ```
18
+
19
+ ### Command Line Options
20
+
21
+ ```bash
22
+ boss bootstrap --template nextjs-app-turbo --quality production --name my-project
23
+ ```
24
+
25
+ ### Available Commands
26
+
27
+ - `boss bootstrap` - Bootstrap a new BOSS project
28
+ - `boss doctor` - Check prerequisites and system health
29
+ - `boss templates` - List available templates
30
+
31
+ ## Templates
32
+
33
+ - `nextjs-app-turbo` - Next.js 15 + Turbo + Tailwind + Prisma + Vitest + shadcn/ui
34
+ - `api-service-fastify` - Fastify + TypeScript + Prisma + Vitest
35
+ - `blank` - Minimal TypeScript + Vitest setup
36
+
37
+ ## Quality Presets
38
+
39
+ - `startup` - Fast iteration, minimal gates
40
+ - `production` - Balanced quality & speed
41
+ - `enterprise` - Maximum quality, comprehensive checks
42
+
43
+ ## What Gets Created
44
+
45
+ - `.boss/` - BOSS orchestration configuration
46
+ - `.specify/` - Spec-Kit structure (templates, scripts, memory)
47
+ - `.container-use/` - Container-use environment configuration
48
+ - `.claude/` - Claude Code/Cursor rules and commands
49
+ - `CLAUDE.md` - Primary Claude Code configuration
50
+ - `start-boss.sh` - Launch script with MCP restrictions
51
+ - `.github/workflows/` - CI/CD pipelines
52
+ - `.husky/` - Git hooks
53
+ - `docker-compose.yml` - Local infrastructure
54
+ - Template-specific code structure
55
+
56
+ ## Development
57
+
58
+ ```bash
59
+ # Install dependencies
60
+ pnpm install
61
+
62
+ # Build
63
+ pnpm build
64
+
65
+ # Run in development
66
+ pnpm dev
67
+
68
+ # Run tests
69
+ pnpm test
70
+ ```
71
+
72
+ ## Local Testing
73
+
74
+ ### Easiest Way: Integration Tests
75
+
76
+ The easiest way to test the CLI locally is using the existing integration tests:
77
+
78
+ ```bash
79
+ # Run all integration tests
80
+ pnpm test:integration
81
+
82
+ # This will automatically:
83
+ # - Build the CLI
84
+ # - Create test projects
85
+ # - Verify the structure
86
+ # - Clean up afterwards
87
+ ```
88
+
89
+ ### Automated Testing Script
90
+
91
+ For manual testing with more control, use the `test-local.sh` script. Test projects are created in your home directory by default:
92
+
93
+ ```bash
94
+ # Basic test (builds, creates test project in $HOME, verifies)
95
+ pnpm test:local
96
+ # or
97
+ ./test-local.sh
98
+
99
+ # Test with specific template and quality
100
+ pnpm test:local -- --template nextjs-app-turbo --quality production
101
+
102
+ # Create test project in a different directory
103
+ pnpm test:local -- --dir ~/test-projects
104
+
105
+ # Link CLI globally and test
106
+ pnpm test:local -- --link
107
+
108
+ # Verify existing test project
109
+ pnpm test:local -- --verify-only
110
+
111
+ # Clean up test project
112
+ pnpm test:local -- --cleanup-only
113
+ ```
114
+
115
+ See `pnpm test:local -- --help` or `./test-local.sh --help` for all options.
116
+
117
+ ### Manual Testing
118
+
119
+ For manual testing without the script:
120
+
121
+ ```bash
122
+ # Build the CLI
123
+ pnpm install && pnpm build
124
+
125
+ # Link globally (optional)
126
+ pnpm link --global
127
+
128
+ # Create a test project
129
+ boss bootstrap --template blank --quality startup --name test-project --non-interactive
130
+
131
+ # Or use tsx directly (no build needed)
132
+ pnpm exec tsx src/index.ts bootstrap --template blank --quality startup --name test-project --non-interactive
133
+ ```
134
+
File without changes
@@ -0,0 +1,138 @@
1
+ # BOSS Commands
2
+
3
+ ## Available Commands
4
+
5
+ ### Container-Use Commands
6
+
7
+ - \`container-use log <env_id>\` - View worker logs
8
+ - \`container-use checkout <env_id>\` - Checkout worker branch
9
+ - \`container-use diff <env_id>\` - View code changes
10
+ - \`container-use merge <env_id>\` - Merge worker branch
11
+
12
+ ### Spec-Kit Commands
13
+
14
+ - \`bash .specify/scripts/speckit.plan.sh\` - Generate plan
15
+ - \`bash .specify/scripts/speckit.tasks.sh\` - Generate tasks
16
+ - \`bash .specify/scripts/speckit.implement.sh\` - Implement features
17
+
18
+ ### BOSS Commands
19
+
20
+ - \`./start-boss.sh\` - Start BOSS with MCP restrictions
21
+
22
+ ### Initial Setup Command
23
+
24
+ **Command:** `boss-initial-setup`
25
+
26
+ **Purpose:** Complete the initial project setup after bootstrap.
27
+
28
+ **When to Run:**
29
+ - After bootstrap completes
30
+ - When `initialization.stage` in `.boss/project-config.json` is `"bootstrap"` or `"remote-setup"`
31
+
32
+ **What It Does:**
33
+ 1. Checks `.boss/project-config.json` for current initialization status
34
+ 2. Verifies if remote repository exists
35
+ 3. If no remote exists:
36
+ - Asks user:
37
+ - Should repository be **private** or **public**? (default: private)
38
+ - Should it be created in an **organization**? (if yes, which org?)
39
+ - Repository name (if different from project name)
40
+ - Creates GitHub repository using GitHub MCP
41
+ - Adds remote using Container-Use MCP (NOT git CLI)
42
+ - Pushes initial commit to remote
43
+ - Updates `.boss/project-config.json` with remote information
44
+ 4. Marks `initialization.stage = "ready"` in project-config.json
45
+ 5. Updates project status to indicate setup is complete
46
+
47
+ **How to Execute:**
48
+ - BOSS can run this command directly when user asks to complete setup
49
+ - Or BOSS can spawn an initial-setup worker using Container-Use MCP
50
+ - Worker should follow the checklist in its prompt.md
51
+
52
+ **Checklist for Initial Setup:**
53
+ - [ ] Read `.boss/project-config.json` to check current status
54
+ - [ ] **Verify:** Main branch is EMPTY (only empty commit) - bootstrap files are NOT on main
55
+ - [ ] **Verify:** Feature branch `feature/boss-initial-setup` exists with ALL bootstrap files (created during bootstrap)
56
+ - [ ] Confirm you are on `feature/boss-initial-setup` branch (created during bootstrap)
57
+ - [ ] Check if remote repository exists (read project-config.json, NOT git)
58
+ - [ ] If no remote:
59
+ - [ ] Ask user for repository preferences (private/public, org)
60
+ - [ ] Create GitHub repository using GitHub MCP (will create under personal account)
61
+ - [ ] If organization was requested:
62
+ - [ ] Ask user: "Repository created under your personal account. Would you like me to transfer it to [org-name] now?"
63
+ - [ ] If user confirms:
64
+ - [ ] Transfer repository using GitHub API: `POST /repos/{owner}/{repo}/transfer` with `{"new_owner": "org-name"}`
65
+ - [ ] Wait for transfer to complete
66
+ - [ ] Update git remote URL to reflect new owner using Container-Use MCP
67
+ - [ ] **CRITICAL: Lock main branch and require PRs** - Use GitHub API to set branch protection:
68
+ - [ ] Make HTTP PUT request to: `https://api.github.com/repos/{owner}/{repo}/branches/main/protection`
69
+ - [ ] Headers: `Authorization: Bearer {GITHUB_PERSONAL_ACCESS_TOKEN}`, `Accept: application/vnd.github.v3+json` (use GITHUB_PERSONAL_ACCESS_TOKEN, not GITHUB_TOKEN, for API calls)
70
+ - [ ] Body (JSON):
71
+ ```json
72
+ {
73
+ "required_pull_request_reviews": {
74
+ "required": true,
75
+ "dismiss_stale_reviews": true,
76
+ "require_code_owner_reviews": false,
77
+ "required_approving_review_count": 1
78
+ },
79
+ "enforce_admins": true,
80
+ "required_status_checks": {
81
+ "strict": true,
82
+ "contexts": []
83
+ },
84
+ "restrictions": null,
85
+ "allow_force_pushes": false,
86
+ "allow_deletions": false,
87
+ "required_linear_history": false,
88
+ "allow_squash_merge": true,
89
+ "allow_merge_commit": true,
90
+ "allow_rebase_merge": true
91
+ }
92
+ ```
93
+ - [ ] Verify protection was set: Check response status is 200
94
+ - [ ] **DO NOT skip this step** - branch protection is mandatory
95
+ - [ ] **CRITICAL ORDER - Follow EXACTLY:**
96
+ 1. **Add remote using HTTPS:** `git remote add origin https://github.com/<owner>/<repo>.git` (ALWAYS use HTTPS, NEVER SSH `git@github.com` format)
97
+ 2. **If transferred, update remote:** `git remote set-url origin https://github.com/<new-owner>/<repo>.git` (use HTTPS format)
98
+ 3. **Check current branch:** `git branch --show-current` - verify you're on the correct branch
99
+ 4. **Handle uncommitted changes:** If on `feature/boss-initial-setup` with uncommitted changes, commit them first: `git add . && git commit -m "chore: bootstrap files"` (these should be on feature branch)
100
+ 5. **Switch to main branch:** `git checkout main` (if uncommitted changes prevent checkout, commit them to current branch first, then switch)
101
+ 6. **FIRST push empty main branch:** `git push -u origin main` (main is EMPTY - only empty commit, no validation needed, MUST be pushed first, git will use GITHUB_TOKEN from environment automatically, which is set to same value as GITHUB_PERSONAL_ACCESS_TOKEN)
102
+ - **NOTE:** The pre-push hook allows empty main push without validation checks
103
+ - **Main branch must be pushed first (empty) before feature branch**
104
+ 7. **Switch back to feature branch:** `git checkout feature/boss-initial-setup` (branch should already exist from bootstrap)
105
+ 8. **Verify validation checks pass BEFORE pushing feature branch:**
106
+ - **BEFORE pushing feature branch, verify all checks pass:**
107
+ 1. **Typecheck:** Run `pnpm typecheck` (or `npm run typecheck`) - must pass
108
+ 2. **Lint:** Run `pnpm lint` (or `npm run lint`) - must pass
109
+ 3. **Security:** Run `bash scripts/security-check.sh` - must pass
110
+ 4. **Tests:** Run `pnpm test:unit` (or `npm run test:unit`) - must pass
111
+ - **If any check fails, fix the issues before pushing**
112
+ 9. **THEN push feature branch:** `git push -u origin feature/boss-initial-setup` (contains all bootstrap files, git will use GITHUB_TOKEN from environment automatically, which is set to same value as GITHUB_PERSONAL_ACCESS_TOKEN)
113
+ 10. **Update project-config.json** with repository info (including final owner after transfer)
114
+ 11. **Commit and push project-config.json:** `git add .boss/project-config.json && git commit -m "chore: update project-config.json" && git push`
115
+ 12. **Mark `initialization.stage = "ready"`** in project-config.json
116
+ 13. **Update `initialization.remoteCreated = true`** and `initialization.initialSetupComplete = true`
117
+ 14. **Commit and push again:** `git add .boss/project-config.json && git commit -m "chore: mark initialization as ready" && git push`
118
+ 15. **FINAL STEP - Create PR from feature/boss-initial-setup to main:** Use GitHub MCP `create_pull_request` with:
119
+ - **Title:** `"chore: BOSS initial setup - bootstrap files"`
120
+ - **Body:** `"This PR contains all BOSS bootstrap files and initial project structure. Ready for review and merge."`
121
+ - **Base branch:** `"main"`
122
+ - **Head branch:** `"feature/boss-initial-setup"`
123
+ - **DO NOT ask user** - create PR automatically
124
+ - [ ] **NEVER push feature branch before main branch** - empty main must be pushed first
125
+ - [ ] **After this, NEVER push directly to main** - main branch is protected, use PRs for future changes
126
+ - [ ] Report completion to user with PR link
127
+
128
+ **Important Notes:**
129
+ - BOSS uses git commands for orchestration (branches, pushes, merges) - git CLI is allowed and expected
130
+ - Workers use Container-Use MCP for their git operations (automatic)
131
+ - ALWAYS update `.boss/project-config.json` to reflect status changes, then commit and push immediately
132
+ - ALWAYS ask user for repository preferences before creating
133
+ - Default to private repositories unless user specifies otherwise
134
+ - **CRITICAL:** Main branch MUST be protected before any pushes - require PRs for all changes
135
+ - **NEVER push directly to main branch** - always push to feature branch and create PR
136
+ - **ALWAYS create PRs automatically** - never ask user if they want a PR created
137
+ - **MINIMIZE status checks** - only check worker/environment status when necessary, not repeatedly
138
+
@@ -0,0 +1,33 @@
1
+ # BOSS Workflow Rules
2
+
3
+ ## Spec-Kit Phases
4
+
5
+ Follow the 8-phase Spec-Kit methodology:
6
+
7
+ 1. **Constitution** - Create/update constitution.md
8
+ 2. **Clarification** - Gather business requirements
9
+ 3. **Specification** - Write user stories (Given/When/Then)
10
+ 4. **Planning** - Create technical plan
11
+ 5. **Validation** - Validate against constitution
12
+ 6. **Task Breakdown** - Create tasks.md with [P] markers
13
+ 7. **Implementation** - TDD + BDD implementation
14
+ 8. **Consolidation** - Merge and create delivery artifacts
15
+
16
+ ## Worker Coordination
17
+
18
+ - Workers execute in parallel when tasks marked with [P]
19
+ - Each worker in isolated container-use environment
20
+ - Workers use Spec-Kit templates from \`.specify/templates/\`
21
+
22
+ ## Quality Gates
23
+
24
+ - All quality gates must pass before merging
25
+ - Coverage and mutation thresholds are enforced
26
+ - Documentation must be complete
27
+
28
+ ## Communication Standards
29
+
30
+ - **CRITICAL:** Use plain text only when communicating with workers - NO emojis
31
+ - All messages, instructions, prompts, and feedback to workers must be in plain text format
32
+ - Emojis should not be used in worker prompts, Container-Use instructions, or any worker-related communication
33
+
@@ -0,0 +1,23 @@
1
+ # Code Style
2
+
3
+ ## TypeScript
4
+
5
+ - Use strict TypeScript configuration
6
+ - Prefer explicit types over `any`
7
+ - Use interfaces for object shapes
8
+ - Use enums for constants
9
+
10
+ ## Naming Conventions
11
+
12
+ - Use camelCase for variables and functions
13
+ - Use PascalCase for classes and types
14
+ - Use UPPER_CASE for constants
15
+ - Use kebab-case for file names
16
+
17
+ ## Formatting
18
+
19
+ - Use 2 spaces for indentation
20
+ - Use semicolons
21
+ - Use single quotes for strings
22
+ - Trailing commas in multi-line objects/arrays
23
+
@@ -0,0 +1,22 @@
1
+ # Security Guidelines
2
+
3
+ ## Secrets Management
4
+
5
+ - NEVER commit secrets to git
6
+ - Use 1Password vault "boss" for all secrets
7
+ - Reference secrets via \`op://boss/credential/needed\` format
8
+ - Secrets are injected at runtime via container-use
9
+
10
+ ## Dependencies
11
+
12
+ - Keep dependencies up to date
13
+ - Use security scanning tools
14
+ - Review dependency changes in PRs
15
+
16
+ ## Code Security
17
+
18
+ - Validate all user input
19
+ - Use parameterized queries for database
20
+ - Implement proper authentication/authorization
21
+ - Follow OWASP guidelines
22
+
@@ -0,0 +1,32 @@
1
+ # Testing Requirements
2
+
3
+ ## Test-First (NON-NEGOTIABLE)
4
+
5
+ - Write tests BEFORE implementation
6
+ - Follow TDD cycle: red → green → refactor
7
+ - All tests must pass before committing
8
+
9
+ ## BDD (Mandatory)
10
+
11
+ - Use Given/When/Then format for test descriptions
12
+ - Use BDD test frameworks (Cucumber, Gherkin, or equivalent)
13
+ - Tests should read like specifications
14
+
15
+ ## Coverage
16
+
17
+ - Unit tests: ≥80% coverage
18
+ - Integration tests: Required for all API endpoints
19
+ - Mutation testing: ≥80% score
20
+
21
+ ## Test Structure
22
+
23
+ \`\`\`
24
+ describe('Feature Name', () => {
25
+ describe('Given [context]', () => {
26
+ it('When [action], Then [expected result]', () => {
27
+ // Test implementation
28
+ });
29
+ });
30
+ });
31
+ \`\`\`
32
+
@@ -0,0 +1,88 @@
1
+ {
2
+ "permissions": {
3
+ "allow": [
4
+ "Bash(test:*)",
5
+ "Bash(grep:*)",
6
+ "Bash(cat:*)",
7
+ "Bash(ls:*)",
8
+ "Bash(echo:*)",
9
+ "Bash(curl:*)",
10
+ "Bash(pnpm:*)",
11
+ "Bash(npm:*)",
12
+ "Bash(bash scripts/security-check.sh)",
13
+ "Bash(cat .boss/project-config.json)",
14
+ "Bash(ls .boss/)",
15
+ "Bash(ls -la .boss/)",
16
+ "Bash(git commit:*)",
17
+ "Bash(git merge:*)",
18
+ "Bash(git pull:*)",
19
+ "Bash(git push:*)",
20
+ "Bash(git add:*)",
21
+ "Bash(git branch:*)",
22
+ "Bash(git checkout:*)",
23
+ "Bash(git log:*)",
24
+ "Bash(git ls-tree:*)",
25
+ "Bash(git remote:*)",
26
+ "Bash(git show:*)",
27
+ "Bash(git status:*)",
28
+ "Bash(rm ./*)",
29
+ "Bash(rm -f ./*)",
30
+ "Bash(rm ./.*)",
31
+ "Bash(rm -f ./.*)",
32
+ "Bash(rm ./**/*)",
33
+ "Bash(rm -f ./**/*)",
34
+ "Read(*)",
35
+ "Read(**)",
36
+ "Read(.*)",
37
+ "Read(.*/**)",
38
+ "Read(.boss/**)",
39
+ "Read(.boss/project-config.json)",
40
+ "Write(*)",
41
+ "Write(**)",
42
+ "Write(.*)",
43
+ "Write(.*/**)",
44
+ "Write(.boss/**)",
45
+ "Write(.boss/project-config.json)",
46
+ "Edit(*)",
47
+ "Edit(**)",
48
+ "Edit(.*)",
49
+ "Edit(.*/**)",
50
+ "Edit(.boss/**)",
51
+ "Edit(.boss/project-config.json)",
52
+ "Delete(*)",
53
+ "Delete(**)"
54
+ ],
55
+ "ask": [
56
+ "Bash(rm -rf ./*)"
57
+ ],
58
+ "deny": [
59
+ "Bash(rm //etc/**)",
60
+ "Bash(rm //usr/**)",
61
+ "Bash(rm //var/**)",
62
+ "Bash(rm //home/**)",
63
+ "Bash(rm -f //etc/**)",
64
+ "Bash(rm -f //usr/**)",
65
+ "Bash(rm -f //var/**)",
66
+ "Bash(rm -rf //etc/**)",
67
+ "Bash(rm -rf //usr/**)",
68
+ "Bash(rm -rf //var/**)",
69
+ "Read(//etc/**)",
70
+ "Read(//usr/**)",
71
+ "Read(//var/**)",
72
+ "Read(//root/**)",
73
+ "Read(//tmp/**)",
74
+ "Write(//etc/**)",
75
+ "Write(//usr/**)",
76
+ "Write(//var/**)",
77
+ "Write(//root/**)",
78
+ "Edit(//etc/**)",
79
+ "Edit(//usr/**)",
80
+ "Edit(//var/**)",
81
+ "Edit(//root/**)",
82
+ "Delete(//etc/**)",
83
+ "Delete(//usr/**)",
84
+ "Delete(//var/**)",
85
+ "Delete(//root/**)"
86
+ ]
87
+ }
88
+ }
File without changes
@@ -0,0 +1,140 @@
1
+ # Container-Use MCP Operations
2
+
3
+ **CRITICAL:** All file, code, and shell operations MUST use Container-Use MCP environments.
4
+
5
+ ## Git Hooks Enforcement
6
+
7
+ **MANDATORY:** All git commits MUST respect Husky git hooks:
8
+ - **commit-msg hook** enforces Conventional Commits format (e.g., `feat: description`, `fix: description`)
9
+ - **pre-commit hook** runs lint-staged, typecheck, and tests
10
+ - **pre-push hook** runs additional quality checks
11
+ - **Container-Use environments automatically run git hooks** - hooks are active in containers
12
+ - **Commit messages MUST follow format:** `<type>(<scope>): <description>`
13
+ - Valid types: `feat`, `fix`, `docs`, `style`, `refactor`, `perf`, `test`, `chore`, `ci`, `build`, `revert`
14
+ - Examples: `feat: add user authentication`, `fix(api): handle null response`, `chore: update dependencies`
15
+ - **Hooks are installed during bootstrap** - Husky is initialized automatically
16
+ - **package.json includes `prepare` script** - Runs `husky install` automatically when dependencies are installed
17
+
18
+ **NEVER:**
19
+ - NOT OK Use `--no-verify` flag to skip hooks (Container-Use commits will fail if hooks fail)
20
+ - NOT OK Bypass commit message validation
21
+ - NOT OK Skip pre-commit checks
22
+ - NOT OK Commit with invalid message format
23
+
24
+ **ALWAYS:**
25
+ - OK Let git hooks run automatically (Container-Use respects hooks - they cannot be bypassed)
26
+ - OK Use proper Conventional Commits format: `<type>(<scope>): <description>`
27
+ - OK Ensure hooks pass before committing (commits will be rejected if hooks fail)
28
+ - OK Run `pnpm install` after bootstrap to ensure Husky is fully set up
29
+
30
+ ## How Container-Use Works
31
+
32
+ 1. **Environment Creation**
33
+ - Use `mcp_container-use_create_environment` to create a new environment
34
+ - Container-Use automatically creates a branch: `container-use/<env-id>`
35
+ - Each environment is an isolated container with its own git branch
36
+ - Branch naming convention: `container-use/<env-id>` (e.g., `container-use/env-abc123`)
37
+ - **Git hooks are active in Container-Use environments** - commits will be validated
38
+
39
+ 2. **Container Configuration (MANDATORY - BEFORE Worker Spawning)**
40
+ - **CRITICAL:** This is the ONLY exception where BOSS uses `environment_file_write`
41
+ - **Purpose:** Configure container with worker-specific context, not BOSS's orchestration context
42
+ - **Overwrite `.claude/CLAUDE.md` in container:**
43
+ - Read `.boss/workers/[worker-name]/CLAUDE.md`
44
+ - Use `mcp_container-use_environment_file_write` to write to `.claude/CLAUDE.md` in container
45
+ - Container needs worker's instructions, not BOSS's orchestration instructions
46
+ - **Copy worker-specific `.claude` files to container:**
47
+ - Check if `.boss/workers/[worker-name]/.claude/` exists
48
+ - If exists, copy all files maintaining directory structure:
49
+ - `.claude/commands/` - Worker-specific commands
50
+ - `.claude/skills/` - Worker-specific skills
51
+ - `.claude/agents/` - Worker-specific agent configs
52
+ - `.claude/settings*.json` - Worker-specific settings (if any)
53
+ - Use `mcp_container-use_environment_file_write` for each file
54
+ - **Why:** Container's Claude Code needs worker role context, not BOSS orchestrator context
55
+
56
+ 3. **Worker Spawning (MANDATORY for BOSS)**
57
+ - **CRITICAL:** BOSS must use `mcp_container-use_execute_in_environment` to spawn workers
58
+ - **BOSS must NEVER write deliverables directly** using `environment_file_write` or `environment_run_cmd`
59
+ - **Workers write all deliverables** (constitution.md, spec.md, plan.md, code, tests, etc.)
60
+ - Each worker runs in its own isolated environment/container with worker-specific `.claude` config
61
+ - Workers can access secrets from 1Password (configured in container-config.json)
62
+ - All git operations happen automatically within the environment
63
+ - **BOSS's role:** Orchestrate (create environment, configure container, spawn worker, review, merge)
64
+ - **Worker's role:** Execute (write files, run commands, create code)
65
+
66
+ 4. **Environment Management**
67
+ - `mcp_container-use_list_environments` - List all active environments
68
+ - `mcp_container-use_get_environment` - Get environment details
69
+ - `mcp_container-use_delete_environment` - Delete environment (discards work)
70
+ - `mcp_container-use_merge_environment` - Merge environment branch into target branch
71
+
72
+ 5. **Work Review**
73
+ - Use `container-use log <env_id>` (CLI) to view command history
74
+ - Use `container-use diff <env_id>` (CLI) to view code changes
75
+ - Use `container-use checkout <env_id>` (CLI) to test locally
76
+ - Inform user: `container-use log <env_id>` AND `container-use checkout <env_id>`
77
+
78
+ **Key Rules:**
79
+ - **[DO]** ALWAYS create environments for any file/code/shell operation
80
+ - **[DO]** ALWAYS use Container-Use MCP tools (never git CLI)
81
+ - **[DO]** ALWAYS inform user how to view work via container-use CLI
82
+ - **[DO]** Configure container environment BEFORE spawning worker:
83
+ - Overwrite `.claude/CLAUDE.md` with worker's CLAUDE.md
84
+ - Copy worker-specific `.claude/` files to container
85
+ - This is the ONLY exception where BOSS uses `environment_file_write`
86
+ - **[DO]** For large files, use shell commands (heredoc/cat) instead of `environment_file_write` with large content
87
+ - **[DON'T]** NEVER use git CLI directly
88
+ - **[DON'T]** NEVER modify .git directory manually
89
+ - **[DON'T]** NEVER execute operations outside environments
90
+ - **[DON'T]** NEVER use `environment_file_write` to create deliverables - workers write deliverables
91
+ - **[DON'T]** NEVER use `environment_file_write` with very large content (>1000 lines) - use shell commands instead
92
+
93
+ ## Efficient File Operations
94
+
95
+ **CRITICAL:** For large files (README.md, long documentation, large config files, constitution.md, spec.md), use shell commands with heredoc syntax instead of `environment_file_write` with large content fields. This reduces MCP payload size, improves performance, and reduces token usage.
96
+
97
+ **Decision Tree:**
98
+ - **Files >100 lines or >5KB:** Use `environment_run_cmd` with heredoc/cat
99
+ - **Files <100 lines and <5KB:** Can use `environment_file_write` (but heredoc still preferred)
100
+
101
+ **Preferred Method (Large Files - README, docs, specs):**
102
+ ```typescript
103
+ // Use environment_run_cmd with heredoc for large files
104
+ await mcp.containerUse.environment_run_cmd({
105
+ environment_id: "env-123",
106
+ command: `cat > README.md << 'EOF'
107
+ # Project Title
108
+
109
+ Long content here...
110
+ Multiple lines...
111
+ EOF`
112
+ });
113
+ ```
114
+
115
+ **Alternative for Very Large Files (Multi-step):**
116
+ ```typescript
117
+ // For extremely large files, write in chunks or use echo with >> append
118
+ await mcp.containerUse.environment_run_cmd({
119
+ environment_id: "env-123",
120
+ command: `cat > large-file.md << 'EOF'
121
+ [content part 1]
122
+ EOF
123
+ cat >> large-file.md << 'EOF'
124
+ [content part 2]
125
+ EOF`
126
+ });
127
+ ```
128
+
129
+ **Small Files Only (<50 lines):**
130
+ ```typescript
131
+ // Only use environment_file_write for very small files
132
+ await mcp.containerUse.environment_file_write({
133
+ environment_id: "env-123",
134
+ target_file: "src/utils.ts",
135
+ contents: "export function helper() { return true; }" // Small content only
136
+ });
137
+ ```
138
+
139
+ **Why:** Large content in MCP calls increases payload size, latency, and token usage. Shell commands with heredoc are more efficient for files >100 lines. Container-Use executes shell commands efficiently inside the container.
140
+