@glxmart/boss-cli 1.0.0 → 1.2.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 (317) hide show
  1. package/README.md +0 -1
  2. package/assets/claude-md/docs/conductor.md +139 -0
  3. package/assets/claude-md/docs/initialization.md +2 -2
  4. package/assets/claude-md/docs/workers.md +33 -54
  5. package/assets/claude-md/docs/workflow.md +23 -59
  6. package/assets/claude-md/template.md +198 -756
  7. package/assets/git-hooks/commit-msg.sh +4 -8
  8. package/assets/git-hooks/pre-commit.sh +0 -4
  9. package/assets/git-hooks/pre-push.sh +21 -0
  10. package/assets/github-workflows/CODEOWNERS +21 -2
  11. package/assets/github-workflows/boss-ci.yml +163 -23
  12. package/assets/github-workflows/boss-gates.yml +100 -13
  13. package/assets/template-docs/nextjs-app-turbo.md +412 -61
  14. package/assets/template-loader/gitignore +14 -0
  15. package/assets/worker-configs/architect/.claude/skills/conductor-orchestration.md +635 -0
  16. package/assets/worker-configs/architect/.claude/skills/spec-kit-workflow.md +827 -0
  17. package/assets/worker-configs/architect/CLAUDE.md +99 -38
  18. package/assets/worker-configs/clarifier/.claude/skills/conductor-orchestration.md +635 -0
  19. package/assets/worker-configs/clarifier/.claude/skills/spec-kit-workflow.md +827 -0
  20. package/assets/worker-configs/clarifier/CLAUDE.md +81 -40
  21. package/assets/worker-configs/code-reviewer/.claude/skills/nextjs-turbo-stack.md +1017 -0
  22. package/assets/worker-configs/code-reviewer/.claude/skills/spec-kit-workflow.md +827 -0
  23. package/assets/worker-configs/code-reviewer/.claude/skills/test-first-methodology.md +745 -0
  24. package/assets/worker-configs/code-reviewer/CLAUDE.md +85 -79
  25. package/assets/worker-configs/consolidator/.claude/skills/conductor-orchestration.md +635 -0
  26. package/assets/worker-configs/consolidator/.claude/skills/spec-kit-workflow.md +827 -0
  27. package/assets/worker-configs/consolidator/CLAUDE.md +94 -88
  28. package/assets/worker-configs/developer-backend/.claude/skills/nextjs-turbo-stack.md +1017 -0
  29. package/assets/worker-configs/developer-backend/.claude/skills/spec-kit-workflow.md +827 -0
  30. package/assets/worker-configs/developer-backend/.claude/skills/test-first-methodology.md +745 -0
  31. package/assets/worker-configs/developer-backend/CLAUDE.md +156 -56
  32. package/assets/worker-configs/developer-frontend/.claude/skills/nextjs-turbo-stack.md +1017 -0
  33. package/assets/worker-configs/developer-frontend/.claude/skills/spec-kit-workflow.md +827 -0
  34. package/assets/worker-configs/developer-frontend/.claude/skills/test-first-methodology.md +745 -0
  35. package/assets/worker-configs/developer-frontend/CLAUDE.md +152 -54
  36. package/assets/worker-configs/developer-fullstack/.claude/skills/nextjs-turbo-stack.md +1017 -0
  37. package/assets/worker-configs/developer-fullstack/.claude/skills/spec-kit-workflow.md +827 -0
  38. package/assets/worker-configs/developer-fullstack/.claude/skills/test-first-methodology.md +745 -0
  39. package/assets/worker-configs/developer-fullstack/CLAUDE.md +155 -57
  40. package/assets/worker-configs/devops-engineer/.claude/skills/infrastructure-as-code.md +794 -0
  41. package/assets/worker-configs/devops-engineer/.claude/skills/spec-kit-workflow.md +827 -0
  42. package/assets/worker-configs/devops-engineer/CLAUDE.md +92 -85
  43. package/assets/worker-configs/planner/.claude/skills/conductor-orchestration.md +635 -0
  44. package/assets/worker-configs/planner/.claude/skills/spec-kit-workflow.md +827 -0
  45. package/assets/worker-configs/planner/CLAUDE.md +143 -46
  46. package/assets/worker-configs/product-owner/CLAUDE.md +72 -82
  47. package/assets/worker-configs/reviewer/.claude/skills/conductor-orchestration.md +635 -0
  48. package/assets/worker-configs/reviewer/.claude/skills/spec-kit-workflow.md +827 -0
  49. package/assets/worker-configs/reviewer/CLAUDE.md +108 -50
  50. package/assets/worker-configs/security-engineer/.claude/skills/spec-kit-workflow.md +827 -0
  51. package/assets/worker-configs/security-engineer/CLAUDE.md +83 -83
  52. package/assets/worker-configs/spec-writer/.claude/skills/conductor-orchestration.md +635 -0
  53. package/assets/worker-configs/spec-writer/.claude/skills/spec-kit-workflow.md +827 -0
  54. package/assets/worker-configs/spec-writer/CLAUDE.md +107 -48
  55. package/assets/worker-configs/technical-writer/.claude/skills/nextjs-turbo-stack.md +1017 -0
  56. package/assets/worker-configs/technical-writer/.claude/skills/spec-kit-workflow.md +827 -0
  57. package/assets/worker-configs/technical-writer/CLAUDE.md +91 -81
  58. package/assets/worker-configs/tester/.claude/skills/nextjs-turbo-stack.md +1017 -0
  59. package/assets/worker-configs/tester/.claude/skills/spec-kit-workflow.md +827 -0
  60. package/assets/worker-configs/tester/.claude/skills/test-first-methodology.md +745 -0
  61. package/assets/worker-configs/tester/CLAUDE.md +141 -52
  62. package/dist/assets/claude-md/docs/conductor.md +139 -0
  63. package/dist/assets/claude-md/docs/initialization.md +2 -2
  64. package/dist/assets/claude-md/docs/workers.md +33 -54
  65. package/dist/assets/claude-md/docs/workflow.md +23 -59
  66. package/dist/assets/claude-md/template.md +198 -756
  67. package/dist/assets/git-hooks/commit-msg.sh +4 -8
  68. package/dist/assets/git-hooks/pre-commit.sh +0 -4
  69. package/dist/assets/git-hooks/pre-push.sh +21 -0
  70. package/dist/assets/github-workflows/CODEOWNERS +21 -2
  71. package/dist/assets/github-workflows/boss-ci.yml +163 -23
  72. package/dist/assets/github-workflows/boss-gates.yml +100 -13
  73. package/dist/assets/template-docs/nextjs-app-turbo.md +412 -61
  74. package/dist/assets/template-loader/gitignore +14 -0
  75. package/dist/assets/worker-configs/architect/.claude/skills/conductor-orchestration.md +635 -0
  76. package/dist/assets/worker-configs/architect/.claude/skills/spec-kit-workflow.md +827 -0
  77. package/dist/assets/worker-configs/architect/CLAUDE.md +99 -38
  78. package/dist/assets/worker-configs/clarifier/.claude/skills/conductor-orchestration.md +635 -0
  79. package/dist/assets/worker-configs/clarifier/.claude/skills/spec-kit-workflow.md +827 -0
  80. package/dist/assets/worker-configs/clarifier/CLAUDE.md +81 -40
  81. package/dist/assets/worker-configs/code-reviewer/.claude/skills/nextjs-turbo-stack.md +1017 -0
  82. package/dist/assets/worker-configs/code-reviewer/.claude/skills/spec-kit-workflow.md +827 -0
  83. package/dist/assets/worker-configs/code-reviewer/.claude/skills/test-first-methodology.md +745 -0
  84. package/dist/assets/worker-configs/code-reviewer/CLAUDE.md +85 -79
  85. package/dist/assets/worker-configs/consolidator/.claude/skills/conductor-orchestration.md +635 -0
  86. package/dist/assets/worker-configs/consolidator/.claude/skills/spec-kit-workflow.md +827 -0
  87. package/dist/assets/worker-configs/consolidator/CLAUDE.md +94 -88
  88. package/dist/assets/worker-configs/developer-backend/.claude/skills/nextjs-turbo-stack.md +1017 -0
  89. package/dist/assets/worker-configs/developer-backend/.claude/skills/spec-kit-workflow.md +827 -0
  90. package/dist/assets/worker-configs/developer-backend/.claude/skills/test-first-methodology.md +745 -0
  91. package/dist/assets/worker-configs/developer-backend/CLAUDE.md +156 -56
  92. package/dist/assets/worker-configs/developer-frontend/.claude/skills/nextjs-turbo-stack.md +1017 -0
  93. package/dist/assets/worker-configs/developer-frontend/.claude/skills/spec-kit-workflow.md +827 -0
  94. package/dist/assets/worker-configs/developer-frontend/.claude/skills/test-first-methodology.md +745 -0
  95. package/dist/assets/worker-configs/developer-frontend/CLAUDE.md +152 -54
  96. package/dist/assets/worker-configs/developer-fullstack/.claude/skills/nextjs-turbo-stack.md +1017 -0
  97. package/dist/assets/worker-configs/developer-fullstack/.claude/skills/spec-kit-workflow.md +827 -0
  98. package/dist/assets/worker-configs/developer-fullstack/.claude/skills/test-first-methodology.md +745 -0
  99. package/dist/assets/worker-configs/developer-fullstack/CLAUDE.md +155 -57
  100. package/dist/assets/worker-configs/devops-engineer/.claude/skills/infrastructure-as-code.md +794 -0
  101. package/dist/assets/worker-configs/devops-engineer/.claude/skills/spec-kit-workflow.md +827 -0
  102. package/dist/assets/worker-configs/devops-engineer/CLAUDE.md +92 -85
  103. package/dist/assets/worker-configs/planner/.claude/skills/conductor-orchestration.md +635 -0
  104. package/dist/assets/worker-configs/planner/.claude/skills/spec-kit-workflow.md +827 -0
  105. package/dist/assets/worker-configs/planner/CLAUDE.md +143 -46
  106. package/dist/assets/worker-configs/product-owner/CLAUDE.md +72 -82
  107. package/dist/assets/worker-configs/reviewer/.claude/skills/conductor-orchestration.md +635 -0
  108. package/dist/assets/worker-configs/reviewer/.claude/skills/spec-kit-workflow.md +827 -0
  109. package/dist/assets/worker-configs/reviewer/CLAUDE.md +108 -50
  110. package/dist/assets/worker-configs/security-engineer/.claude/skills/spec-kit-workflow.md +827 -0
  111. package/dist/assets/worker-configs/security-engineer/CLAUDE.md +83 -83
  112. package/dist/assets/worker-configs/spec-writer/.claude/skills/conductor-orchestration.md +635 -0
  113. package/dist/assets/worker-configs/spec-writer/.claude/skills/spec-kit-workflow.md +827 -0
  114. package/dist/assets/worker-configs/spec-writer/CLAUDE.md +107 -48
  115. package/dist/assets/worker-configs/technical-writer/.claude/skills/nextjs-turbo-stack.md +1017 -0
  116. package/dist/assets/worker-configs/technical-writer/.claude/skills/spec-kit-workflow.md +827 -0
  117. package/dist/assets/worker-configs/technical-writer/CLAUDE.md +91 -81
  118. package/dist/assets/worker-configs/tester/.claude/skills/nextjs-turbo-stack.md +1017 -0
  119. package/dist/assets/worker-configs/tester/.claude/skills/spec-kit-workflow.md +827 -0
  120. package/dist/assets/worker-configs/tester/.claude/skills/test-first-methodology.md +745 -0
  121. package/dist/assets/worker-configs/tester/CLAUDE.md +141 -52
  122. package/dist/commands/__tests__/bootstrap.test.js +51 -51
  123. package/dist/commands/__tests__/bootstrap.test.js.map +1 -1
  124. package/dist/commands/bootstrap.d.ts.map +1 -1
  125. package/dist/commands/bootstrap.js +23 -20
  126. package/dist/commands/bootstrap.js.map +1 -1
  127. package/dist/commands/doctor.js +33 -9
  128. package/dist/commands/doctor.js.map +1 -1
  129. package/dist/commands/templates.d.ts +1 -1
  130. package/dist/commands/templates.d.ts.map +1 -1
  131. package/dist/commands/templates.js +1 -1
  132. package/dist/commands/templates.js.map +1 -1
  133. package/dist/constants.d.ts +2 -2
  134. package/dist/constants.d.ts.map +1 -1
  135. package/dist/constants.js +1 -1
  136. package/dist/constants.js.map +1 -1
  137. package/dist/generators/__tests__/boss-config.test.js +4 -4
  138. package/dist/generators/__tests__/boss-config.test.js.map +1 -1
  139. package/dist/generators/__tests__/claude-folder.test.js +8 -8
  140. package/dist/generators/__tests__/claude-folder.test.js.map +1 -1
  141. package/dist/generators/__tests__/claude-md.test.js +25 -16
  142. package/dist/generators/__tests__/claude-md.test.js.map +1 -1
  143. package/dist/generators/__tests__/container-use-config.test.js +2 -2
  144. package/dist/generators/__tests__/container-use-config.test.js.map +1 -1
  145. package/dist/generators/__tests__/git-hooks.test.js.map +1 -1
  146. package/dist/generators/__tests__/github-workflows.test.js +10 -6
  147. package/dist/generators/__tests__/github-workflows.test.js.map +1 -1
  148. package/dist/generators/__tests__/mcp-config.test.js +6 -6
  149. package/dist/generators/__tests__/project-structure.test.js +2 -2
  150. package/dist/generators/__tests__/quality-gates.test.js +11 -3
  151. package/dist/generators/__tests__/quality-gates.test.js.map +1 -1
  152. package/dist/generators/__tests__/specify-structure.test.js +1 -1
  153. package/dist/generators/__tests__/specify-structure.test.js.map +1 -1
  154. package/dist/generators/__tests__/template-docs.test.js +1 -1
  155. package/dist/generators/__tests__/template-docs.test.js.map +1 -1
  156. package/dist/generators/__tests__/template-loader.test.js +209 -59
  157. package/dist/generators/__tests__/template-loader.test.js.map +1 -1
  158. package/dist/generators/__tests__/worker-configs.test.js +7 -7
  159. package/dist/generators/boss-config.d.ts.map +1 -1
  160. package/dist/generators/boss-config.js +46 -51
  161. package/dist/generators/boss-config.js.map +1 -1
  162. package/dist/generators/claude-folder.d.ts +1 -1
  163. package/dist/generators/claude-folder.d.ts.map +1 -1
  164. package/dist/generators/claude-folder.js +5 -5
  165. package/dist/generators/claude-folder.js.map +1 -1
  166. package/dist/generators/claude-md.d.ts.map +1 -1
  167. package/dist/generators/claude-md.js +83 -42
  168. package/dist/generators/claude-md.js.map +1 -1
  169. package/dist/generators/container-use-config.d.ts.map +1 -1
  170. package/dist/generators/container-use-config.js +5 -7
  171. package/dist/generators/container-use-config.js.map +1 -1
  172. package/dist/generators/docker-compose.d.ts.map +1 -1
  173. package/dist/generators/docker-compose.js.map +1 -1
  174. package/dist/generators/git-hooks.d.ts.map +1 -1
  175. package/dist/generators/git-hooks.js +2 -2
  176. package/dist/generators/git-hooks.js.map +1 -1
  177. package/dist/generators/github-workflows.js +3 -3
  178. package/dist/generators/github-workflows.js.map +1 -1
  179. package/dist/generators/mcp-config.d.ts.map +1 -1
  180. package/dist/generators/mcp-config.js +18 -16
  181. package/dist/generators/mcp-config.js.map +1 -1
  182. package/dist/generators/project-structure.d.ts +1 -1
  183. package/dist/generators/project-structure.d.ts.map +1 -1
  184. package/dist/generators/project-structure.js +2 -2
  185. package/dist/generators/project-structure.js.map +1 -1
  186. package/dist/generators/quality-gates.d.ts.map +1 -1
  187. package/dist/generators/quality-gates.js +13 -5
  188. package/dist/generators/quality-gates.js.map +1 -1
  189. package/dist/generators/specify-structure.d.ts.map +1 -1
  190. package/dist/generators/specify-structure.js +1 -2
  191. package/dist/generators/specify-structure.js.map +1 -1
  192. package/dist/generators/template-docs.js +2 -2
  193. package/dist/generators/template-docs.js.map +1 -1
  194. package/dist/generators/template-loader.d.ts.map +1 -1
  195. package/dist/generators/template-loader.js +259 -143
  196. package/dist/generators/template-loader.js.map +1 -1
  197. package/dist/generators/worker-configs.d.ts.map +1 -1
  198. package/dist/generators/worker-configs.js +7 -5
  199. package/dist/generators/worker-configs.js.map +1 -1
  200. package/dist/index.js +2 -2
  201. package/dist/index.js.map +1 -1
  202. package/dist/presets/__tests__/quality-presets.test.js +9 -5
  203. package/dist/presets/__tests__/quality-presets.test.js.map +1 -1
  204. package/dist/presets/quality-presets.d.ts.map +1 -1
  205. package/dist/presets/quality-presets.js +11 -11
  206. package/dist/presets/quality-presets.js.map +1 -1
  207. package/dist/types/index.d.ts +1 -0
  208. package/dist/types/index.d.ts.map +1 -1
  209. package/dist/types/index.js +2 -1
  210. package/dist/types/index.js.map +1 -1
  211. package/dist/types/internal.d.ts +69 -0
  212. package/dist/types/internal.d.ts.map +1 -0
  213. package/dist/types/internal.js +4 -0
  214. package/dist/types/internal.js.map +1 -0
  215. package/dist/utils/__tests__/file-system.test.js +1 -1
  216. package/dist/utils/__tests__/file-system.test.js.map +1 -1
  217. package/dist/utils/__tests__/git.test.js.map +1 -1
  218. package/dist/utils/__tests__/template-loader.test.js.map +1 -1
  219. package/dist/utils/__tests__/validators.test.js +1 -1
  220. package/dist/utils/__tests__/validators.test.js.map +1 -1
  221. package/dist/utils/file-system.d.ts.map +1 -1
  222. package/dist/utils/file-system.js +1 -4
  223. package/dist/utils/file-system.js.map +1 -1
  224. package/dist/utils/git.d.ts.map +1 -1
  225. package/dist/utils/git.js +17 -11
  226. package/dist/utils/git.js.map +1 -1
  227. package/dist/utils/prompts.d.ts.map +1 -1
  228. package/dist/utils/prompts.js +51 -39
  229. package/dist/utils/prompts.js.map +1 -1
  230. package/dist/utils/template-loader.d.ts +2 -1
  231. package/dist/utils/template-loader.d.ts.map +1 -1
  232. package/dist/utils/template-loader.js +11 -5
  233. package/dist/utils/template-loader.js.map +1 -1
  234. package/dist/utils/validators.d.ts.map +1 -1
  235. package/dist/utils/validators.js +16 -4
  236. package/dist/utils/validators.js.map +1 -1
  237. package/package.json +2 -2
  238. package/templates/nextjs-turbo-monorepo/base/README.md +167 -0
  239. package/templates/nextjs-turbo-monorepo/base/_gitignore +71 -0
  240. package/templates/nextjs-turbo-monorepo/base/_npmrc +12 -0
  241. package/templates/nextjs-turbo-monorepo/base/apps/admin/app/layout.tsx +19 -0
  242. package/templates/nextjs-turbo-monorepo/base/apps/admin/app/page.tsx +34 -0
  243. package/templates/nextjs-turbo-monorepo/base/apps/admin/next.config.ts +20 -0
  244. package/templates/nextjs-turbo-monorepo/base/apps/admin/package.json +42 -0
  245. package/templates/nextjs-turbo-monorepo/base/apps/admin/tsconfig.json +16 -0
  246. package/templates/nextjs-turbo-monorepo/base/apps/web/app/globals.css +59 -0
  247. package/templates/nextjs-turbo-monorepo/base/apps/web/app/layout.tsx +20 -0
  248. package/templates/nextjs-turbo-monorepo/base/apps/web/app/page.tsx +17 -0
  249. package/templates/nextjs-turbo-monorepo/base/apps/web/components.json +18 -0
  250. package/templates/nextjs-turbo-monorepo/base/apps/web/env.ts +45 -0
  251. package/templates/nextjs-turbo-monorepo/base/apps/web/next.config.ts +38 -0
  252. package/templates/nextjs-turbo-monorepo/base/apps/web/package.json +45 -0
  253. package/templates/nextjs-turbo-monorepo/base/apps/web/tsconfig.json +19 -0
  254. package/templates/nextjs-turbo-monorepo/base/apps/web/vitest.config.ts +28 -0
  255. package/templates/nextjs-turbo-monorepo/base/docker/Dockerfile.admin +76 -0
  256. package/templates/nextjs-turbo-monorepo/base/docker/Dockerfile.web +76 -0
  257. package/templates/nextjs-turbo-monorepo/base/docker/_dockerignore +48 -0
  258. package/templates/nextjs-turbo-monorepo/base/docker/docker-compose.yml +39 -0
  259. package/templates/nextjs-turbo-monorepo/base/package.json +62 -0
  260. package/templates/nextjs-turbo-monorepo/base/packages/auth/package.json +26 -0
  261. package/templates/nextjs-turbo-monorepo/base/packages/auth/src/config.ts +88 -0
  262. package/templates/nextjs-turbo-monorepo/base/packages/auth/src/index.ts +11 -0
  263. package/templates/nextjs-turbo-monorepo/base/packages/auth/src/types.ts +28 -0
  264. package/templates/nextjs-turbo-monorepo/base/packages/auth/tsconfig.json +9 -0
  265. package/templates/nextjs-turbo-monorepo/base/packages/config/eslint/library.js +35 -0
  266. package/templates/nextjs-turbo-monorepo/base/packages/config/eslint/nextjs.js +51 -0
  267. package/templates/nextjs-turbo-monorepo/base/packages/config/eslint/react-library.js +45 -0
  268. package/templates/nextjs-turbo-monorepo/base/packages/config/package.json +19 -0
  269. package/templates/nextjs-turbo-monorepo/base/packages/config/tailwind/base.ts +50 -0
  270. package/templates/nextjs-turbo-monorepo/base/packages/config/typescript/base.json +23 -0
  271. package/templates/nextjs-turbo-monorepo/base/packages/config/typescript/nextjs.json +17 -0
  272. package/templates/nextjs-turbo-monorepo/base/packages/config/typescript/react-library.json +11 -0
  273. package/templates/nextjs-turbo-monorepo/base/packages/database/package.json +32 -0
  274. package/templates/nextjs-turbo-monorepo/base/packages/database/prisma/schema.prisma +84 -0
  275. package/templates/nextjs-turbo-monorepo/base/packages/database/src/client.ts +16 -0
  276. package/templates/nextjs-turbo-monorepo/base/packages/database/src/index.ts +2 -0
  277. package/templates/nextjs-turbo-monorepo/base/packages/database/tsconfig.json +9 -0
  278. package/templates/nextjs-turbo-monorepo/base/packages/trpc/package.json +32 -0
  279. package/templates/nextjs-turbo-monorepo/base/packages/trpc/src/context.ts +17 -0
  280. package/templates/nextjs-turbo-monorepo/base/packages/trpc/src/index.ts +3 -0
  281. package/templates/nextjs-turbo-monorepo/base/packages/trpc/src/init.ts +34 -0
  282. package/templates/nextjs-turbo-monorepo/base/packages/trpc/src/routers/_app.ts +8 -0
  283. package/templates/nextjs-turbo-monorepo/base/packages/trpc/src/routers/user.ts +36 -0
  284. package/templates/nextjs-turbo-monorepo/base/packages/trpc/tsconfig.json +9 -0
  285. package/templates/nextjs-turbo-monorepo/base/packages/ui/.storybook/main.ts +19 -0
  286. package/templates/nextjs-turbo-monorepo/base/packages/ui/.storybook/preview.ts +15 -0
  287. package/templates/nextjs-turbo-monorepo/base/packages/ui/components.json +17 -0
  288. package/templates/nextjs-turbo-monorepo/base/packages/ui/package.json +62 -0
  289. package/templates/nextjs-turbo-monorepo/base/packages/ui/postcss.config.js +6 -0
  290. package/templates/nextjs-turbo-monorepo/base/packages/ui/src/components/index.ts +2 -0
  291. package/templates/nextjs-turbo-monorepo/base/packages/ui/src/components/ui/button.tsx +57 -0
  292. package/templates/nextjs-turbo-monorepo/base/packages/ui/src/components/ui/card.tsx +76 -0
  293. package/templates/nextjs-turbo-monorepo/base/packages/ui/src/hooks/index.ts +2 -0
  294. package/templates/nextjs-turbo-monorepo/base/packages/ui/src/lib/utils.ts +6 -0
  295. package/templates/nextjs-turbo-monorepo/base/packages/ui/src/styles/globals.css +59 -0
  296. package/templates/nextjs-turbo-monorepo/base/packages/ui/tailwind.config.ts +15 -0
  297. package/templates/nextjs-turbo-monorepo/base/packages/ui/tsconfig.json +12 -0
  298. package/templates/nextjs-turbo-monorepo/base/packages/ui/vitest.config.ts +28 -0
  299. package/templates/nextjs-turbo-monorepo/base/packages/utils/package.json +24 -0
  300. package/templates/nextjs-turbo-monorepo/base/packages/utils/src/date.ts +117 -0
  301. package/templates/nextjs-turbo-monorepo/base/packages/utils/src/index.ts +2 -0
  302. package/templates/nextjs-turbo-monorepo/base/packages/utils/src/string.ts +59 -0
  303. package/templates/nextjs-turbo-monorepo/base/packages/utils/tsconfig.json +9 -0
  304. package/templates/nextjs-turbo-monorepo/base/packages/utils/vitest.config.ts +13 -0
  305. package/templates/nextjs-turbo-monorepo/base/pnpm-workspace.yaml +3 -0
  306. package/templates/nextjs-turbo-monorepo/base/tsconfig.json +19 -0
  307. package/templates/nextjs-turbo-monorepo/base/turbo.json +47 -0
  308. package/templates/nextjs-turbo-monorepo/extras/boss-cli/assets/claude-md/template.md +0 -0
  309. package/templates/nextjs-turbo-monorepo/extras/boss-cli/assets/github-workflows/CODEOWNERS +0 -0
  310. package/templates/nextjs-turbo-monorepo/extras/boss-cli/assets/github-workflows/boss-ci.yml +139 -0
  311. package/templates/nextjs-turbo-monorepo/extras/boss-cli/assets/github-workflows/boss-gates.yml +116 -0
  312. package/templates/nextjs-turbo-monorepo/extras/config/kamal/_env +18 -0
  313. package/templates/nextjs-turbo-monorepo/extras/config/kamal/deploy.yml +92 -0
  314. package/templates/nextjs-turbo-monorepo/extras/scripts/deploy.sh +38 -0
  315. package/templates/nextjs-turbo-monorepo/extras/scripts/setup-db.sh +29 -0
  316. package/assets/claude-md/docs/container-use.md +0 -140
  317. package/dist/assets/claude-md/docs/container-use.md +0 -140
@@ -1,17 +1,14 @@
1
- #!/bin/sh
2
1
  # Commit message validation hook
3
2
  # Strictly enforces Conventional Commits v1.0.0 specification
4
3
  # See: https://www.conventionalcommits.org/en/v1.0.0/
5
4
 
6
- . "$(dirname "$0")/_/husky.sh"
7
-
8
5
  commit_msg=$(cat "$1")
9
6
 
10
7
  # Extract the first line (subject line)
11
8
  first_line=$(echo "$commit_msg" | head -n1)
12
9
 
13
10
  # Validate format: <type>[optional scope][optional !]: <description>
14
- # According to spec: "Commits MUST be prefixed with a type, which consists of a noun,
11
+ # According to spec: "Commits MUST be prefixed with a type, which consists of a noun,
15
12
  # feat, fix, etc., followed by the OPTIONAL scope, OPTIONAL !, and REQUIRED terminal colon and space."
16
13
 
17
14
  # Pattern breakdown:
@@ -20,7 +17,7 @@ first_line=$(echo "$commit_msg" | head -n1)
20
17
  # - Optional !: for breaking changes
21
18
  # - Required: : (colon) followed by space
22
19
  # - Description: rest of the line (at least one character)
23
- if ! echo "$first_line" | grep -qE "^[a-z]+(\\([a-z0-9-]+\\))?(!)?: .+"; then
20
+ if ! echo "$first_line" | grep -qE "^[a-z]+(\([a-z0-9-]+\))?(!)?: .+"; then
24
21
  echo "❌ Invalid commit message format!"
25
22
  echo ""
26
23
  echo "Commit messages MUST follow Conventional Commits v1.0.0 specification:"
@@ -62,7 +59,7 @@ if ! echo "$first_line" | grep -qE "^[a-z]+(\\([a-z0-9-]+\\))?(!)?: .+"; then
62
59
  fi
63
60
 
64
61
  # Validate minimum description length (at least 3 characters after colon and space)
65
- description=$(echo "$first_line" | sed -E 's/^[a-z]+(\\([a-z0-9-]+\\))?(!)?: //')
62
+ description=$(echo "$first_line" | sed -E 's/^[a-z]+(\([a-z0-9-]+\))?(!)?: //')
66
63
  if [ ${#description} -lt 3 ]; then
67
64
  echo "❌ Commit description too short (minimum 3 characters)"
68
65
  echo ""
@@ -85,7 +82,7 @@ if [ ${#first_line} -gt 100 ]; then
85
82
  fi
86
83
 
87
84
  # Validate that type is lowercase (spec says case insensitive, but lowercase is conventional)
88
- type=$(echo "$first_line" | sed -E 's/^([a-z]+).*/\\1/')
85
+ type=$(echo "$first_line" | sed -E 's/^([a-z]+).*/\1/')
89
86
  if ! echo "$type" | grep -qE '^[a-z]+$'; then
90
87
  echo "⚠️ Warning: Commit type should be lowercase"
91
88
  echo " Found: '$type'"
@@ -99,4 +96,3 @@ if echo "$commit_msg" | grep -qiE "^BREAKING CHANGE:"; then
99
96
  fi
100
97
 
101
98
  echo "✅ Commit message follows Conventional Commits specification"
102
-
@@ -1,6 +1,2 @@
1
- #!/usr/bin/env sh
2
- . "$(dirname -- "$0")/_/husky.sh"
3
-
4
1
  # Run pre-commit checks script
5
2
  bash scripts/pre-commit-check.sh
6
-
@@ -72,6 +72,27 @@ if ! pnpm test:unit > /dev/null 2>&1; then
72
72
  exit 1
73
73
  fi
74
74
 
75
+ # Run integration tests (to catch template/bootstrap issues before CI)
76
+ # Skip for first empty push to main
77
+ if [ "$FIRST_PUSH_TO_MAIN" != "true" ]; then
78
+ echo " ✓ Running integration tests..."
79
+ if ! pnpm test:integration > /dev/null 2>&1; then
80
+ echo "❌ Integration tests failing. Fix them before pushing."
81
+ pnpm test:integration
82
+ exit 1
83
+ fi
84
+
85
+ # Run E2E tests if they exist
86
+ if grep -q "test:e2e" package.json 2>/dev/null; then
87
+ echo " ✓ Running E2E tests..."
88
+ if ! pnpm test:e2e > /dev/null 2>&1; then
89
+ echo "❌ E2E tests failing. Fix them before pushing."
90
+ pnpm test:e2e
91
+ exit 1
92
+ fi
93
+ fi
94
+ fi
95
+
75
96
  # Check for unused exports (warn only, not blocking)
76
97
  echo " ✓ Checking for unused exports..."
77
98
  if ! pnpm check:unused > /dev/null 2>&1; then
@@ -1,3 +1,22 @@
1
- # BOSS Project Code Owners
2
- * @${githubUser}
1
+ # CODEOWNERS file for {{githubUser}}
3
2
 
3
+ # Default owners for everything in the repo
4
+ * @{{githubUser}}
5
+
6
+ # Apps
7
+ /apps/web/ @{{githubUser}}
8
+ /apps/admin/ @{{githubUser}}
9
+
10
+ # Packages
11
+ /packages/ui/ @{{githubUser}}
12
+ /packages/database/ @{{githubUser}}
13
+ /packages/trpc/ @{{githubUser}}
14
+ /packages/auth/ @{{githubUser}}
15
+ /packages/config/ @{{githubUser}}
16
+ /packages/utils/ @{{githubUser}}
17
+
18
+ # Configuration
19
+ /docker/ @{{githubUser}}
20
+ /.github/ @{{githubUser}}
21
+ /turbo.json @{{githubUser}}
22
+ /pnpm-workspace.yaml @{{githubUser}}
@@ -1,40 +1,180 @@
1
- name: BOSS CI
1
+ name: CI
2
2
 
3
3
  on:
4
4
  push:
5
- branches: [main, develop]
5
+ branches: [main, develop, 'feature/**']
6
6
  pull_request:
7
7
  branches: [main, develop]
8
8
 
9
+ concurrency:
10
+ group: ${{ github.workflow }}-${{ github.ref }}
11
+ cancel-in-progress: true
12
+
9
13
  jobs:
10
- ci:
14
+ lint-and-typecheck:
15
+ name: Lint & Type Check
11
16
  runs-on: ubuntu-latest
17
+
12
18
  steps:
13
- - uses: actions/checkout@v4
14
-
15
- - name: Setup Node.js
16
- uses: actions/setup-node@v4
19
+ - name: Checkout
20
+ uses: actions/checkout@v4
17
21
  with:
18
- node-version: '22'
19
-
22
+ fetch-depth: 0
23
+
20
24
  - name: Setup pnpm
21
- uses: pnpm/action-setup@v2
25
+ uses: pnpm/action-setup@v4
26
+ with:
27
+ version: 9
28
+
29
+ - name: Setup Node.js
30
+ uses: actions/setup-node@v4
22
31
  with:
23
- version: latest
24
-
32
+ node-version: 20
33
+ cache: 'pnpm'
34
+
25
35
  - name: Install dependencies
26
36
  run: pnpm install --frozen-lockfile
27
-
28
- - name: Type check
29
- run: pnpm typecheck
30
-
37
+
38
+ - name: Generate Prisma Client
39
+ run: pnpm db:generate
40
+
31
41
  - name: Lint
32
42
  run: pnpm lint
33
-
34
- - name: Test
35
- run: pnpm test
36
-
37
- - name: Coverage
38
- run: pnpm test:coverage
39
- continue-on-error: true
40
43
 
44
+ - name: Type Check
45
+ run: pnpm typecheck
46
+
47
+ test:
48
+ name: Test
49
+ runs-on: ubuntu-latest
50
+
51
+ services:
52
+ postgres:
53
+ image: postgres:16-alpine
54
+ env:
55
+ POSTGRES_USER: postgres
56
+ POSTGRES_PASSWORD: postgres
57
+ POSTGRES_DB: test_db
58
+ ports:
59
+ - 5432:5432
60
+ options: >-
61
+ --health-cmd pg_isready
62
+ --health-interval 10s
63
+ --health-timeout 5s
64
+ --health-retries 5
65
+
66
+ steps:
67
+ - name: Checkout
68
+ uses: actions/checkout@v4
69
+ with:
70
+ fetch-depth: 0
71
+
72
+ - name: Setup pnpm
73
+ uses: pnpm/action-setup@v4
74
+ with:
75
+ version: 9
76
+
77
+ - name: Setup Node.js
78
+ uses: actions/setup-node@v4
79
+ with:
80
+ node-version: 20
81
+ cache: 'pnpm'
82
+
83
+ - name: Install dependencies
84
+ run: pnpm install --frozen-lockfile
85
+
86
+ - name: Generate Prisma Client
87
+ run: pnpm db:generate
88
+
89
+ - name: Run Database Migrations
90
+ run: pnpm --filter database prisma migrate deploy
91
+ env:
92
+ DATABASE_URL: postgresql://postgres:postgres@localhost:5432/test_db
93
+
94
+ - name: Run Tests
95
+ run: pnpm test -- --coverage
96
+ env:
97
+ DATABASE_URL: postgresql://postgres:postgres@localhost:5432/test_db
98
+
99
+ - name: Upload Coverage
100
+ uses: codecov/codecov-action@v4
101
+ if: always()
102
+ with:
103
+ files: ./coverage/coverage-final.json
104
+ flags: unittests
105
+ name: codecov-umbrella
106
+
107
+ build:
108
+ name: Build (${{ matrix.app }})
109
+ runs-on: ubuntu-latest
110
+
111
+ strategy:
112
+ matrix:
113
+ app: [web, admin]
114
+
115
+ steps:
116
+ - name: Checkout
117
+ uses: actions/checkout@v4
118
+ with:
119
+ fetch-depth: 0
120
+
121
+ - name: Setup pnpm
122
+ uses: pnpm/action-setup@v4
123
+ with:
124
+ version: 9
125
+
126
+ - name: Setup Node.js
127
+ uses: actions/setup-node@v4
128
+ with:
129
+ node-version: 20
130
+ cache: 'pnpm'
131
+
132
+ - name: Install dependencies
133
+ run: pnpm install --frozen-lockfile
134
+
135
+ - name: Generate Prisma Client
136
+ run: pnpm db:generate
137
+
138
+ - name: Build ${{ matrix.app }}
139
+ run: pnpm --filter ${{ matrix.app }} build
140
+ env:
141
+ NEXT_TELEMETRY_DISABLED: 1
142
+
143
+ - name: Upload build artifacts
144
+ uses: actions/upload-artifact@v4
145
+ with:
146
+ name: ${{ matrix.app }}-build
147
+ path: apps/${{ matrix.app }}/.next
148
+ retention-days: 1
149
+
150
+ storybook:
151
+ name: Build Storybook
152
+ runs-on: ubuntu-latest
153
+
154
+ steps:
155
+ - name: Checkout
156
+ uses: actions/checkout@v4
157
+
158
+ - name: Setup pnpm
159
+ uses: pnpm/action-setup@v4
160
+ with:
161
+ version: 9
162
+
163
+ - name: Setup Node.js
164
+ uses: actions/setup-node@v4
165
+ with:
166
+ node-version: 20
167
+ cache: 'pnpm'
168
+
169
+ - name: Install dependencies
170
+ run: pnpm install --frozen-lockfile
171
+
172
+ - name: Build Storybook
173
+ run: pnpm --filter ui build-storybook
174
+
175
+ - name: Upload Storybook
176
+ uses: actions/upload-artifact@v4
177
+ with:
178
+ name: storybook-static
179
+ path: packages/ui/storybook-static
180
+ retention-days: 7
@@ -1,28 +1,115 @@
1
- name: BOSS Quality Gates
1
+ name: Quality Gates
2
2
 
3
3
  on:
4
4
  pull_request:
5
- types: [opened, synchronize, reopened]
5
+ branches: [main, develop]
6
6
 
7
7
  jobs:
8
- quality-gates:
8
+ security:
9
+ name: Security Audit
9
10
  runs-on: ubuntu-latest
11
+
10
12
  steps:
11
- - uses: actions/checkout@v4
12
-
13
+ - name: Checkout
14
+ uses: actions/checkout@v4
15
+
16
+ - name: Setup pnpm
17
+ uses: pnpm/action-setup@v4
18
+ with:
19
+ version: 9
20
+
13
21
  - name: Setup Node.js
14
22
  uses: actions/setup-node@v4
15
23
  with:
16
- node-version: '22'
17
-
24
+ node-version: 20
25
+ cache: 'pnpm'
26
+
27
+ - name: Install dependencies
28
+ run: pnpm install --frozen-lockfile
29
+
30
+ - name: Run pnpm audit
31
+ run: pnpm audit --audit-level=moderate
32
+ continue-on-error: true
33
+
34
+ - name: Check for secrets
35
+ uses: trufflesecurity/trufflehog@main
36
+ with:
37
+ path: ./
38
+ base: ${{ github.event.repository.default_branch }}
39
+ head: HEAD
40
+
41
+ coverage:
42
+ name: Coverage Check
43
+ runs-on: ubuntu-latest
44
+
45
+ services:
46
+ postgres:
47
+ image: postgres:16-alpine
48
+ env:
49
+ POSTGRES_USER: postgres
50
+ POSTGRES_PASSWORD: postgres
51
+ POSTGRES_DB: test_db
52
+ ports:
53
+ - 5432:5432
54
+ options: >-
55
+ --health-cmd pg_isready
56
+ --health-interval 10s
57
+ --health-timeout 5s
58
+ --health-retries 5
59
+
60
+ steps:
61
+ - name: Checkout
62
+ uses: actions/checkout@v4
63
+
18
64
  - name: Setup pnpm
19
- uses: pnpm/action-setup@v2
65
+ uses: pnpm/action-setup@v4
66
+ with:
67
+ version: 9
68
+
69
+ - name: Setup Node.js
70
+ uses: actions/setup-node@v4
20
71
  with:
21
- version: latest
22
-
72
+ node-version: 20
73
+ cache: 'pnpm'
74
+
23
75
  - name: Install dependencies
24
76
  run: pnpm install --frozen-lockfile
25
-
26
- - name: Run quality gates
27
- run: pnpm test:gates
28
77
 
78
+ - name: Generate Prisma Client
79
+ run: pnpm db:generate
80
+
81
+ - name: Run Tests with Coverage
82
+ run: pnpm test -- --coverage
83
+ env:
84
+ DATABASE_URL: postgresql://postgres:postgres@localhost:5432/test_db
85
+
86
+ - name: Check Coverage Thresholds
87
+ uses: codecov/codecov-action@v4
88
+ with:
89
+ files: ./coverage/coverage-final.json
90
+ fail_ci_if_error: true
91
+
92
+ dependencies:
93
+ name: Dependency Check
94
+ runs-on: ubuntu-latest
95
+
96
+ steps:
97
+ - name: Checkout
98
+ uses: actions/checkout@v4
99
+
100
+ - name: Setup pnpm
101
+ uses: pnpm/action-setup@v4
102
+ with:
103
+ version: 9
104
+
105
+ - name: Setup Node.js
106
+ uses: actions/setup-node@v4
107
+ with:
108
+ node-version: 20
109
+ cache: 'pnpm'
110
+
111
+ - name: Check for outdated dependencies
112
+ run: pnpm outdated || true
113
+
114
+ - name: Check for duplicate dependencies
115
+ run: pnpm dedupe --check || true