@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,238 @@
1
+ # GitHub MCP Operations
2
+
3
+ **CRITICAL:**
4
+ - **GitHub MCP is already authenticated and available** - use it directly for GitHub API operations (repositories, PRs, issues, branch protection)
5
+ - Use git commands for local git operations (branches, pushes, merges)
6
+ - **ALWAYS use HTTPS URLs for git remotes:** `https://github.com/<owner>/<repo>.git` (NEVER use SSH `git@github.com` format)
7
+ - **Git authentication:** Git automatically uses `GITHUB_TOKEN` environment variable for HTTPS authentication (set to same value as `GITHUB_PERSONAL_ACCESS_TOKEN` for consistency)
8
+
9
+ ## Organization Selection
10
+
11
+ **CRITICAL: Use MCP for ALL GitHub Operations**
12
+
13
+ **When user requests to create repository in an organization:**
14
+
15
+ 1. **Ask user directly for organization name:**
16
+ - Simply ask: "What is the name of the GitHub organization you want to create the repository in?"
17
+ - Wait for user to provide the organization name as a string (e.g., "my-org", "company-name")
18
+ - Store the organization name for use in repository creation and transfer
19
+
20
+ 2. **DO NOT:**
21
+ - NOT OK List organizations using `search_users` MCP tool with `type:org` - this searches public organizations
22
+ - NOT OK Use curl to call GitHub API endpoints - use GitHub MCP tools instead
23
+ - NOT OK Try to enumerate user's organizations - just ask the user directly
24
+
25
+ 3. **Use GitHub MCP for all operations:**
26
+ - Use GitHub MCP `createRepository` tool to create the repository
27
+ - Use GitHub MCP transfer tool (if available) to transfer repository to organization
28
+ - Use GitHub MCP for all repository, branch, and PR operations
29
+
30
+ ## Repository Creation
31
+
32
+ **CRITICAL: BOSS's Role in Repository Setup**
33
+
34
+ **BOSS does NOT:**
35
+ - NOT OK Push to main branch (husky pre-push hooks block this - enforced for everyone)
36
+ - NOT OK Create Container-Use environments for repository setup operations
37
+ - NOT OK Use Container-Use MCP for BOSS's own git operations
38
+
39
+ **BOSS DOES:**
40
+ - OK Use git commands for orchestration: create branches, push code, merge branches, add remotes
41
+ - OK Use GitHub MCP for GitHub API operations: create repositories, create PRs, set branch protection
42
+
43
+ **BOSS DOES (continued):**
44
+ - OK Use GitHub MCP to check if repository exists (`search_repositories` or similar)
45
+ - OK Use GitHub MCP to create repository if it doesn't exist (`createRepository`)
46
+ - OK Use GitHub MCP to set branch protection (use GitHub MCP tools, or if not available, use `run_terminal_cmd` with curl as fallback)
47
+ - OK Use git commands to add remotes: `git remote add origin https://github.com/<owner>/<repo>.git` (ALWAYS use HTTPS, NEVER SSH)
48
+ - OK Use git commands to push branches: `git push origin <branch-name>` (except main - blocked by hooks)
49
+ - OK **Git authentication:** Git automatically uses `GITHUB_TOKEN` environment variable for HTTPS authentication (set to same value as `GITHUB_PERSONAL_ACCESS_TOKEN` for consistency)
50
+ - OK **GitHub MCP is authenticated:** GitHub MCP server is already up and authenticated - use it directly, no additional setup needed
51
+ - OK Update `.boss/project-config.json` directly with repository information, then commit and push: `git add .boss/project-config.json && git commit -m "chore: update project-config.json" && git push`
52
+
53
+ **IMPORTANT LIMITATION:** The GitHub MCP `createRepository` tool currently only creates repositories under the authenticated user's personal account, not under organizations. This is a limitation of the GitHub MCP tool itself, not the PAT permissions.
54
+
55
+ **AUTOMATIC TRANSFER:** When an organization is requested, automatically ask the user if they want to transfer the repository. First try using GitHub MCP transfer tool if available, otherwise fall back to GitHub API.
56
+
57
+ When creating a GitHub repository:
58
+
59
+ 1. **Ask User for Preferences:**
60
+ - Should repository be **private** or **public**? (default: private)
61
+ - Should it be created in an **organization**? (if yes, proceed to step 2)
62
+ - Repository name (if different from project name)
63
+
64
+ 2. **If Organization Was Requested - Get Organization Name:**
65
+ - **CRITICAL:** Ask user directly for the organization name as a string
66
+ - Simply ask: "What is the name of the GitHub organization you want to create the repository in?"
67
+ - Wait for user to provide the organization name (e.g., "my-org", "company-name")
68
+ - Store the organization name for use in repository transfer
69
+ - **DO NOT use `search_users` MCP tool** - this searches public organizations, not the user's organizations
70
+ - **DO NOT use curl** - use GitHub MCP tools for all operations
71
+
72
+ 3. **Create Repository:**
73
+ ```typescript
74
+ // Use GitHub MCP to create repository (GitHub MCP is already authenticated - use it directly)
75
+ // NOTE: This will create under personal account even if organization is specified
76
+ const repo = await mcp.github.createRepository({
77
+ name: "project-name",
78
+ description: "BOSS project",
79
+ private: true, // Ask user, default to private
80
+ // organization parameter is not supported by GitHub MCP
81
+ });
82
+ ```
83
+ **After creating repository, use HTTPS URL for git remote:**
84
+ - Repository URL format: `https://github.com/<owner>/<repo>.git`
85
+ - Add remote: `git remote add origin https://github.com/<owner>/<repo>.git` (NEVER use SSH `git@github.com` format)
86
+ - Git will automatically use `GITHUB_TOKEN` environment variable for authentication (set to same value as `GITHUB_PERSONAL_ACCESS_TOKEN` for consistency)
87
+
88
+ 4. **If Organization Was Selected - Automatic Transfer:**
89
+ - Inform the user: "Repository created under your personal account. Would you like me to transfer it to [org-name] now?"
90
+ - If user confirms:
91
+ - Transfer the repository (see "Repository Transfer" section below for complete instructions)
92
+ - First try GitHub MCP transfer tool if available
93
+ - If MCP tool not available, use `run_terminal_cmd` to execute curl command
94
+ - Verify response status is `202 Accepted`
95
+ - Wait for transfer to complete (poll status if needed, or wait a few seconds)
96
+ - **Verify dependencies are installed** - `start-boss.sh` already runs `pnpm install` automatically, so just verify `node_modules` exists (do NOT run install again)
97
+ - Update git remote URL using HTTPS: `git remote set-url origin https://github.com/<new-owner>/<repo>.git` (NEVER use SSH format)
98
+ - Update `project-config.json` with transferred repository info
99
+
100
+ 5. **Update project-config.json:**
101
+ - Set `repository.remote = "origin"`
102
+ - Set `repository.url` (use org URL if transferred, personal URL if not)
103
+ - Set `repository.owner` (org name if transferred, personal account if not)
104
+ - Set `repository.name`, `private`
105
+ - Set `repository.organization` to the org name (even if not yet transferred)
106
+ - Set `initialization.remoteCreated = true`
107
+
108
+ ## Repository Transfer
109
+
110
+ **OFFICIAL INSTRUCTIONS:** Transfer repositories using GitHub MCP if available, otherwise fall back to GitHub REST API.
111
+
112
+ **Official Documentation:** https://docs.github.com/en/rest/repos/repos#transfer-a-repository
113
+
114
+ **Method 1: Try GitHub MCP First (Preferred)**
115
+
116
+ Check if GitHub MCP provides a `transfer_repository` or similar tool. If available, use it:
117
+
118
+ ```typescript
119
+ // Try GitHub MCP transfer tool if available
120
+ try {
121
+ const result = await mcp.github.transferRepository({
122
+ owner: currentOwner,
123
+ repo: repoName,
124
+ new_owner: targetOrgName,
125
+ // Optional: team_ids, new_name
126
+ });
127
+ // Transfer successful via MCP
128
+ } catch (error) {
129
+ // MCP tool not available, fall back to API method
130
+ }
131
+ ```
132
+
133
+ **Method 2: Fallback to GitHub REST API (If MCP Not Available)**
134
+
135
+ If GitHub MCP doesn't have a transfer tool, use direct HTTP requests via `run_terminal_cmd`.
136
+
137
+ **Endpoint:** `POST /repos/{owner}/{repo}/transfer`
138
+
139
+ **Request Headers:**
140
+ - `Authorization: Bearer {GITHUB_PERSONAL_ACCESS_TOKEN}`
141
+ - `Accept: application/vnd.github.v3+json`
142
+
143
+ **Request Body:**
144
+ ```json
145
+ {
146
+ "new_owner": "new_owner_username_or_org",
147
+ "team_ids": [1234567, 2345678], // Optional: array of team IDs (for org transfers)
148
+ "new_name": "new_repository_name" // Optional: rename during transfer
149
+ }
150
+ ```
151
+
152
+ **Response:** `202 Accepted` - Transfer initiated successfully
153
+
154
+ **Using run_terminal_cmd with curl (Fallback if MCP not available):**
155
+ ```bash
156
+ curl -X POST \
157
+ -H "Authorization: Bearer $GITHUB_PERSONAL_ACCESS_TOKEN" \
158
+ -H "Accept: application/vnd.github.v3+json" \
159
+ -H "Content-Type: application/json" \
160
+ https://api.github.com/repos/{current-owner}/{repo-name}/transfer \
161
+ -d "{\"new_owner\": \"{target-org}\"}"
162
+ ```
163
+
164
+ **Critical Requirements:**
165
+ - OK **Administrative access required** - You must have admin access to the repository being transferred
166
+ - OK **Organization permissions** - If transferring to an organization, you must have permission to create repositories in that organization
167
+ - OK **Acceptance window** - The new owner has 24 hours to accept the transfer, otherwise it expires
168
+ - OK **Update git remote** - After successful transfer, update the git remote URL using Container-Use MCP
169
+ - OK **Update project-config.json** - Update repository owner, URL, and organization fields
170
+
171
+ **Post-Transfer Steps:**
172
+ 1. Wait for transfer to complete (poll repository status or wait a few seconds)
173
+ 2. **CRITICAL: Verify dependencies are installed** - Before creating Container-Use environments, ensure `node_modules` exists:
174
+ - **NOTE:** `start-boss.sh` already runs `pnpm install` (or `npm install`) automatically before launching Claude
175
+ - **DO NOT run `pnpm install` again** - dependencies should already be installed
176
+ - Only verify `node_modules` directory exists (if missing, that's unexpected)
177
+ - This prevents pre-push hook failures due to missing dependencies
178
+ 3. Update git remote URL in Container-Use environment
179
+ 4. Verify remote was updated correctly
180
+ 5. Update `project-config.json` with new owner and URL
181
+
182
+ ## Branch Operations
183
+
184
+ - **Create branches:** BOSS uses git commands: `git checkout -b <branch-name>` or Container-Use MCP for worker branches (creates environment = branch)
185
+ - **Push branches:** BOSS uses git commands: `git push origin <branch-name>` (except main - blocked by husky hooks)
186
+ - **Git authentication:** Git automatically uses `GITHUB_TOKEN` environment variable for HTTPS authentication (set to same value as `GITHUB_PERSONAL_ACCESS_TOKEN` for consistency)
187
+ - **ALWAYS use HTTPS remotes:** Ensure remote URL is `https://github.com/<owner>/<repo>.git` (NEVER SSH format)
188
+ - **List branches:** Use GitHub MCP for remote branch info, or git commands for local branches: `git branch` or `git branch -a`
189
+
190
+ ## Branch Protection
191
+
192
+ **CRITICAL: MAIN BRANCH IS PROTECTED - PRs REQUIRED**
193
+
194
+ - **Main branch is locked during initial setup** - direct pushes are blocked
195
+ - **ALL changes to main must go through pull requests** - no exceptions
196
+ - Branch protection is set up automatically during initial setup with:
197
+ - Required pull request reviews before merging
198
+ - Required status checks to pass
199
+ - Required branches to be up to date
200
+ - Force pushes disabled
201
+ - Branch deletions disabled
202
+
203
+ **NEVER:**
204
+ - NOT OK Push directly to main branch
205
+ - NOT OK Bypass PR requirement
206
+ - NOT OK Skip PR creation
207
+
208
+ **ALWAYS:**
209
+ - OK Push to feature branch (`feature/boss-initial-setup` or `feature/*`)
210
+ - OK Create PR from feature branch to main
211
+ - OK Use PRs for all changes to main
212
+
213
+ ## Pull Requests
214
+
215
+ **CRITICAL: AUTOMATIC PR CREATION - NO USER PROMPTS - MANDATORY**
216
+
217
+ - **ALWAYS** create PRs automatically - **NEVER ask user if they want a PR created**
218
+ - **MANDATORY:** After merging worker changes and pushing to remote, **IMMEDIATELY** create PR using GitHub MCP
219
+ - **Main branch protection requires PRs** - direct pushes will fail
220
+ - Use GitHub MCP `mcp__github__create_pull_request` to create PR from feature branch to main
221
+ - Include worker summaries, quality gate results, and related specs/issues in PR body
222
+ - Link to container-use environments for review
223
+ - PR title format: `feat: [feature-name] - [brief description]` or `chore: [description]`
224
+ - **DO NOT wait for user confirmation** - create PR automatically as part of workflow completion
225
+ - **DO NOT skip PR creation** - it's mandatory for all changes to main
226
+
227
+ ## GitHub Repository Requirements
228
+
229
+ **CRITICAL: Repository Privacy Policy**
230
+
231
+ - **Default to PRIVATE repositories** - Ask user for preference
232
+ - When using GitHub MCP to create repositories, ask user:
233
+ - Should it be private or public? (default: private)
234
+ - Should it be in an organization? (if yes, which org?)
235
+ - This applies to:
236
+ - Initial repository creation during setup
237
+ - Any new repositories created for projects, features, or sub-projects
238
+
@@ -0,0 +1,186 @@
1
+ # Initial Setup Workflow
2
+
3
+ **CRITICAL: AUTOMATIC INITIALIZATION CHECK ON STARTUP**
4
+
5
+ **When BOSS starts (via `./start-boss.sh`), you MUST automatically:**
6
+
7
+ 1. **Check Initialization Status (AUTOMATIC - DO THIS FIRST)**
8
+ - Read `.boss/project-config.json` immediately on startup
9
+ - Check `initialization.stage` to determine what needs to be done
10
+ - **If `initialization.stage !== "ready"`, automatically complete initial setup without asking user**
11
+ - **DO NOT wait for user to ask** - check and complete setup automatically
12
+
13
+ 2. **Verify Bootstrap State**
14
+ - **CRITICAL:** Main branch should be EMPTY (only empty commit) - bootstrap files are NOT on main
15
+ - **CRITICAL:** Feature branch `feature/boss-initial-setup` should already exist with ALL bootstrap files (created during bootstrap)
16
+ - **CRITICAL: Verify dependencies are installed** - Before creating Container-Use environments:
17
+ - **NOTE:** `start-boss.sh` already runs `pnpm install` (or `npm install`) automatically before launching Claude
18
+ - **DO NOT run `pnpm install` again** - dependencies should already be installed
19
+ - Only verify `node_modules` directory exists (if missing, that's unexpected - `start-boss.sh` should have installed them)
20
+ - This prevents pre-push/pre-commit hook failures due to missing dependencies (e.g., `tsc` not found)
21
+ - If feature branch doesn't exist, create it from main
22
+ - Switch to this branch using Container-Use MCP (create environment on this branch)
23
+ - Update `project-config.json` with `currentBranch: "feature/boss-initial-setup"`
24
+
25
+ 3. **Run Initial Setup Checklist**
26
+ - **CRITICAL:** BOSS handles initialization directly using GitHub MCP - do NOT spawn workers for this
27
+ - Checklist includes:
28
+ - [ ] Check if remote repository exists using GitHub MCP `search_repositories` tool
29
+ - [ ] If no remote, ask user:
30
+ - Should repository be private or public? (default: private)
31
+ - Should it be created in an organization? (if yes, proceed to list orgs)
32
+ - Repository name (if different from project name)
33
+ - [ ] If organization was requested:
34
+ - [ ] **CRITICAL:** Ask user directly for the organization name as a string
35
+ - [ ] Simply ask: "What is the name of the GitHub organization you want to create the repository in?"
36
+ - [ ] Wait for user to provide the organization name (e.g., "my-org", "company-name")
37
+ - [ ] Store the organization name for use in repository transfer
38
+ - [ ] **DO NOT use `search_users` MCP tool** - this searches public organizations
39
+ - [ ] **DO NOT use curl** - use GitHub MCP tools for all operations
40
+ - [ ] Create GitHub repository using GitHub MCP
41
+ - [ ] **CRITICAL: Lock main branch and require PRs** - Use GitHub MCP to set branch protection:
42
+ - First, try to use GitHub MCP tools for branch protection (if available)
43
+ - If GitHub MCP doesn't have a branch protection tool, use `run_terminal_cmd` with curl as fallback:
44
+ - Make HTTP PUT request to: `https://api.github.com/repos/{owner}/{repo}/branches/main/protection`
45
+ - Headers: `Authorization: Bearer {GITHUB_PERSONAL_ACCESS_TOKEN}`, `Accept: application/vnd.github.v3+json` (use GITHUB_PERSONAL_ACCESS_TOKEN, not GITHUB_TOKEN, for API calls)
46
+ - Body:
47
+ ```json
48
+ {
49
+ "required_pull_request_reviews": {
50
+ "required": true,
51
+ "dismiss_stale_reviews": true,
52
+ "require_code_owner_reviews": false,
53
+ "required_approving_review_count": 1
54
+ },
55
+ "enforce_admins": true,
56
+ "required_status_checks": {
57
+ "strict": true,
58
+ "contexts": []
59
+ },
60
+ "restrictions": null,
61
+ "allow_force_pushes": false,
62
+ "allow_deletions": false,
63
+ "required_linear_history": false,
64
+ "allow_squash_merge": true,
65
+ "allow_merge_commit": true,
66
+ "allow_rebase_merge": true
67
+ }
68
+ ```
69
+ - Verify protection was set: Check response status is 200
70
+ - [ ] **CRITICAL ORDER - Follow EXACTLY:**
71
+ 1. **Add remote using HTTPS:** `git remote add origin https://github.com/<owner>/<repo>.git` (ALWAYS use HTTPS format, NEVER SSH `git@github.com` format)
72
+ 2. **Check current branch:** `git branch --show-current` - verify you're on the correct branch
73
+ 3. **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)
74
+ 4. **Switch to main branch:** `git checkout main` (if uncommitted changes prevent checkout, commit them to current branch first, then switch)
75
+ 5. **FIRST push empty main branch:** `git push -u origin main` (main is EMPTY - only empty commit, no validation needed, git will use GITHUB_TOKEN automatically, which is set to same value as GITHUB_PERSONAL_ACCESS_TOKEN)
76
+ - **NOTE:** The pre-push hook allows empty main push without validation checks
77
+ - **Main branch must be pushed first (empty) before feature branch**
78
+ 6. **Switch back to feature branch:** `git checkout feature/boss-initial-setup` (branch should already exist from bootstrap)
79
+ 7. **Verify validation checks pass BEFORE pushing feature branch:**
80
+ - **BEFORE pushing feature branch, verify all checks pass:**
81
+ 1. **Typecheck:** Run `pnpm typecheck` (or `npm run typecheck`) - must pass
82
+ 2. **Lint:** Run `pnpm lint` (or `npm run lint`) - must pass
83
+ 3. **Security:** Run `bash scripts/security-check.sh` - must pass
84
+ 4. **Tests:** Run `pnpm test:unit` (or `npm run test:unit`) - must pass
85
+ - **If any check fails, fix the issues before pushing**
86
+ 8. **THEN push feature branch:** `git push -u origin feature/boss-initial-setup` (contains all bootstrap files, git will use GITHUB_TOKEN automatically, which is set to same value as GITHUB_PERSONAL_ACCESS_TOKEN)
87
+ 9. **Update `.boss/project-config.json`** with repository information:
88
+ - Set `repository.remote = "origin"`
89
+ - Set `repository.url = "https://github.com/{owner}/{repo}"`
90
+ - Set `repository.owner`, `repository.name`, `repository.private`
91
+ - Set `initialization.remoteCreated = true`
92
+ 10. **Commit and push project-config.json:** `git add .boss/project-config.json && git commit -m "chore: update project-config.json" && git push`
93
+ 11. **Mark `initialization.stage = "ready"`** in `project-config.json`
94
+ 12. **Commit and push again:** `git add .boss/project-config.json && git commit -m "chore: mark initialization as ready" && git push`
95
+ 13. **FINAL STEP - Create PR from feature/boss-initial-setup to main:** Use GitHub MCP `create_pull_request` with:
96
+ - **Title:** `"chore: BOSS initial setup - bootstrap files"`
97
+ - **Body:** `"This PR contains all BOSS bootstrap files and initial project structure. Ready for review and merge."`
98
+ - **Base branch:** `"main"`
99
+ - **Head branch:** `"feature/boss-initial-setup"`
100
+ - **DO NOT ask user** - create PR automatically
101
+ - [ ] **DO NOT create Container-Use environments for initialization** - BOSS handles this via git commands
102
+ - [ ] **NEVER push feature branch before main branch** - main must be pushed first
103
+ - [ ] **After initial setup, NEVER push directly to main** - always use PRs
104
+
105
+ 4. **After Initial Setup**
106
+ - All BOSS and worker work happens on `feature/boss-initial-setup` branch
107
+ - Workers spawn from this branch
108
+ - **AUTOMATICALLY** create PR from `feature/boss-initial-setup` to `main` when work is complete
109
+ - **DO NOT ask user** - always create PR automatically after pushing changes
110
+
111
+ ## Pre-Push Hook Behavior During Initialization
112
+
113
+ **CRITICAL UNDERSTANDING:** The pre-push hook (`.husky/pre-push`) has special behavior for the first push to main:
114
+
115
+ 1. **First Push Detection:** The hook checks if remote main branch exists using `git ls-remote --heads origin main`
116
+ 2. **Empty Main Allowed:** If remote main doesn't exist AND main branch is empty (only empty commit or minimal files), the hook allows the push WITHOUT validation checks
117
+ 3. **Non-Empty Main:** If main branch contains files, validation checks will run even for first push
118
+ 4. **Feature Branch Validation:** All validation checks run normally for feature branch pushes:
119
+ - TypeScript typecheck (`pnpm typecheck`)
120
+ - Linting (`pnpm lint`)
121
+ - Security checks (`bash scripts/security-check.sh`)
122
+ - Unit tests (`pnpm test:unit`)
123
+ - Test file presence check (blocks non-interactive pushes if no test files exist)
124
+ 5. **After First Push:** Once main branch exists remotely, all future pushes to main are blocked (must use feature branches and PRs)
125
+
126
+ **IMPORTANT:** Before pushing main branch during initialization:
127
+ - **ALWAYS verify all validation checks pass first**
128
+ - Run the checks manually: `pnpm typecheck && pnpm lint && bash scripts/security-check.sh && pnpm test:unit`
129
+ - Fix any failures before attempting to push
130
+ - The bootstrap process should have created passing code, but verify before pushing
131
+
132
+ ## Project Config Structure
133
+
134
+ **CRITICAL:** Always check `.boss/project-config.json` for project status, initialization stages, and current state. This file is the single source of truth for:
135
+ - Initialization status (bootstrap, remote setup, initial setup completion)
136
+ - Current branch and workflow stage
137
+ - Remote repository information
138
+ - Worker activity summaries
139
+ - Project metadata
140
+
141
+ **DO NOT** use git commands to determine project status. Read `.boss/project-config.json` instead.
142
+
143
+ **Project Config Structure:**
144
+ ```json
145
+ {
146
+ "initialization": {
147
+ "stage": "bootstrap", // Values: "bootstrap" | "remote-setup" | "initial-setup" | "ready"
148
+ "bootstrapComplete": true,
149
+ "remoteCreated": false,
150
+ "initialSetupComplete": false
151
+ },
152
+ "repository": {
153
+ "remote": "origin", // Values: "origin" or null
154
+ "url": "https://github.com/owner/repo", // string or null
155
+ "owner": "username", // string or null
156
+ "name": "project-name", // string or null
157
+ "private": true, // boolean or null
158
+ "organization": "org-name" // string or null
159
+ },
160
+ "currentBranch": "feature/boss-initial-setup",
161
+ "workflow": {
162
+ "stage": "initialization", // current workflow stage
163
+ "activeWorkers": [],
164
+ "completedTasks": []
165
+ },
166
+ "workers": {
167
+ "summaries": []
168
+ }
169
+ }
170
+ ```
171
+
172
+ **When to Update project-config.json:**
173
+ - After completing initialization steps
174
+ - When spawning/merging workers
175
+ - When creating/updating remote repository
176
+ - When changing branches or workflow stages
177
+ - After any significant project state change
178
+
179
+ **CRITICAL: After ANY change to project-config.json, you MUST:**
180
+ 1. **Immediately commit the change:** `git add .boss/project-config.json && git commit -m "chore: update project-config.json"`
181
+ 2. **Immediately push the change:** `git push` (or `git push origin <branch-name>` if not tracking)
182
+ 3. **DO NOT wait** - do this automatically without asking for confirmation
183
+ 4. **DO NOT leave project-config.json changes uncommitted** - always commit and push immediately after modification
184
+
185
+ This ensures project state is always persisted and synchronized with the remote repository.
186
+
@@ -0,0 +1,15 @@
1
+ # Quality Standards
2
+
3
+ - **Test-First (NON-NEGOTIABLE)** - TDD cycle: red → green → refactor
4
+ - **BDD (Mandatory)** - Behavior-Driven Development with Given/When/Then
5
+ - **Feature Documentation (NON-NEGOTIABLE)** - Every feature must be documented
6
+ - **Coverage:** Coverage thresholds are defined in `.boss/config.yaml` and enforced by quality gates
7
+ - **Mutation Testing:** Mutation testing thresholds are defined in `.boss/config.yaml` and enforced by quality gates
8
+
9
+ Quality gates are configured based on the quality preset selected during bootstrap:
10
+ - **Startup:** Coverage ≥60%
11
+ - **Production:** Coverage ≥80%, Mutation ≥80%
12
+ - **Enterprise:** Coverage ≥90%, Mutation ≥80%
13
+
14
+ See `.boss/config.yaml` for the exact thresholds configured for this project.
15
+
@@ -0,0 +1,46 @@
1
+ # Spec-Kit Commands
2
+
3
+ **Spec-Kit is the foundation of our development methodology.** Workers use Spec-Kit commands throughout the development lifecycle. BOSS should understand these commands to coordinate workers effectively.
4
+
5
+ ## Available Spec-Kit Commands
6
+
7
+ - **`/speckit.constitution`** - Create or update project constitution (used by `architect`)
8
+ - **`/speckit.clarify`** - Identify underspecified areas and ask targeted clarification questions (used by `clarifier` and `product-owner`)
9
+ - **`/speckit.specify`** - Create or update feature specifications (used by `spec-writer`)
10
+ - **`/speckit.plan`** - Generate technical implementation plans (used by `planner`)
11
+ - **`/speckit.tasks`** - Break down plans into actionable tasks with [P] parallel markers (used by `planner`)
12
+ - **`/speckit.implement`** - Execute implementation following task breakdown (used by `developer-*` workers)
13
+ - **`/speckit.checklist`** - Generate requirement quality checklists (used by `spec-writer`, `tester`, `security-engineer`, `technical-writer`)
14
+ - **`/speckit.analyze`** - Run project consistency analysis (used by `reviewer`, `code-reviewer`, `consolidator`)
15
+
16
+ ## Spec-Kit Structure
17
+
18
+ - **Templates**: `.specify/templates/` - Template files for specs, plans, tasks, checklists
19
+ - **Scripts**: `.specify/scripts/` - Executable scripts for Spec-Kit commands
20
+ - **Memory**: `.specify/memory/constitution.md` - Governing principles (NON-NEGOTIABLE)
21
+ - **Specs**: `.specify/specs/[feature-name]/` - Feature specifications, plans, tasks, checklists
22
+
23
+ ## When Workers Use Spec-Kit Commands
24
+
25
+ - **Phase 1 (Constitution)**: `architect` uses `/speckit.constitution` or follows constitution template
26
+ - **Phase 2 (Clarification)**: `clarifier` uses `/speckit.clarify` to identify ambiguities
27
+ - **Phase 3 (Specification)**: `spec-writer` uses `/speckit.specify` and `/speckit.checklist`
28
+ - **Phase 4 (Planning)**: `planner` uses `/speckit.plan` to generate technical plans
29
+ - **Phase 6 (Task Breakdown)**: `planner` uses `/speckit.tasks` to create task breakdown
30
+ - **Phase 7 (Implementation)**: `developer-*` workers use `/speckit.implement` or follow TDD manually
31
+ - **Phase 5 & 7 (Validation/Review)**: `reviewer` and `code-reviewer` use `/speckit.analyze`
32
+ - **Cross-Phase**: `tester`, `security-engineer`, `technical-writer` use `/speckit.checklist` as needed
33
+
34
+ ## BOSS Methodology
35
+
36
+ This project uses Spec-Kit for specification-driven development with the following phases:
37
+
38
+ 1. **Constitution** - Governing principles (NON-NEGOTIABLE)
39
+ 2. **Clarification** - Business requirements gathering
40
+ 3. **Specification** - User stories in Given/When/Then format
41
+ 4. **Planning** - Technical approach and architecture
42
+ 5. **Validation** - Constitution compliance check
43
+ 6. **Task Breakdown** - Granular tasks with [P] parallel markers
44
+ 7. **Implementation** - TDD + BDD with feature documentation
45
+ 8. **Consolidation** - Integration and delivery artifacts
46
+