@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.
- package/README.md +0 -1
- package/assets/claude-md/docs/conductor.md +139 -0
- package/assets/claude-md/docs/initialization.md +2 -2
- package/assets/claude-md/docs/workers.md +33 -54
- package/assets/claude-md/docs/workflow.md +23 -59
- package/assets/claude-md/template.md +198 -756
- package/assets/git-hooks/commit-msg.sh +4 -8
- package/assets/git-hooks/pre-commit.sh +0 -4
- package/assets/git-hooks/pre-push.sh +21 -0
- package/assets/github-workflows/CODEOWNERS +21 -2
- package/assets/github-workflows/boss-ci.yml +163 -23
- package/assets/github-workflows/boss-gates.yml +100 -13
- package/assets/template-docs/nextjs-app-turbo.md +412 -61
- package/assets/template-loader/gitignore +14 -0
- package/assets/worker-configs/architect/.claude/skills/conductor-orchestration.md +635 -0
- package/assets/worker-configs/architect/.claude/skills/spec-kit-workflow.md +827 -0
- package/assets/worker-configs/architect/CLAUDE.md +99 -38
- package/assets/worker-configs/clarifier/.claude/skills/conductor-orchestration.md +635 -0
- package/assets/worker-configs/clarifier/.claude/skills/spec-kit-workflow.md +827 -0
- package/assets/worker-configs/clarifier/CLAUDE.md +81 -40
- package/assets/worker-configs/code-reviewer/.claude/skills/nextjs-turbo-stack.md +1017 -0
- package/assets/worker-configs/code-reviewer/.claude/skills/spec-kit-workflow.md +827 -0
- package/assets/worker-configs/code-reviewer/.claude/skills/test-first-methodology.md +745 -0
- package/assets/worker-configs/code-reviewer/CLAUDE.md +85 -79
- package/assets/worker-configs/consolidator/.claude/skills/conductor-orchestration.md +635 -0
- package/assets/worker-configs/consolidator/.claude/skills/spec-kit-workflow.md +827 -0
- package/assets/worker-configs/consolidator/CLAUDE.md +94 -88
- package/assets/worker-configs/developer-backend/.claude/skills/nextjs-turbo-stack.md +1017 -0
- package/assets/worker-configs/developer-backend/.claude/skills/spec-kit-workflow.md +827 -0
- package/assets/worker-configs/developer-backend/.claude/skills/test-first-methodology.md +745 -0
- package/assets/worker-configs/developer-backend/CLAUDE.md +156 -56
- package/assets/worker-configs/developer-frontend/.claude/skills/nextjs-turbo-stack.md +1017 -0
- package/assets/worker-configs/developer-frontend/.claude/skills/spec-kit-workflow.md +827 -0
- package/assets/worker-configs/developer-frontend/.claude/skills/test-first-methodology.md +745 -0
- package/assets/worker-configs/developer-frontend/CLAUDE.md +152 -54
- package/assets/worker-configs/developer-fullstack/.claude/skills/nextjs-turbo-stack.md +1017 -0
- package/assets/worker-configs/developer-fullstack/.claude/skills/spec-kit-workflow.md +827 -0
- package/assets/worker-configs/developer-fullstack/.claude/skills/test-first-methodology.md +745 -0
- package/assets/worker-configs/developer-fullstack/CLAUDE.md +155 -57
- package/assets/worker-configs/devops-engineer/.claude/skills/infrastructure-as-code.md +794 -0
- package/assets/worker-configs/devops-engineer/.claude/skills/spec-kit-workflow.md +827 -0
- package/assets/worker-configs/devops-engineer/CLAUDE.md +92 -85
- package/assets/worker-configs/planner/.claude/skills/conductor-orchestration.md +635 -0
- package/assets/worker-configs/planner/.claude/skills/spec-kit-workflow.md +827 -0
- package/assets/worker-configs/planner/CLAUDE.md +143 -46
- package/assets/worker-configs/product-owner/CLAUDE.md +72 -82
- package/assets/worker-configs/reviewer/.claude/skills/conductor-orchestration.md +635 -0
- package/assets/worker-configs/reviewer/.claude/skills/spec-kit-workflow.md +827 -0
- package/assets/worker-configs/reviewer/CLAUDE.md +108 -50
- package/assets/worker-configs/security-engineer/.claude/skills/spec-kit-workflow.md +827 -0
- package/assets/worker-configs/security-engineer/CLAUDE.md +83 -83
- package/assets/worker-configs/spec-writer/.claude/skills/conductor-orchestration.md +635 -0
- package/assets/worker-configs/spec-writer/.claude/skills/spec-kit-workflow.md +827 -0
- package/assets/worker-configs/spec-writer/CLAUDE.md +107 -48
- package/assets/worker-configs/technical-writer/.claude/skills/nextjs-turbo-stack.md +1017 -0
- package/assets/worker-configs/technical-writer/.claude/skills/spec-kit-workflow.md +827 -0
- package/assets/worker-configs/technical-writer/CLAUDE.md +91 -81
- package/assets/worker-configs/tester/.claude/skills/nextjs-turbo-stack.md +1017 -0
- package/assets/worker-configs/tester/.claude/skills/spec-kit-workflow.md +827 -0
- package/assets/worker-configs/tester/.claude/skills/test-first-methodology.md +745 -0
- package/assets/worker-configs/tester/CLAUDE.md +141 -52
- package/dist/assets/claude-md/docs/conductor.md +139 -0
- package/dist/assets/claude-md/docs/initialization.md +2 -2
- package/dist/assets/claude-md/docs/workers.md +33 -54
- package/dist/assets/claude-md/docs/workflow.md +23 -59
- package/dist/assets/claude-md/template.md +198 -756
- package/dist/assets/git-hooks/commit-msg.sh +4 -8
- package/dist/assets/git-hooks/pre-commit.sh +0 -4
- package/dist/assets/git-hooks/pre-push.sh +21 -0
- package/dist/assets/github-workflows/CODEOWNERS +21 -2
- package/dist/assets/github-workflows/boss-ci.yml +163 -23
- package/dist/assets/github-workflows/boss-gates.yml +100 -13
- package/dist/assets/template-docs/nextjs-app-turbo.md +412 -61
- package/dist/assets/template-loader/gitignore +14 -0
- package/dist/assets/worker-configs/architect/.claude/skills/conductor-orchestration.md +635 -0
- package/dist/assets/worker-configs/architect/.claude/skills/spec-kit-workflow.md +827 -0
- package/dist/assets/worker-configs/architect/CLAUDE.md +99 -38
- package/dist/assets/worker-configs/clarifier/.claude/skills/conductor-orchestration.md +635 -0
- package/dist/assets/worker-configs/clarifier/.claude/skills/spec-kit-workflow.md +827 -0
- package/dist/assets/worker-configs/clarifier/CLAUDE.md +81 -40
- package/dist/assets/worker-configs/code-reviewer/.claude/skills/nextjs-turbo-stack.md +1017 -0
- package/dist/assets/worker-configs/code-reviewer/.claude/skills/spec-kit-workflow.md +827 -0
- package/dist/assets/worker-configs/code-reviewer/.claude/skills/test-first-methodology.md +745 -0
- package/dist/assets/worker-configs/code-reviewer/CLAUDE.md +85 -79
- package/dist/assets/worker-configs/consolidator/.claude/skills/conductor-orchestration.md +635 -0
- package/dist/assets/worker-configs/consolidator/.claude/skills/spec-kit-workflow.md +827 -0
- package/dist/assets/worker-configs/consolidator/CLAUDE.md +94 -88
- package/dist/assets/worker-configs/developer-backend/.claude/skills/nextjs-turbo-stack.md +1017 -0
- package/dist/assets/worker-configs/developer-backend/.claude/skills/spec-kit-workflow.md +827 -0
- package/dist/assets/worker-configs/developer-backend/.claude/skills/test-first-methodology.md +745 -0
- package/dist/assets/worker-configs/developer-backend/CLAUDE.md +156 -56
- package/dist/assets/worker-configs/developer-frontend/.claude/skills/nextjs-turbo-stack.md +1017 -0
- package/dist/assets/worker-configs/developer-frontend/.claude/skills/spec-kit-workflow.md +827 -0
- package/dist/assets/worker-configs/developer-frontend/.claude/skills/test-first-methodology.md +745 -0
- package/dist/assets/worker-configs/developer-frontend/CLAUDE.md +152 -54
- package/dist/assets/worker-configs/developer-fullstack/.claude/skills/nextjs-turbo-stack.md +1017 -0
- package/dist/assets/worker-configs/developer-fullstack/.claude/skills/spec-kit-workflow.md +827 -0
- package/dist/assets/worker-configs/developer-fullstack/.claude/skills/test-first-methodology.md +745 -0
- package/dist/assets/worker-configs/developer-fullstack/CLAUDE.md +155 -57
- package/dist/assets/worker-configs/devops-engineer/.claude/skills/infrastructure-as-code.md +794 -0
- package/dist/assets/worker-configs/devops-engineer/.claude/skills/spec-kit-workflow.md +827 -0
- package/dist/assets/worker-configs/devops-engineer/CLAUDE.md +92 -85
- package/dist/assets/worker-configs/planner/.claude/skills/conductor-orchestration.md +635 -0
- package/dist/assets/worker-configs/planner/.claude/skills/spec-kit-workflow.md +827 -0
- package/dist/assets/worker-configs/planner/CLAUDE.md +143 -46
- package/dist/assets/worker-configs/product-owner/CLAUDE.md +72 -82
- package/dist/assets/worker-configs/reviewer/.claude/skills/conductor-orchestration.md +635 -0
- package/dist/assets/worker-configs/reviewer/.claude/skills/spec-kit-workflow.md +827 -0
- package/dist/assets/worker-configs/reviewer/CLAUDE.md +108 -50
- package/dist/assets/worker-configs/security-engineer/.claude/skills/spec-kit-workflow.md +827 -0
- package/dist/assets/worker-configs/security-engineer/CLAUDE.md +83 -83
- package/dist/assets/worker-configs/spec-writer/.claude/skills/conductor-orchestration.md +635 -0
- package/dist/assets/worker-configs/spec-writer/.claude/skills/spec-kit-workflow.md +827 -0
- package/dist/assets/worker-configs/spec-writer/CLAUDE.md +107 -48
- package/dist/assets/worker-configs/technical-writer/.claude/skills/nextjs-turbo-stack.md +1017 -0
- package/dist/assets/worker-configs/technical-writer/.claude/skills/spec-kit-workflow.md +827 -0
- package/dist/assets/worker-configs/technical-writer/CLAUDE.md +91 -81
- package/dist/assets/worker-configs/tester/.claude/skills/nextjs-turbo-stack.md +1017 -0
- package/dist/assets/worker-configs/tester/.claude/skills/spec-kit-workflow.md +827 -0
- package/dist/assets/worker-configs/tester/.claude/skills/test-first-methodology.md +745 -0
- package/dist/assets/worker-configs/tester/CLAUDE.md +141 -52
- package/dist/commands/__tests__/bootstrap.test.js +51 -51
- package/dist/commands/__tests__/bootstrap.test.js.map +1 -1
- package/dist/commands/bootstrap.d.ts.map +1 -1
- package/dist/commands/bootstrap.js +23 -20
- package/dist/commands/bootstrap.js.map +1 -1
- package/dist/commands/doctor.js +33 -9
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/templates.d.ts +1 -1
- package/dist/commands/templates.d.ts.map +1 -1
- package/dist/commands/templates.js +1 -1
- package/dist/commands/templates.js.map +1 -1
- package/dist/constants.d.ts +2 -2
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +1 -1
- package/dist/constants.js.map +1 -1
- package/dist/generators/__tests__/boss-config.test.js +4 -4
- package/dist/generators/__tests__/boss-config.test.js.map +1 -1
- package/dist/generators/__tests__/claude-folder.test.js +8 -8
- package/dist/generators/__tests__/claude-folder.test.js.map +1 -1
- package/dist/generators/__tests__/claude-md.test.js +25 -16
- package/dist/generators/__tests__/claude-md.test.js.map +1 -1
- package/dist/generators/__tests__/container-use-config.test.js +2 -2
- package/dist/generators/__tests__/container-use-config.test.js.map +1 -1
- package/dist/generators/__tests__/git-hooks.test.js.map +1 -1
- package/dist/generators/__tests__/github-workflows.test.js +10 -6
- package/dist/generators/__tests__/github-workflows.test.js.map +1 -1
- package/dist/generators/__tests__/mcp-config.test.js +6 -6
- package/dist/generators/__tests__/project-structure.test.js +2 -2
- package/dist/generators/__tests__/quality-gates.test.js +11 -3
- package/dist/generators/__tests__/quality-gates.test.js.map +1 -1
- package/dist/generators/__tests__/specify-structure.test.js +1 -1
- package/dist/generators/__tests__/specify-structure.test.js.map +1 -1
- package/dist/generators/__tests__/template-docs.test.js +1 -1
- package/dist/generators/__tests__/template-docs.test.js.map +1 -1
- package/dist/generators/__tests__/template-loader.test.js +209 -59
- package/dist/generators/__tests__/template-loader.test.js.map +1 -1
- package/dist/generators/__tests__/worker-configs.test.js +7 -7
- package/dist/generators/boss-config.d.ts.map +1 -1
- package/dist/generators/boss-config.js +46 -51
- package/dist/generators/boss-config.js.map +1 -1
- package/dist/generators/claude-folder.d.ts +1 -1
- package/dist/generators/claude-folder.d.ts.map +1 -1
- package/dist/generators/claude-folder.js +5 -5
- package/dist/generators/claude-folder.js.map +1 -1
- package/dist/generators/claude-md.d.ts.map +1 -1
- package/dist/generators/claude-md.js +83 -42
- package/dist/generators/claude-md.js.map +1 -1
- package/dist/generators/container-use-config.d.ts.map +1 -1
- package/dist/generators/container-use-config.js +5 -7
- package/dist/generators/container-use-config.js.map +1 -1
- package/dist/generators/docker-compose.d.ts.map +1 -1
- package/dist/generators/docker-compose.js.map +1 -1
- package/dist/generators/git-hooks.d.ts.map +1 -1
- package/dist/generators/git-hooks.js +2 -2
- package/dist/generators/git-hooks.js.map +1 -1
- package/dist/generators/github-workflows.js +3 -3
- package/dist/generators/github-workflows.js.map +1 -1
- package/dist/generators/mcp-config.d.ts.map +1 -1
- package/dist/generators/mcp-config.js +18 -16
- package/dist/generators/mcp-config.js.map +1 -1
- package/dist/generators/project-structure.d.ts +1 -1
- package/dist/generators/project-structure.d.ts.map +1 -1
- package/dist/generators/project-structure.js +2 -2
- package/dist/generators/project-structure.js.map +1 -1
- package/dist/generators/quality-gates.d.ts.map +1 -1
- package/dist/generators/quality-gates.js +13 -5
- package/dist/generators/quality-gates.js.map +1 -1
- package/dist/generators/specify-structure.d.ts.map +1 -1
- package/dist/generators/specify-structure.js +1 -2
- package/dist/generators/specify-structure.js.map +1 -1
- package/dist/generators/template-docs.js +2 -2
- package/dist/generators/template-docs.js.map +1 -1
- package/dist/generators/template-loader.d.ts.map +1 -1
- package/dist/generators/template-loader.js +259 -143
- package/dist/generators/template-loader.js.map +1 -1
- package/dist/generators/worker-configs.d.ts.map +1 -1
- package/dist/generators/worker-configs.js +7 -5
- package/dist/generators/worker-configs.js.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/presets/__tests__/quality-presets.test.js +9 -5
- package/dist/presets/__tests__/quality-presets.test.js.map +1 -1
- package/dist/presets/quality-presets.d.ts.map +1 -1
- package/dist/presets/quality-presets.js +11 -11
- package/dist/presets/quality-presets.js.map +1 -1
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +2 -1
- package/dist/types/index.js.map +1 -1
- package/dist/types/internal.d.ts +69 -0
- package/dist/types/internal.d.ts.map +1 -0
- package/dist/types/internal.js +4 -0
- package/dist/types/internal.js.map +1 -0
- package/dist/utils/__tests__/file-system.test.js +1 -1
- package/dist/utils/__tests__/file-system.test.js.map +1 -1
- package/dist/utils/__tests__/git.test.js.map +1 -1
- package/dist/utils/__tests__/template-loader.test.js.map +1 -1
- package/dist/utils/__tests__/validators.test.js +1 -1
- package/dist/utils/__tests__/validators.test.js.map +1 -1
- package/dist/utils/file-system.d.ts.map +1 -1
- package/dist/utils/file-system.js +1 -4
- package/dist/utils/file-system.js.map +1 -1
- package/dist/utils/git.d.ts.map +1 -1
- package/dist/utils/git.js +17 -11
- package/dist/utils/git.js.map +1 -1
- package/dist/utils/prompts.d.ts.map +1 -1
- package/dist/utils/prompts.js +51 -39
- package/dist/utils/prompts.js.map +1 -1
- package/dist/utils/template-loader.d.ts +2 -1
- package/dist/utils/template-loader.d.ts.map +1 -1
- package/dist/utils/template-loader.js +11 -5
- package/dist/utils/template-loader.js.map +1 -1
- package/dist/utils/validators.d.ts.map +1 -1
- package/dist/utils/validators.js +16 -4
- package/dist/utils/validators.js.map +1 -1
- package/package.json +2 -2
- package/templates/nextjs-turbo-monorepo/base/README.md +167 -0
- package/templates/nextjs-turbo-monorepo/base/_gitignore +71 -0
- package/templates/nextjs-turbo-monorepo/base/_npmrc +12 -0
- package/templates/nextjs-turbo-monorepo/base/apps/admin/app/layout.tsx +19 -0
- package/templates/nextjs-turbo-monorepo/base/apps/admin/app/page.tsx +34 -0
- package/templates/nextjs-turbo-monorepo/base/apps/admin/next.config.ts +20 -0
- package/templates/nextjs-turbo-monorepo/base/apps/admin/package.json +42 -0
- package/templates/nextjs-turbo-monorepo/base/apps/admin/tsconfig.json +16 -0
- package/templates/nextjs-turbo-monorepo/base/apps/web/app/globals.css +59 -0
- package/templates/nextjs-turbo-monorepo/base/apps/web/app/layout.tsx +20 -0
- package/templates/nextjs-turbo-monorepo/base/apps/web/app/page.tsx +17 -0
- package/templates/nextjs-turbo-monorepo/base/apps/web/components.json +18 -0
- package/templates/nextjs-turbo-monorepo/base/apps/web/env.ts +45 -0
- package/templates/nextjs-turbo-monorepo/base/apps/web/next.config.ts +38 -0
- package/templates/nextjs-turbo-monorepo/base/apps/web/package.json +45 -0
- package/templates/nextjs-turbo-monorepo/base/apps/web/tsconfig.json +19 -0
- package/templates/nextjs-turbo-monorepo/base/apps/web/vitest.config.ts +28 -0
- package/templates/nextjs-turbo-monorepo/base/docker/Dockerfile.admin +76 -0
- package/templates/nextjs-turbo-monorepo/base/docker/Dockerfile.web +76 -0
- package/templates/nextjs-turbo-monorepo/base/docker/_dockerignore +48 -0
- package/templates/nextjs-turbo-monorepo/base/docker/docker-compose.yml +39 -0
- package/templates/nextjs-turbo-monorepo/base/package.json +62 -0
- package/templates/nextjs-turbo-monorepo/base/packages/auth/package.json +26 -0
- package/templates/nextjs-turbo-monorepo/base/packages/auth/src/config.ts +88 -0
- package/templates/nextjs-turbo-monorepo/base/packages/auth/src/index.ts +11 -0
- package/templates/nextjs-turbo-monorepo/base/packages/auth/src/types.ts +28 -0
- package/templates/nextjs-turbo-monorepo/base/packages/auth/tsconfig.json +9 -0
- package/templates/nextjs-turbo-monorepo/base/packages/config/eslint/library.js +35 -0
- package/templates/nextjs-turbo-monorepo/base/packages/config/eslint/nextjs.js +51 -0
- package/templates/nextjs-turbo-monorepo/base/packages/config/eslint/react-library.js +45 -0
- package/templates/nextjs-turbo-monorepo/base/packages/config/package.json +19 -0
- package/templates/nextjs-turbo-monorepo/base/packages/config/tailwind/base.ts +50 -0
- package/templates/nextjs-turbo-monorepo/base/packages/config/typescript/base.json +23 -0
- package/templates/nextjs-turbo-monorepo/base/packages/config/typescript/nextjs.json +17 -0
- package/templates/nextjs-turbo-monorepo/base/packages/config/typescript/react-library.json +11 -0
- package/templates/nextjs-turbo-monorepo/base/packages/database/package.json +32 -0
- package/templates/nextjs-turbo-monorepo/base/packages/database/prisma/schema.prisma +84 -0
- package/templates/nextjs-turbo-monorepo/base/packages/database/src/client.ts +16 -0
- package/templates/nextjs-turbo-monorepo/base/packages/database/src/index.ts +2 -0
- package/templates/nextjs-turbo-monorepo/base/packages/database/tsconfig.json +9 -0
- package/templates/nextjs-turbo-monorepo/base/packages/trpc/package.json +32 -0
- package/templates/nextjs-turbo-monorepo/base/packages/trpc/src/context.ts +17 -0
- package/templates/nextjs-turbo-monorepo/base/packages/trpc/src/index.ts +3 -0
- package/templates/nextjs-turbo-monorepo/base/packages/trpc/src/init.ts +34 -0
- package/templates/nextjs-turbo-monorepo/base/packages/trpc/src/routers/_app.ts +8 -0
- package/templates/nextjs-turbo-monorepo/base/packages/trpc/src/routers/user.ts +36 -0
- package/templates/nextjs-turbo-monorepo/base/packages/trpc/tsconfig.json +9 -0
- package/templates/nextjs-turbo-monorepo/base/packages/ui/.storybook/main.ts +19 -0
- package/templates/nextjs-turbo-monorepo/base/packages/ui/.storybook/preview.ts +15 -0
- package/templates/nextjs-turbo-monorepo/base/packages/ui/components.json +17 -0
- package/templates/nextjs-turbo-monorepo/base/packages/ui/package.json +62 -0
- package/templates/nextjs-turbo-monorepo/base/packages/ui/postcss.config.js +6 -0
- package/templates/nextjs-turbo-monorepo/base/packages/ui/src/components/index.ts +2 -0
- package/templates/nextjs-turbo-monorepo/base/packages/ui/src/components/ui/button.tsx +57 -0
- package/templates/nextjs-turbo-monorepo/base/packages/ui/src/components/ui/card.tsx +76 -0
- package/templates/nextjs-turbo-monorepo/base/packages/ui/src/hooks/index.ts +2 -0
- package/templates/nextjs-turbo-monorepo/base/packages/ui/src/lib/utils.ts +6 -0
- package/templates/nextjs-turbo-monorepo/base/packages/ui/src/styles/globals.css +59 -0
- package/templates/nextjs-turbo-monorepo/base/packages/ui/tailwind.config.ts +15 -0
- package/templates/nextjs-turbo-monorepo/base/packages/ui/tsconfig.json +12 -0
- package/templates/nextjs-turbo-monorepo/base/packages/ui/vitest.config.ts +28 -0
- package/templates/nextjs-turbo-monorepo/base/packages/utils/package.json +24 -0
- package/templates/nextjs-turbo-monorepo/base/packages/utils/src/date.ts +117 -0
- package/templates/nextjs-turbo-monorepo/base/packages/utils/src/index.ts +2 -0
- package/templates/nextjs-turbo-monorepo/base/packages/utils/src/string.ts +59 -0
- package/templates/nextjs-turbo-monorepo/base/packages/utils/tsconfig.json +9 -0
- package/templates/nextjs-turbo-monorepo/base/packages/utils/vitest.config.ts +13 -0
- package/templates/nextjs-turbo-monorepo/base/pnpm-workspace.yaml +3 -0
- package/templates/nextjs-turbo-monorepo/base/tsconfig.json +19 -0
- package/templates/nextjs-turbo-monorepo/base/turbo.json +47 -0
- package/templates/nextjs-turbo-monorepo/extras/boss-cli/assets/claude-md/template.md +0 -0
- package/templates/nextjs-turbo-monorepo/extras/boss-cli/assets/github-workflows/CODEOWNERS +0 -0
- package/templates/nextjs-turbo-monorepo/extras/boss-cli/assets/github-workflows/boss-ci.yml +139 -0
- package/templates/nextjs-turbo-monorepo/extras/boss-cli/assets/github-workflows/boss-gates.yml +116 -0
- package/templates/nextjs-turbo-monorepo/extras/config/kamal/_env +18 -0
- package/templates/nextjs-turbo-monorepo/extras/config/kamal/deploy.yml +92 -0
- package/templates/nextjs-turbo-monorepo/extras/scripts/deploy.sh +38 -0
- package/templates/nextjs-turbo-monorepo/extras/scripts/setup-db.sh +29 -0
- package/assets/claude-md/docs/container-use.md +0 -140
- 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]+(
|
|
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]+(
|
|
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]+)
|
|
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
|
-
|
|
@@ -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
|
-
#
|
|
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:
|
|
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
|
-
|
|
14
|
+
lint-and-typecheck:
|
|
15
|
+
name: Lint & Type Check
|
|
11
16
|
runs-on: ubuntu-latest
|
|
17
|
+
|
|
12
18
|
steps:
|
|
13
|
-
-
|
|
14
|
-
|
|
15
|
-
- name: Setup Node.js
|
|
16
|
-
uses: actions/setup-node@v4
|
|
19
|
+
- name: Checkout
|
|
20
|
+
uses: actions/checkout@v4
|
|
17
21
|
with:
|
|
18
|
-
|
|
19
|
-
|
|
22
|
+
fetch-depth: 0
|
|
23
|
+
|
|
20
24
|
- name: Setup pnpm
|
|
21
|
-
uses: pnpm/action-setup@
|
|
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:
|
|
24
|
-
|
|
32
|
+
node-version: 20
|
|
33
|
+
cache: 'pnpm'
|
|
34
|
+
|
|
25
35
|
- name: Install dependencies
|
|
26
36
|
run: pnpm install --frozen-lockfile
|
|
27
|
-
|
|
28
|
-
- name:
|
|
29
|
-
run: pnpm
|
|
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:
|
|
1
|
+
name: Quality Gates
|
|
2
2
|
|
|
3
3
|
on:
|
|
4
4
|
pull_request:
|
|
5
|
-
|
|
5
|
+
branches: [main, develop]
|
|
6
6
|
|
|
7
7
|
jobs:
|
|
8
|
-
|
|
8
|
+
security:
|
|
9
|
+
name: Security Audit
|
|
9
10
|
runs-on: ubuntu-latest
|
|
11
|
+
|
|
10
12
|
steps:
|
|
11
|
-
-
|
|
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:
|
|
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@
|
|
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:
|
|
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
|