@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.
- package/LICENSE +21 -0
- package/README.md +134 -0
- package/assets/claude-folder/agents/.gitkeep +0 -0
- package/assets/claude-folder/commands/boss-commands.md +138 -0
- package/assets/claude-folder/rules/boss-workflow.md +33 -0
- package/assets/claude-folder/rules/code-style.md +23 -0
- package/assets/claude-folder/rules/security.md +22 -0
- package/assets/claude-folder/rules/testing.md +32 -0
- package/assets/claude-folder/settings.local.json +88 -0
- package/assets/claude-folder/skills/.gitkeep +0 -0
- package/assets/claude-md/docs/container-use.md +140 -0
- package/assets/claude-md/docs/github-operations.md +238 -0
- package/assets/claude-md/docs/initialization.md +186 -0
- package/assets/claude-md/docs/quality-standards.md +15 -0
- package/assets/claude-md/docs/spec-kit.md +46 -0
- package/assets/claude-md/docs/workers.md +174 -0
- package/assets/claude-md/docs/workflow.md +140 -0
- package/assets/claude-md/template.md +812 -0
- package/assets/docker-compose/docker-compose.yml +52 -0
- package/assets/git-hooks/commit-msg.sh +102 -0
- package/assets/git-hooks/pre-commit-check.sh +21 -0
- package/assets/git-hooks/pre-commit.sh +6 -0
- package/assets/git-hooks/pre-push.sh +154 -0
- package/assets/git-hooks/security-check.sh +40 -0
- package/assets/git-hooks/test-changed.sh +84 -0
- package/assets/github-workflows/CODEOWNERS +3 -0
- package/assets/github-workflows/boss-ci.yml +40 -0
- package/assets/github-workflows/boss-gates.yml +28 -0
- package/assets/start-boss-sh/start-boss.sh +471 -0
- package/assets/template-docs/api-service-fastify.md +98 -0
- package/assets/template-docs/blank.md +91 -0
- package/assets/template-docs/nextjs-app-turbo.md +102 -0
- package/assets/template-docs/t3-app.md +106 -0
- package/assets/template-loader/README.md +28 -0
- package/assets/template-loader/eslint.config.node.js +28 -0
- package/assets/template-loader/eslint.config.react.js +47 -0
- package/assets/template-loader/gitignore +42 -0
- package/assets/template-loader/index.test.ts +10 -0
- package/assets/template-loader/index.ts +13 -0
- package/assets/template-loader/prettierignore +8 -0
- package/assets/template-loader/vitest.config.ts +19 -0
- package/assets/worker-configs/architect/.claude/commands/.gitkeep +0 -0
- package/assets/worker-configs/architect/.claude/skills/.gitkeep +0 -0
- package/assets/worker-configs/architect/CLAUDE.md +106 -0
- package/assets/worker-configs/clarifier/.claude/commands/.gitkeep +1 -0
- package/assets/worker-configs/clarifier/.claude/skills/.gitkeep +1 -0
- package/assets/worker-configs/clarifier/CLAUDE.md +112 -0
- package/assets/worker-configs/code-reviewer/CLAUDE.md +113 -0
- package/assets/worker-configs/consolidator/.claude/commands/.gitkeep +1 -0
- package/assets/worker-configs/consolidator/.claude/skills/.gitkeep +1 -0
- package/assets/worker-configs/consolidator/CLAUDE.md +114 -0
- package/assets/worker-configs/developer-backend/.claude/commands/.gitkeep +1 -0
- package/assets/worker-configs/developer-backend/.claude/skills/.gitkeep +1 -0
- package/assets/worker-configs/developer-backend/CLAUDE.md +116 -0
- package/assets/worker-configs/developer-frontend/.claude/commands/.gitkeep +1 -0
- package/assets/worker-configs/developer-frontend/.claude/skills/.gitkeep +1 -0
- package/assets/worker-configs/developer-frontend/CLAUDE.md +116 -0
- package/assets/worker-configs/developer-fullstack/.claude/commands/.gitkeep +1 -0
- package/assets/worker-configs/developer-fullstack/.claude/skills/.gitkeep +1 -0
- package/assets/worker-configs/developer-fullstack/CLAUDE.md +116 -0
- package/assets/worker-configs/devops-engineer/CLAUDE.md +111 -0
- package/assets/worker-configs/planner/.claude/commands/.gitkeep +1 -0
- package/assets/worker-configs/planner/.claude/skills/.gitkeep +1 -0
- package/assets/worker-configs/planner/CLAUDE.md +111 -0
- package/assets/worker-configs/product-owner/CLAUDE.md +108 -0
- package/assets/worker-configs/reviewer/.claude/commands/.gitkeep +1 -0
- package/assets/worker-configs/reviewer/.claude/skills/.gitkeep +1 -0
- package/assets/worker-configs/reviewer/CLAUDE.md +110 -0
- package/assets/worker-configs/security-engineer/CLAUDE.md +109 -0
- package/assets/worker-configs/spec-writer/.claude/commands/.gitkeep +1 -0
- package/assets/worker-configs/spec-writer/.claude/skills/.gitkeep +1 -0
- package/assets/worker-configs/spec-writer/CLAUDE.md +110 -0
- package/assets/worker-configs/technical-writer/CLAUDE.md +107 -0
- package/assets/worker-configs/tester/CLAUDE.md +110 -0
- package/dist/assets/claude-folder/agents/.gitkeep +0 -0
- package/dist/assets/claude-folder/commands/boss-commands.md +138 -0
- package/dist/assets/claude-folder/rules/boss-workflow.md +33 -0
- package/dist/assets/claude-folder/rules/code-style.md +23 -0
- package/dist/assets/claude-folder/rules/security.md +22 -0
- package/dist/assets/claude-folder/rules/testing.md +32 -0
- package/dist/assets/claude-folder/settings.local.json +88 -0
- package/dist/assets/claude-folder/skills/.gitkeep +0 -0
- package/dist/assets/claude-md/docs/container-use.md +140 -0
- package/dist/assets/claude-md/docs/github-operations.md +238 -0
- package/dist/assets/claude-md/docs/initialization.md +186 -0
- package/dist/assets/claude-md/docs/quality-standards.md +15 -0
- package/dist/assets/claude-md/docs/spec-kit.md +46 -0
- package/dist/assets/claude-md/docs/workers.md +174 -0
- package/dist/assets/claude-md/docs/workflow.md +140 -0
- package/dist/assets/claude-md/template.md +812 -0
- package/dist/assets/docker-compose/docker-compose.yml +52 -0
- package/dist/assets/git-hooks/commit-msg.sh +102 -0
- package/dist/assets/git-hooks/pre-commit-check.sh +21 -0
- package/dist/assets/git-hooks/pre-commit.sh +6 -0
- package/dist/assets/git-hooks/pre-push.sh +154 -0
- package/dist/assets/git-hooks/security-check.sh +40 -0
- package/dist/assets/git-hooks/test-changed.sh +84 -0
- package/dist/assets/github-workflows/CODEOWNERS +3 -0
- package/dist/assets/github-workflows/boss-ci.yml +40 -0
- package/dist/assets/github-workflows/boss-gates.yml +28 -0
- package/dist/assets/start-boss-sh/start-boss.sh +471 -0
- package/dist/assets/template-docs/api-service-fastify.md +98 -0
- package/dist/assets/template-docs/blank.md +91 -0
- package/dist/assets/template-docs/nextjs-app-turbo.md +102 -0
- package/dist/assets/template-docs/t3-app.md +106 -0
- package/dist/assets/template-loader/README.md +28 -0
- package/dist/assets/template-loader/eslint.config.node.js +28 -0
- package/dist/assets/template-loader/eslint.config.react.js +47 -0
- package/dist/assets/template-loader/gitignore +42 -0
- package/dist/assets/template-loader/index.test.ts +10 -0
- package/dist/assets/template-loader/index.ts +13 -0
- package/dist/assets/template-loader/prettierignore +8 -0
- package/dist/assets/template-loader/vitest.config.ts +19 -0
- package/dist/assets/worker-configs/architect/.claude/commands/.gitkeep +0 -0
- package/dist/assets/worker-configs/architect/.claude/skills/.gitkeep +0 -0
- package/dist/assets/worker-configs/architect/CLAUDE.md +106 -0
- package/dist/assets/worker-configs/clarifier/.claude/commands/.gitkeep +1 -0
- package/dist/assets/worker-configs/clarifier/.claude/skills/.gitkeep +1 -0
- package/dist/assets/worker-configs/clarifier/CLAUDE.md +112 -0
- package/dist/assets/worker-configs/code-reviewer/CLAUDE.md +113 -0
- package/dist/assets/worker-configs/consolidator/.claude/commands/.gitkeep +1 -0
- package/dist/assets/worker-configs/consolidator/.claude/skills/.gitkeep +1 -0
- package/dist/assets/worker-configs/consolidator/CLAUDE.md +114 -0
- package/dist/assets/worker-configs/developer-backend/.claude/commands/.gitkeep +1 -0
- package/dist/assets/worker-configs/developer-backend/.claude/skills/.gitkeep +1 -0
- package/dist/assets/worker-configs/developer-backend/CLAUDE.md +116 -0
- package/dist/assets/worker-configs/developer-frontend/.claude/commands/.gitkeep +1 -0
- package/dist/assets/worker-configs/developer-frontend/.claude/skills/.gitkeep +1 -0
- package/dist/assets/worker-configs/developer-frontend/CLAUDE.md +116 -0
- package/dist/assets/worker-configs/developer-fullstack/.claude/commands/.gitkeep +1 -0
- package/dist/assets/worker-configs/developer-fullstack/.claude/skills/.gitkeep +1 -0
- package/dist/assets/worker-configs/developer-fullstack/CLAUDE.md +116 -0
- package/dist/assets/worker-configs/devops-engineer/CLAUDE.md +111 -0
- package/dist/assets/worker-configs/planner/.claude/commands/.gitkeep +1 -0
- package/dist/assets/worker-configs/planner/.claude/skills/.gitkeep +1 -0
- package/dist/assets/worker-configs/planner/CLAUDE.md +111 -0
- package/dist/assets/worker-configs/product-owner/CLAUDE.md +108 -0
- package/dist/assets/worker-configs/reviewer/.claude/commands/.gitkeep +1 -0
- package/dist/assets/worker-configs/reviewer/.claude/skills/.gitkeep +1 -0
- package/dist/assets/worker-configs/reviewer/CLAUDE.md +110 -0
- package/dist/assets/worker-configs/security-engineer/CLAUDE.md +109 -0
- package/dist/assets/worker-configs/spec-writer/.claude/commands/.gitkeep +1 -0
- package/dist/assets/worker-configs/spec-writer/.claude/skills/.gitkeep +1 -0
- package/dist/assets/worker-configs/spec-writer/CLAUDE.md +110 -0
- package/dist/assets/worker-configs/technical-writer/CLAUDE.md +107 -0
- package/dist/assets/worker-configs/tester/CLAUDE.md +110 -0
- package/dist/commands/__tests__/bootstrap.test.d.ts +2 -0
- package/dist/commands/__tests__/bootstrap.test.d.ts.map +1 -0
- package/dist/commands/__tests__/bootstrap.test.js +379 -0
- package/dist/commands/__tests__/bootstrap.test.js.map +1 -0
- package/dist/commands/__tests__/doctor.test.d.ts +2 -0
- package/dist/commands/__tests__/doctor.test.d.ts.map +1 -0
- package/dist/commands/__tests__/doctor.test.js +13 -0
- package/dist/commands/__tests__/doctor.test.js.map +1 -0
- package/dist/commands/bootstrap.d.ts +3 -0
- package/dist/commands/bootstrap.d.ts.map +1 -0
- package/dist/commands/bootstrap.js +390 -0
- package/dist/commands/bootstrap.js.map +1 -0
- package/dist/commands/doctor.d.ts +2 -0
- package/dist/commands/doctor.d.ts.map +1 -0
- package/dist/commands/doctor.js +171 -0
- package/dist/commands/doctor.js.map +1 -0
- package/dist/commands/templates.d.ts +2 -0
- package/dist/commands/templates.d.ts.map +1 -0
- package/dist/commands/templates.js +12 -0
- package/dist/commands/templates.js.map +1 -0
- package/dist/constants.d.ts +23 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +23 -0
- package/dist/constants.js.map +1 -0
- package/dist/generators/__tests__/boss-config.test.d.ts +2 -0
- package/dist/generators/__tests__/boss-config.test.d.ts.map +1 -0
- package/dist/generators/__tests__/boss-config.test.js +61 -0
- package/dist/generators/__tests__/boss-config.test.js.map +1 -0
- package/dist/generators/__tests__/claude-folder.test.d.ts +2 -0
- package/dist/generators/__tests__/claude-folder.test.d.ts.map +1 -0
- package/dist/generators/__tests__/claude-folder.test.js +128 -0
- package/dist/generators/__tests__/claude-folder.test.js.map +1 -0
- package/dist/generators/__tests__/claude-md.test.d.ts +2 -0
- package/dist/generators/__tests__/claude-md.test.d.ts.map +1 -0
- package/dist/generators/__tests__/claude-md.test.js +55 -0
- package/dist/generators/__tests__/claude-md.test.js.map +1 -0
- package/dist/generators/__tests__/container-use-config.test.d.ts +2 -0
- package/dist/generators/__tests__/container-use-config.test.d.ts.map +1 -0
- package/dist/generators/__tests__/container-use-config.test.js +80 -0
- package/dist/generators/__tests__/container-use-config.test.js.map +1 -0
- package/dist/generators/__tests__/docker-compose.test.d.ts +2 -0
- package/dist/generators/__tests__/docker-compose.test.d.ts.map +1 -0
- package/dist/generators/__tests__/docker-compose.test.js +39 -0
- package/dist/generators/__tests__/docker-compose.test.js.map +1 -0
- package/dist/generators/__tests__/git-hooks.test.d.ts +2 -0
- package/dist/generators/__tests__/git-hooks.test.d.ts.map +1 -0
- package/dist/generators/__tests__/git-hooks.test.js +118 -0
- package/dist/generators/__tests__/git-hooks.test.js.map +1 -0
- package/dist/generators/__tests__/github-workflows.test.d.ts +2 -0
- package/dist/generators/__tests__/github-workflows.test.d.ts.map +1 -0
- package/dist/generators/__tests__/github-workflows.test.js +86 -0
- package/dist/generators/__tests__/github-workflows.test.js.map +1 -0
- package/dist/generators/__tests__/mcp-config.test.d.ts +2 -0
- package/dist/generators/__tests__/mcp-config.test.d.ts.map +1 -0
- package/dist/generators/__tests__/mcp-config.test.js +131 -0
- package/dist/generators/__tests__/mcp-config.test.js.map +1 -0
- package/dist/generators/__tests__/project-structure.test.d.ts +2 -0
- package/dist/generators/__tests__/project-structure.test.d.ts.map +1 -0
- package/dist/generators/__tests__/project-structure.test.js +40 -0
- package/dist/generators/__tests__/project-structure.test.js.map +1 -0
- package/dist/generators/__tests__/quality-gates.test.d.ts +2 -0
- package/dist/generators/__tests__/quality-gates.test.d.ts.map +1 -0
- package/dist/generators/__tests__/quality-gates.test.js +71 -0
- package/dist/generators/__tests__/quality-gates.test.js.map +1 -0
- package/dist/generators/__tests__/specify-structure.test.d.ts +2 -0
- package/dist/generators/__tests__/specify-structure.test.d.ts.map +1 -0
- package/dist/generators/__tests__/specify-structure.test.js +63 -0
- package/dist/generators/__tests__/specify-structure.test.js.map +1 -0
- package/dist/generators/__tests__/start-boss-sh.test.d.ts +2 -0
- package/dist/generators/__tests__/start-boss-sh.test.d.ts.map +1 -0
- package/dist/generators/__tests__/start-boss-sh.test.js +36 -0
- package/dist/generators/__tests__/start-boss-sh.test.js.map +1 -0
- package/dist/generators/__tests__/template-docs.test.d.ts +2 -0
- package/dist/generators/__tests__/template-docs.test.d.ts.map +1 -0
- package/dist/generators/__tests__/template-docs.test.js +92 -0
- package/dist/generators/__tests__/template-docs.test.js.map +1 -0
- package/dist/generators/__tests__/template-loader.test.d.ts +2 -0
- package/dist/generators/__tests__/template-loader.test.d.ts.map +1 -0
- package/dist/generators/__tests__/template-loader.test.js +215 -0
- package/dist/generators/__tests__/template-loader.test.js.map +1 -0
- package/dist/generators/__tests__/worker-configs.test.d.ts +2 -0
- package/dist/generators/__tests__/worker-configs.test.d.ts.map +1 -0
- package/dist/generators/__tests__/worker-configs.test.js +122 -0
- package/dist/generators/__tests__/worker-configs.test.js.map +1 -0
- package/dist/generators/boss-config.d.ts +3 -0
- package/dist/generators/boss-config.d.ts.map +1 -0
- package/dist/generators/boss-config.js +242 -0
- package/dist/generators/boss-config.js.map +1 -0
- package/dist/generators/claude-folder.d.ts +3 -0
- package/dist/generators/claude-folder.d.ts.map +1 -0
- package/dist/generators/claude-folder.js +94 -0
- package/dist/generators/claude-folder.js.map +1 -0
- package/dist/generators/claude-md.d.ts +3 -0
- package/dist/generators/claude-md.d.ts.map +1 -0
- package/dist/generators/claude-md.js +64 -0
- package/dist/generators/claude-md.js.map +1 -0
- package/dist/generators/container-use-config.d.ts +13 -0
- package/dist/generators/container-use-config.d.ts.map +1 -0
- package/dist/generators/container-use-config.js +60 -0
- package/dist/generators/container-use-config.js.map +1 -0
- package/dist/generators/docker-compose.d.ts +2 -0
- package/dist/generators/docker-compose.d.ts.map +1 -0
- package/dist/generators/docker-compose.js +8 -0
- package/dist/generators/docker-compose.js.map +1 -0
- package/dist/generators/git-hooks.d.ts +3 -0
- package/dist/generators/git-hooks.d.ts.map +1 -0
- package/dist/generators/git-hooks.js +58 -0
- package/dist/generators/git-hooks.js.map +1 -0
- package/dist/generators/github-workflows.d.ts +3 -0
- package/dist/generators/github-workflows.d.ts.map +1 -0
- package/dist/generators/github-workflows.js +27 -0
- package/dist/generators/github-workflows.js.map +1 -0
- package/dist/generators/mcp-config.d.ts +3 -0
- package/dist/generators/mcp-config.d.ts.map +1 -0
- package/dist/generators/mcp-config.js +183 -0
- package/dist/generators/mcp-config.js.map +1 -0
- package/dist/generators/project-structure.d.ts +3 -0
- package/dist/generators/project-structure.d.ts.map +1 -0
- package/dist/generators/project-structure.js +24 -0
- package/dist/generators/project-structure.js.map +1 -0
- package/dist/generators/quality-gates.d.ts +3 -0
- package/dist/generators/quality-gates.d.ts.map +1 -0
- package/dist/generators/quality-gates.js +32 -0
- package/dist/generators/quality-gates.js.map +1 -0
- package/dist/generators/specify-structure.d.ts +2 -0
- package/dist/generators/specify-structure.d.ts.map +1 -0
- package/dist/generators/specify-structure.js +43 -0
- package/dist/generators/specify-structure.js.map +1 -0
- package/dist/generators/start-boss-sh.d.ts +2 -0
- package/dist/generators/start-boss-sh.d.ts.map +1 -0
- package/dist/generators/start-boss-sh.js +10 -0
- package/dist/generators/start-boss-sh.js.map +1 -0
- package/dist/generators/template-docs.d.ts +3 -0
- package/dist/generators/template-docs.d.ts.map +1 -0
- package/dist/generators/template-docs.js +19 -0
- package/dist/generators/template-docs.js.map +1 -0
- package/dist/generators/template-loader.d.ts +3 -0
- package/dist/generators/template-loader.d.ts.map +1 -0
- package/dist/generators/template-loader.js +308 -0
- package/dist/generators/template-loader.js.map +1 -0
- package/dist/generators/worker-configs.d.ts +3 -0
- package/dist/generators/worker-configs.d.ts.map +1 -0
- package/dist/generators/worker-configs.js +119 -0
- package/dist/generators/worker-configs.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +57 -0
- package/dist/index.js.map +1 -0
- package/dist/presets/__tests__/quality-presets.test.d.ts +2 -0
- package/dist/presets/__tests__/quality-presets.test.d.ts.map +1 -0
- package/dist/presets/__tests__/quality-presets.test.js +152 -0
- package/dist/presets/__tests__/quality-presets.test.js.map +1 -0
- package/dist/presets/quality-presets.d.ts +3 -0
- package/dist/presets/quality-presets.d.ts.map +1 -0
- package/dist/presets/quality-presets.js +65 -0
- package/dist/presets/quality-presets.js.map +1 -0
- package/dist/types/index.d.ts +42 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +2 -0
- package/dist/types/index.js.map +1 -0
- package/dist/utils/__tests__/file-system.test.d.ts +2 -0
- package/dist/utils/__tests__/file-system.test.d.ts.map +1 -0
- package/dist/utils/__tests__/file-system.test.js +83 -0
- package/dist/utils/__tests__/file-system.test.js.map +1 -0
- package/dist/utils/__tests__/git.test.d.ts +2 -0
- package/dist/utils/__tests__/git.test.d.ts.map +1 -0
- package/dist/utils/__tests__/git.test.js +79 -0
- package/dist/utils/__tests__/git.test.js.map +1 -0
- package/dist/utils/__tests__/template-loader.test.d.ts +2 -0
- package/dist/utils/__tests__/template-loader.test.d.ts.map +1 -0
- package/dist/utils/__tests__/template-loader.test.js +109 -0
- package/dist/utils/__tests__/template-loader.test.js.map +1 -0
- package/dist/utils/__tests__/validators.test.d.ts +2 -0
- package/dist/utils/__tests__/validators.test.d.ts.map +1 -0
- package/dist/utils/__tests__/validators.test.js +118 -0
- package/dist/utils/__tests__/validators.test.js.map +1 -0
- package/dist/utils/file-system.d.ts +8 -0
- package/dist/utils/file-system.d.ts.map +1 -0
- package/dist/utils/file-system.js +54 -0
- package/dist/utils/file-system.js.map +1 -0
- package/dist/utils/git.d.ts +7 -0
- package/dist/utils/git.d.ts.map +1 -0
- package/dist/utils/git.js +98 -0
- package/dist/utils/git.js.map +1 -0
- package/dist/utils/logger.d.ts +13 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +42 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/prompts.d.ts +18 -0
- package/dist/utils/prompts.d.ts.map +1 -0
- package/dist/utils/prompts.js +197 -0
- package/dist/utils/prompts.js.map +1 -0
- package/dist/utils/template-loader.d.ts +18 -0
- package/dist/utils/template-loader.d.ts.map +1 -0
- package/dist/utils/template-loader.js +92 -0
- package/dist/utils/template-loader.js.map +1 -0
- package/dist/utils/validators.d.ts +21 -0
- package/dist/utils/validators.d.ts.map +1 -0
- package/dist/utils/validators.js +50 -0
- package/dist/utils/validators.js.map +1 -0
- package/package.json +79 -0
- package/templates/spec-kit/README.md +17 -0
- package/templates/spec-kit/memory/constitution.md +50 -0
- package/templates/spec-kit/scripts/bash/check-prerequisites.sh +166 -0
- package/templates/spec-kit/scripts/bash/common.sh +156 -0
- package/templates/spec-kit/scripts/bash/create-new-feature.sh +297 -0
- package/templates/spec-kit/scripts/bash/setup-plan.sh +61 -0
- package/templates/spec-kit/scripts/bash/update-agent-context.sh +799 -0
- package/templates/spec-kit/scripts/powershell/check-prerequisites.ps1 +148 -0
- package/templates/spec-kit/scripts/powershell/common.ps1 +137 -0
- package/templates/spec-kit/scripts/powershell/create-new-feature.ps1 +283 -0
- package/templates/spec-kit/scripts/powershell/setup-plan.ps1 +61 -0
- package/templates/spec-kit/scripts/powershell/update-agent-context.ps1 +448 -0
- package/templates/spec-kit/src/specify_cli/__init__.py +1369 -0
- package/templates/spec-kit/templates/agent-file-template.md +28 -0
- package/templates/spec-kit/templates/checklist-template.md +40 -0
- package/templates/spec-kit/templates/commands/analyze.md +187 -0
- package/templates/spec-kit/templates/commands/checklist.md +297 -0
- package/templates/spec-kit/templates/commands/clarify.md +184 -0
- package/templates/spec-kit/templates/commands/constitution.md +82 -0
- package/templates/spec-kit/templates/commands/implement.md +138 -0
- package/templates/spec-kit/templates/commands/plan.md +95 -0
- package/templates/spec-kit/templates/commands/specify.md +261 -0
- package/templates/spec-kit/templates/commands/tasks.md +140 -0
- package/templates/spec-kit/templates/commands/taskstoissues.md +33 -0
- package/templates/spec-kit/templates/plan-template.md +104 -0
- package/templates/spec-kit/templates/spec-template.md +115 -0
- package/templates/spec-kit/templates/tasks-template.md +251 -0
- package/templates/spec-kit/templates/vscode-settings.json +14 -0
- package/templates/t3-app/README.md +41 -0
- package/templates/t3-app/base/README.md +29 -0
- package/templates/t3-app/base/_gitignore +47 -0
- package/templates/t3-app/base/next-env.d.ts +5 -0
- package/templates/t3-app/base/next.config.js +22 -0
- package/templates/t3-app/base/package.json +26 -0
- package/templates/t3-app/base/public/favicon.ico +0 -0
- package/templates/t3-app/base/src/env.js +40 -0
- package/templates/t3-app/base/src/styles/globals.css +16 -0
- package/templates/t3-app/base/tsconfig.json +42 -0
- package/templates/t3-app/extras/config/_eslint.base.js +45 -0
- package/templates/t3-app/extras/config/_eslint.drizzle.js +58 -0
- package/templates/t3-app/extras/config/_prettier.config.js +2 -0
- package/templates/t3-app/extras/config/_tailwind.prettier.config.js +4 -0
- package/templates/t3-app/extras/config/biome.jsonc +69 -0
- package/templates/t3-app/extras/config/drizzle-config-mysql.ts +12 -0
- package/templates/t3-app/extras/config/drizzle-config-postgres.ts +12 -0
- package/templates/t3-app/extras/config/drizzle-config-sqlite.ts +12 -0
- package/templates/t3-app/extras/config/next-config-appdir.js +10 -0
- package/templates/t3-app/extras/config/postcss.config.js +5 -0
- package/templates/t3-app/extras/pnpm/_npmrc +2 -0
- package/templates/t3-app/extras/prisma/schema/base-planetscale.prisma +25 -0
- package/templates/t3-app/extras/prisma/schema/base.prisma +21 -0
- package/templates/t3-app/extras/prisma/schema/with-auth-planetscale.prisma +79 -0
- package/templates/t3-app/extras/prisma/schema/with-auth.prisma +75 -0
- package/templates/t3-app/extras/prisma/schema/with-better-auth-planetscale.prisma +90 -0
- package/templates/t3-app/extras/prisma/schema/with-better-auth.prisma +89 -0
- package/templates/t3-app/extras/src/app/_components/post-tw.tsx +50 -0
- package/templates/t3-app/extras/src/app/_components/post.tsx +54 -0
- package/templates/t3-app/extras/src/app/api/auth/[...all]/route.ts +5 -0
- package/templates/t3-app/extras/src/app/api/auth/[...nextauth]/route.ts +3 -0
- package/templates/t3-app/extras/src/app/api/trpc/[trpc]/route.ts +34 -0
- package/templates/t3-app/extras/src/app/layout/base.tsx +24 -0
- package/templates/t3-app/extras/src/app/layout/with-trpc-tw.tsx +29 -0
- package/templates/t3-app/extras/src/app/layout/with-trpc.tsx +28 -0
- package/templates/t3-app/extras/src/app/layout/with-tw.tsx +25 -0
- package/templates/t3-app/extras/src/app/page/base.tsx +39 -0
- package/templates/t3-app/extras/src/app/page/with-auth-trpc-tw.tsx +69 -0
- package/templates/t3-app/extras/src/app/page/with-auth-trpc.tsx +70 -0
- package/templates/t3-app/extras/src/app/page/with-better-auth-trpc-tw.tsx +105 -0
- package/templates/t3-app/extras/src/app/page/with-better-auth-trpc.tsx +103 -0
- package/templates/t3-app/extras/src/app/page/with-better-auth-tw.tsx +90 -0
- package/templates/t3-app/extras/src/app/page/with-better-auth.tsx +88 -0
- package/templates/t3-app/extras/src/app/page/with-trpc-tw.tsx +53 -0
- package/templates/t3-app/extras/src/app/page/with-trpc.tsx +54 -0
- package/templates/t3-app/extras/src/app/page/with-tw.tsx +37 -0
- package/templates/t3-app/extras/src/env/with-auth-db-planetscale.js +58 -0
- package/templates/t3-app/extras/src/env/with-auth-db.js +52 -0
- package/templates/t3-app/extras/src/env/with-auth.js +51 -0
- package/templates/t3-app/extras/src/env/with-better-auth-db-planetscale.js +58 -0
- package/templates/t3-app/extras/src/env/with-better-auth-db.js +50 -0
- package/templates/t3-app/extras/src/env/with-better-auth.js +49 -0
- package/templates/t3-app/extras/src/env/with-db-planetscale.js +50 -0
- package/templates/t3-app/extras/src/env/with-db.js +44 -0
- package/templates/t3-app/extras/src/index.module.css +177 -0
- package/templates/t3-app/extras/src/pages/_app/base.tsx +18 -0
- package/templates/t3-app/extras/src/pages/_app/with-auth-trpc-tw.tsx +27 -0
- package/templates/t3-app/extras/src/pages/_app/with-auth-trpc.tsx +27 -0
- package/templates/t3-app/extras/src/pages/_app/with-auth-tw.tsx +25 -0
- package/templates/t3-app/extras/src/pages/_app/with-auth.tsx +25 -0
- package/templates/t3-app/extras/src/pages/_app/with-better-auth-trpc-tw.tsx +20 -0
- package/templates/t3-app/extras/src/pages/_app/with-better-auth-trpc.tsx +20 -0
- package/templates/t3-app/extras/src/pages/_app/with-trpc-tw.tsx +20 -0
- package/templates/t3-app/extras/src/pages/_app/with-trpc.tsx +20 -0
- package/templates/t3-app/extras/src/pages/_app/with-tw.tsx +18 -0
- package/templates/t3-app/extras/src/pages/api/auth/[...all].ts +8 -0
- package/templates/t3-app/extras/src/pages/api/trpc/[trpc].ts +19 -0
- package/templates/t3-app/extras/src/pages/index/base.tsx +47 -0
- package/templates/t3-app/extras/src/pages/index/with-auth-trpc-tw.tsx +81 -0
- package/templates/t3-app/extras/src/pages/index/with-auth-trpc.tsx +82 -0
- package/templates/t3-app/extras/src/pages/index/with-better-auth-trpc-tw.tsx +99 -0
- package/templates/t3-app/extras/src/pages/index/with-better-auth-trpc.tsx +100 -0
- package/templates/t3-app/extras/src/pages/index/with-better-auth-tw.tsx +87 -0
- package/templates/t3-app/extras/src/pages/index/with-better-auth.tsx +88 -0
- package/templates/t3-app/extras/src/pages/index/with-trpc-tw.tsx +52 -0
- package/templates/t3-app/extras/src/pages/index/with-trpc.tsx +53 -0
- package/templates/t3-app/extras/src/pages/index/with-tw.tsx +45 -0
- package/templates/t3-app/extras/src/server/api/root.ts +23 -0
- package/templates/t3-app/extras/src/server/api/routers/post/base.ts +40 -0
- package/templates/t3-app/extras/src/server/api/routers/post/with-auth-drizzle.ts +39 -0
- package/templates/t3-app/extras/src/server/api/routers/post/with-auth-prisma.ts +41 -0
- package/templates/t3-app/extras/src/server/api/routers/post/with-auth.ts +37 -0
- package/templates/t3-app/extras/src/server/api/routers/post/with-drizzle.ts +30 -0
- package/templates/t3-app/extras/src/server/api/routers/post/with-prisma.ts +31 -0
- package/templates/t3-app/extras/src/server/api/trpc-app/base.ts +103 -0
- package/templates/t3-app/extras/src/server/api/trpc-app/with-auth-db.ts +133 -0
- package/templates/t3-app/extras/src/server/api/trpc-app/with-auth.ts +130 -0
- package/templates/t3-app/extras/src/server/api/trpc-app/with-better-auth-db.ts +134 -0
- package/templates/t3-app/extras/src/server/api/trpc-app/with-better-auth.ts +131 -0
- package/templates/t3-app/extras/src/server/api/trpc-app/with-db.ts +106 -0
- package/templates/t3-app/extras/src/server/api/trpc-pages/base.ts +122 -0
- package/templates/t3-app/extras/src/server/api/trpc-pages/with-auth-db.ts +160 -0
- package/templates/t3-app/extras/src/server/api/trpc-pages/with-auth.ts +158 -0
- package/templates/t3-app/extras/src/server/api/trpc-pages/with-better-auth-db.ts +168 -0
- package/templates/t3-app/extras/src/server/api/trpc-pages/with-better-auth.ts +166 -0
- package/templates/t3-app/extras/src/server/api/trpc-pages/with-db.ts +125 -0
- package/templates/t3-app/extras/src/server/auth/config/base.ts +52 -0
- package/templates/t3-app/extras/src/server/auth/config/with-drizzle.ts +67 -0
- package/templates/t3-app/extras/src/server/auth/config/with-prisma.ts +56 -0
- package/templates/t3-app/extras/src/server/auth/index.ts +10 -0
- package/templates/t3-app/extras/src/server/better-auth/client.ts +5 -0
- package/templates/t3-app/extras/src/server/better-auth/config/base.ts +12 -0
- package/templates/t3-app/extras/src/server/better-auth/config/with-drizzle.ts +26 -0
- package/templates/t3-app/extras/src/server/better-auth/config/with-prisma.ts +26 -0
- package/templates/t3-app/extras/src/server/better-auth/index.ts +1 -0
- package/templates/t3-app/extras/src/server/better-auth/server.ts +7 -0
- package/templates/t3-app/extras/src/server/db/db-prisma-planetscale.ts +19 -0
- package/templates/t3-app/extras/src/server/db/db-prisma.ts +16 -0
- package/templates/t3-app/extras/src/server/db/index-drizzle/with-mysql.ts +18 -0
- package/templates/t3-app/extras/src/server/db/index-drizzle/with-planetscale.ts +7 -0
- package/templates/t3-app/extras/src/server/db/index-drizzle/with-postgres.ts +18 -0
- package/templates/t3-app/extras/src/server/db/index-drizzle/with-sqlite.ts +19 -0
- package/templates/t3-app/extras/src/server/db/schema-drizzle/base-mysql.ts +26 -0
- package/templates/t3-app/extras/src/server/db/schema-drizzle/base-planetscale.ts +26 -0
- package/templates/t3-app/extras/src/server/db/schema-drizzle/base-postgres.ts +26 -0
- package/templates/t3-app/extras/src/server/db/schema-drizzle/base-sqlite.ts +27 -0
- package/templates/t3-app/extras/src/server/db/schema-drizzle/with-auth-mysql.ts +111 -0
- package/templates/t3-app/extras/src/server/db/schema-drizzle/with-auth-planetscale.ts +100 -0
- package/templates/t3-app/extras/src/server/db/schema-drizzle/with-auth-postgres.ts +108 -0
- package/templates/t3-app/extras/src/server/db/schema-drizzle/with-auth-sqlite.ts +105 -0
- package/templates/t3-app/extras/src/server/db/schema-drizzle/with-better-auth-mysql.ts +106 -0
- package/templates/t3-app/extras/src/server/db/schema-drizzle/with-better-auth-planetscale.ts +106 -0
- package/templates/t3-app/extras/src/server/db/schema-drizzle/with-better-auth-postgres.ts +105 -0
- package/templates/t3-app/extras/src/server/db/schema-drizzle/with-better-auth-sqlite.ts +134 -0
- package/templates/t3-app/extras/src/styles/globals.css +6 -0
- package/templates/t3-app/extras/src/trpc/query-client.ts +25 -0
- package/templates/t3-app/extras/src/trpc/react.tsx +78 -0
- package/templates/t3-app/extras/src/trpc/server.ts +30 -0
- package/templates/t3-app/extras/src/utils/api.ts +68 -0
- package/templates/t3-app/extras/start-database/mysql.sh +86 -0
- package/templates/t3-app/extras/start-database/postgres.sh +88 -0
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
# ${workerName} Worker Instructions
|
|
2
|
+
|
|
3
|
+
This worker is responsible for ${workerRoleDescription}
|
|
4
|
+
|
|
5
|
+
## Worker-Specific Guidelines
|
|
6
|
+
|
|
7
|
+
- Follow the prompt in \`prompt.md\` for detailed role instructions
|
|
8
|
+
- Use container-use environments for all operations
|
|
9
|
+
- Reference \`.claude/commands/\`, \`.claude/skills/\`, and \`.claude/agents/\` for worker-specific resources
|
|
10
|
+
|
|
11
|
+
## Environment Operations
|
|
12
|
+
|
|
13
|
+
All file, code, and shell operations MUST use container-use environments.
|
|
14
|
+
|
|
15
|
+
- DO NOT use git CLI directly
|
|
16
|
+
- All operations must go through container-use MCP
|
|
17
|
+
- Inform user: \`container-use log <env_id>\` AND \`container-use checkout <env_id>\`
|
|
18
|
+
|
|
19
|
+
## Project Status & Configuration
|
|
20
|
+
|
|
21
|
+
**CRITICAL:** Always check `.boss/project-config.json` to understand project state before starting work.
|
|
22
|
+
|
|
23
|
+
**Read project-config.json to understand:**
|
|
24
|
+
- Current branch and workflow stage
|
|
25
|
+
- Active workers and their status
|
|
26
|
+
- Completed tasks
|
|
27
|
+
- Repository information
|
|
28
|
+
- Initialization status
|
|
29
|
+
|
|
30
|
+
**Update project-config.json when:**
|
|
31
|
+
- Starting work: Add your environment ID to `workflow.activeWorkers`
|
|
32
|
+
- Completing work: Add a summary to `workers.summaries` with:
|
|
33
|
+
- Environment ID
|
|
34
|
+
- Tasks completed
|
|
35
|
+
- Artifacts created (API docs, user guides, developer docs)
|
|
36
|
+
- Documentation coverage metrics
|
|
37
|
+
- Any blockers or issues encountered
|
|
38
|
+
- After merging: Remove from `workflow.activeWorkers` and add to `workflow.completedTasks`
|
|
39
|
+
|
|
40
|
+
**Example worker summary format:**
|
|
41
|
+
```json
|
|
42
|
+
{
|
|
43
|
+
"envId": "env-abc123",
|
|
44
|
+
"workerType": "${workerName}",
|
|
45
|
+
"completedAt": "2026-01-15T10:30:00Z",
|
|
46
|
+
"tasksCompleted": ["API documentation", "User guide", "Quickstart"],
|
|
47
|
+
"artifactsCreated": ["docs/api.md", "docs/user-guide.md", ".specify/specs/001-feature/quickstart.md"],
|
|
48
|
+
"coverage": "100%",
|
|
49
|
+
"notes": "Created comprehensive documentation for feature"
|
|
50
|
+
}
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
**IMPORTANT:**
|
|
54
|
+
- NEVER use git commands to check project status - read project-config.json instead
|
|
55
|
+
- ALWAYS update project-config.json when completing work
|
|
56
|
+
- Keep summaries concise but informative for BOSS to track progress
|
|
57
|
+
|
|
58
|
+
## Git Commit Strategy
|
|
59
|
+
|
|
60
|
+
**IMPORTANT:** Batch related changes into logical commits to reduce overhead and improve workflow efficiency.
|
|
61
|
+
|
|
62
|
+
### Batching Guidelines
|
|
63
|
+
|
|
64
|
+
1. **Group files by feature/fix** (not by file type)
|
|
65
|
+
2. **Aim for 1-3 commits per task** instead of 5-10
|
|
66
|
+
3. **Use meaningful commit messages** following Conventional Commits
|
|
67
|
+
4. **Only commit when reaching a logical checkpoint**
|
|
68
|
+
|
|
69
|
+
### Good Practice ✅
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
# Create documentation files in one commit
|
|
73
|
+
git add docs/api.md docs/user-guide.md .specify/specs/001-feature/quickstart.md
|
|
74
|
+
git commit -m "docs: add API documentation and user guide"
|
|
75
|
+
|
|
76
|
+
# Or batch complete documentation phase
|
|
77
|
+
git add docs/api.md docs/tutorials/ README.md
|
|
78
|
+
git commit -m "docs: complete feature documentation with API reference and tutorials"
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
### Bad Practice ❌
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
# Individual commits for related work (too granular)
|
|
85
|
+
git add docs/api.md
|
|
86
|
+
git commit -m "docs: add API docs"
|
|
87
|
+
|
|
88
|
+
git add docs/user-guide.md
|
|
89
|
+
git commit -m "docs: add guide"
|
|
90
|
+
|
|
91
|
+
git add README.md
|
|
92
|
+
git commit -m "docs: update README"
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
### Commit Message Format
|
|
96
|
+
|
|
97
|
+
Follow Conventional Commits:
|
|
98
|
+
- `docs:` - Documentation changes (primary for technical-writer)
|
|
99
|
+
|
|
100
|
+
### Expected Behavior
|
|
101
|
+
|
|
102
|
+
- **Simple task:** 1-2 commits (initial docs + refinements)
|
|
103
|
+
- **Complex task:** 2-3 commits (major documentation phases)
|
|
104
|
+
- **Avoid:** 5-10 commits for small changes
|
|
105
|
+
|
|
106
|
+
This batching strategy reduces git overhead by ~10-15 seconds per task and creates cleaner commit history.
|
|
107
|
+
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
# ${workerName} Worker Instructions
|
|
2
|
+
|
|
3
|
+
This worker is responsible for ${workerRoleDescription}
|
|
4
|
+
|
|
5
|
+
## Worker-Specific Guidelines
|
|
6
|
+
|
|
7
|
+
- Follow the prompt in \`prompt.md\` for detailed role instructions
|
|
8
|
+
- Use container-use environments for all operations
|
|
9
|
+
- Reference \`.claude/commands/\`, \`.claude/skills/\`, and \`.claude/agents/\` for worker-specific resources
|
|
10
|
+
|
|
11
|
+
## Environment Operations
|
|
12
|
+
|
|
13
|
+
All file, code, and shell operations MUST use container-use environments.
|
|
14
|
+
|
|
15
|
+
- DO NOT use git CLI directly
|
|
16
|
+
- All operations must go through container-use MCP
|
|
17
|
+
- Inform user: \`container-use log <env_id>\` AND \`container-use checkout <env_id>\`
|
|
18
|
+
|
|
19
|
+
## Project Status & Configuration
|
|
20
|
+
|
|
21
|
+
**CRITICAL:** Always check `.boss/project-config.json` to understand project state before starting work.
|
|
22
|
+
|
|
23
|
+
**Read project-config.json to understand:**
|
|
24
|
+
- Current branch and workflow stage
|
|
25
|
+
- Active workers and their status
|
|
26
|
+
- Completed tasks
|
|
27
|
+
- Repository information
|
|
28
|
+
- Initialization status
|
|
29
|
+
|
|
30
|
+
**Update project-config.json when:**
|
|
31
|
+
- Starting work: Add your environment ID to `workflow.activeWorkers`
|
|
32
|
+
- Completing work: Add a summary to `workers.summaries` with:
|
|
33
|
+
- Environment ID
|
|
34
|
+
- Tasks completed
|
|
35
|
+
- Artifacts created (test files, test reports)
|
|
36
|
+
- Test coverage metrics
|
|
37
|
+
- Mutation testing scores
|
|
38
|
+
- Any blockers or issues encountered
|
|
39
|
+
- After merging: Remove from `workflow.activeWorkers` and add to `workflow.completedTasks`
|
|
40
|
+
|
|
41
|
+
**Example worker summary format:**
|
|
42
|
+
```json
|
|
43
|
+
{
|
|
44
|
+
"envId": "env-abc123",
|
|
45
|
+
"workerType": "${workerName}",
|
|
46
|
+
"completedAt": "2026-01-15T10:30:00Z",
|
|
47
|
+
"tasksCompleted": ["BDD test suite", "Integration tests"],
|
|
48
|
+
"artifactsCreated": ["tests/feature.test.ts", "tests/integration.test.ts"],
|
|
49
|
+
"testCoverage": "85%",
|
|
50
|
+
"mutationScore": "82%",
|
|
51
|
+
"notes": "Created comprehensive test suite with BDD tests matching spec.md"
|
|
52
|
+
}
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
**IMPORTANT:**
|
|
56
|
+
- NEVER use git commands to check project status - read project-config.json instead
|
|
57
|
+
- ALWAYS update project-config.json when completing work
|
|
58
|
+
- Keep summaries concise but informative for BOSS to track progress
|
|
59
|
+
|
|
60
|
+
## Git Commit Strategy
|
|
61
|
+
|
|
62
|
+
**IMPORTANT:** Batch related changes into logical commits to reduce overhead and improve workflow efficiency.
|
|
63
|
+
|
|
64
|
+
### Batching Guidelines
|
|
65
|
+
|
|
66
|
+
1. **Group files by feature/fix** (not by file type)
|
|
67
|
+
2. **Aim for 1-3 commits per task** instead of 5-10
|
|
68
|
+
3. **Use meaningful commit messages** following Conventional Commits
|
|
69
|
+
4. **Only commit when reaching a logical checkpoint**
|
|
70
|
+
|
|
71
|
+
### Good Practice ✅
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
# Create test files in one commit
|
|
75
|
+
git add tests/feature.test.ts tests/integration.test.ts tests/e2e.test.ts
|
|
76
|
+
git commit -m "test: add comprehensive test suite with unit, integration, and e2e tests"
|
|
77
|
+
|
|
78
|
+
# Or batch test implementation with fixtures
|
|
79
|
+
git add tests/api/users.test.ts tests/fixtures/users.ts tests/helpers/auth.ts
|
|
80
|
+
git commit -m "test: implement user API tests with fixtures and helpers"
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
### Bad Practice ❌
|
|
84
|
+
|
|
85
|
+
```bash
|
|
86
|
+
# Individual commits for related work (too granular)
|
|
87
|
+
git add tests/feature.test.ts
|
|
88
|
+
git commit -m "test: add unit tests"
|
|
89
|
+
|
|
90
|
+
git add tests/integration.test.ts
|
|
91
|
+
git commit -m "test: add integration tests"
|
|
92
|
+
|
|
93
|
+
git add tests/e2e.test.ts
|
|
94
|
+
git commit -m "test: add e2e tests"
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
### Commit Message Format
|
|
98
|
+
|
|
99
|
+
Follow Conventional Commits:
|
|
100
|
+
- `test:` - Adding/updating tests (primary for tester)
|
|
101
|
+
- `fix:` - Bug fixes found during testing
|
|
102
|
+
|
|
103
|
+
### Expected Behavior
|
|
104
|
+
|
|
105
|
+
- **Simple task:** 1-2 commits (test suite + coverage)
|
|
106
|
+
- **Complex task:** 2-3 commits (major test phases)
|
|
107
|
+
- **Avoid:** 5-10 commits for small changes
|
|
108
|
+
|
|
109
|
+
This batching strategy reduces git overhead by ~10-15 seconds per task and creates cleaner commit history.
|
|
110
|
+
|
|
File without changes
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
# BOSS Commands
|
|
2
|
+
|
|
3
|
+
## Available Commands
|
|
4
|
+
|
|
5
|
+
### Container-Use Commands
|
|
6
|
+
|
|
7
|
+
- \`container-use log <env_id>\` - View worker logs
|
|
8
|
+
- \`container-use checkout <env_id>\` - Checkout worker branch
|
|
9
|
+
- \`container-use diff <env_id>\` - View code changes
|
|
10
|
+
- \`container-use merge <env_id>\` - Merge worker branch
|
|
11
|
+
|
|
12
|
+
### Spec-Kit Commands
|
|
13
|
+
|
|
14
|
+
- \`bash .specify/scripts/speckit.plan.sh\` - Generate plan
|
|
15
|
+
- \`bash .specify/scripts/speckit.tasks.sh\` - Generate tasks
|
|
16
|
+
- \`bash .specify/scripts/speckit.implement.sh\` - Implement features
|
|
17
|
+
|
|
18
|
+
### BOSS Commands
|
|
19
|
+
|
|
20
|
+
- \`./start-boss.sh\` - Start BOSS with MCP restrictions
|
|
21
|
+
|
|
22
|
+
### Initial Setup Command
|
|
23
|
+
|
|
24
|
+
**Command:** `boss-initial-setup`
|
|
25
|
+
|
|
26
|
+
**Purpose:** Complete the initial project setup after bootstrap.
|
|
27
|
+
|
|
28
|
+
**When to Run:**
|
|
29
|
+
- After bootstrap completes
|
|
30
|
+
- When `initialization.stage` in `.boss/project-config.json` is `"bootstrap"` or `"remote-setup"`
|
|
31
|
+
|
|
32
|
+
**What It Does:**
|
|
33
|
+
1. Checks `.boss/project-config.json` for current initialization status
|
|
34
|
+
2. Verifies if remote repository exists
|
|
35
|
+
3. If no remote exists:
|
|
36
|
+
- Asks user:
|
|
37
|
+
- Should repository be **private** or **public**? (default: private)
|
|
38
|
+
- Should it be created in an **organization**? (if yes, which org?)
|
|
39
|
+
- Repository name (if different from project name)
|
|
40
|
+
- Creates GitHub repository using GitHub MCP
|
|
41
|
+
- Adds remote using Container-Use MCP (NOT git CLI)
|
|
42
|
+
- Pushes initial commit to remote
|
|
43
|
+
- Updates `.boss/project-config.json` with remote information
|
|
44
|
+
4. Marks `initialization.stage = "ready"` in project-config.json
|
|
45
|
+
5. Updates project status to indicate setup is complete
|
|
46
|
+
|
|
47
|
+
**How to Execute:**
|
|
48
|
+
- BOSS can run this command directly when user asks to complete setup
|
|
49
|
+
- Or BOSS can spawn an initial-setup worker using Container-Use MCP
|
|
50
|
+
- Worker should follow the checklist in its prompt.md
|
|
51
|
+
|
|
52
|
+
**Checklist for Initial Setup:**
|
|
53
|
+
- [ ] Read `.boss/project-config.json` to check current status
|
|
54
|
+
- [ ] **Verify:** Main branch is EMPTY (only empty commit) - bootstrap files are NOT on main
|
|
55
|
+
- [ ] **Verify:** Feature branch `feature/boss-initial-setup` exists with ALL bootstrap files (created during bootstrap)
|
|
56
|
+
- [ ] Confirm you are on `feature/boss-initial-setup` branch (created during bootstrap)
|
|
57
|
+
- [ ] Check if remote repository exists (read project-config.json, NOT git)
|
|
58
|
+
- [ ] If no remote:
|
|
59
|
+
- [ ] Ask user for repository preferences (private/public, org)
|
|
60
|
+
- [ ] Create GitHub repository using GitHub MCP (will create under personal account)
|
|
61
|
+
- [ ] If organization was requested:
|
|
62
|
+
- [ ] Ask user: "Repository created under your personal account. Would you like me to transfer it to [org-name] now?"
|
|
63
|
+
- [ ] If user confirms:
|
|
64
|
+
- [ ] Transfer repository using GitHub API: `POST /repos/{owner}/{repo}/transfer` with `{"new_owner": "org-name"}`
|
|
65
|
+
- [ ] Wait for transfer to complete
|
|
66
|
+
- [ ] Update git remote URL to reflect new owner using Container-Use MCP
|
|
67
|
+
- [ ] **CRITICAL: Lock main branch and require PRs** - Use GitHub API to set branch protection:
|
|
68
|
+
- [ ] Make HTTP PUT request to: `https://api.github.com/repos/{owner}/{repo}/branches/main/protection`
|
|
69
|
+
- [ ] Headers: `Authorization: Bearer {GITHUB_PERSONAL_ACCESS_TOKEN}`, `Accept: application/vnd.github.v3+json` (use GITHUB_PERSONAL_ACCESS_TOKEN, not GITHUB_TOKEN, for API calls)
|
|
70
|
+
- [ ] Body (JSON):
|
|
71
|
+
```json
|
|
72
|
+
{
|
|
73
|
+
"required_pull_request_reviews": {
|
|
74
|
+
"required": true,
|
|
75
|
+
"dismiss_stale_reviews": true,
|
|
76
|
+
"require_code_owner_reviews": false,
|
|
77
|
+
"required_approving_review_count": 1
|
|
78
|
+
},
|
|
79
|
+
"enforce_admins": true,
|
|
80
|
+
"required_status_checks": {
|
|
81
|
+
"strict": true,
|
|
82
|
+
"contexts": []
|
|
83
|
+
},
|
|
84
|
+
"restrictions": null,
|
|
85
|
+
"allow_force_pushes": false,
|
|
86
|
+
"allow_deletions": false,
|
|
87
|
+
"required_linear_history": false,
|
|
88
|
+
"allow_squash_merge": true,
|
|
89
|
+
"allow_merge_commit": true,
|
|
90
|
+
"allow_rebase_merge": true
|
|
91
|
+
}
|
|
92
|
+
```
|
|
93
|
+
- [ ] Verify protection was set: Check response status is 200
|
|
94
|
+
- [ ] **DO NOT skip this step** - branch protection is mandatory
|
|
95
|
+
- [ ] **CRITICAL ORDER - Follow EXACTLY:**
|
|
96
|
+
1. **Add remote using HTTPS:** `git remote add origin https://github.com/<owner>/<repo>.git` (ALWAYS use HTTPS, NEVER SSH `git@github.com` format)
|
|
97
|
+
2. **If transferred, update remote:** `git remote set-url origin https://github.com/<new-owner>/<repo>.git` (use HTTPS format)
|
|
98
|
+
3. **Check current branch:** `git branch --show-current` - verify you're on the correct branch
|
|
99
|
+
4. **Handle uncommitted changes:** If on `feature/boss-initial-setup` with uncommitted changes, commit them first: `git add . && git commit -m "chore: bootstrap files"` (these should be on feature branch)
|
|
100
|
+
5. **Switch to main branch:** `git checkout main` (if uncommitted changes prevent checkout, commit them to current branch first, then switch)
|
|
101
|
+
6. **FIRST push empty main branch:** `git push -u origin main` (main is EMPTY - only empty commit, no validation needed, MUST be pushed first, git will use GITHUB_TOKEN from environment automatically, which is set to same value as GITHUB_PERSONAL_ACCESS_TOKEN)
|
|
102
|
+
- **NOTE:** The pre-push hook allows empty main push without validation checks
|
|
103
|
+
- **Main branch must be pushed first (empty) before feature branch**
|
|
104
|
+
7. **Switch back to feature branch:** `git checkout feature/boss-initial-setup` (branch should already exist from bootstrap)
|
|
105
|
+
8. **Verify validation checks pass BEFORE pushing feature branch:**
|
|
106
|
+
- **BEFORE pushing feature branch, verify all checks pass:**
|
|
107
|
+
1. **Typecheck:** Run `pnpm typecheck` (or `npm run typecheck`) - must pass
|
|
108
|
+
2. **Lint:** Run `pnpm lint` (or `npm run lint`) - must pass
|
|
109
|
+
3. **Security:** Run `bash scripts/security-check.sh` - must pass
|
|
110
|
+
4. **Tests:** Run `pnpm test:unit` (or `npm run test:unit`) - must pass
|
|
111
|
+
- **If any check fails, fix the issues before pushing**
|
|
112
|
+
9. **THEN push feature branch:** `git push -u origin feature/boss-initial-setup` (contains all bootstrap files, git will use GITHUB_TOKEN from environment automatically, which is set to same value as GITHUB_PERSONAL_ACCESS_TOKEN)
|
|
113
|
+
10. **Update project-config.json** with repository info (including final owner after transfer)
|
|
114
|
+
11. **Commit and push project-config.json:** `git add .boss/project-config.json && git commit -m "chore: update project-config.json" && git push`
|
|
115
|
+
12. **Mark `initialization.stage = "ready"`** in project-config.json
|
|
116
|
+
13. **Update `initialization.remoteCreated = true`** and `initialization.initialSetupComplete = true`
|
|
117
|
+
14. **Commit and push again:** `git add .boss/project-config.json && git commit -m "chore: mark initialization as ready" && git push`
|
|
118
|
+
15. **FINAL STEP - Create PR from feature/boss-initial-setup to main:** Use GitHub MCP `create_pull_request` with:
|
|
119
|
+
- **Title:** `"chore: BOSS initial setup - bootstrap files"`
|
|
120
|
+
- **Body:** `"This PR contains all BOSS bootstrap files and initial project structure. Ready for review and merge."`
|
|
121
|
+
- **Base branch:** `"main"`
|
|
122
|
+
- **Head branch:** `"feature/boss-initial-setup"`
|
|
123
|
+
- **DO NOT ask user** - create PR automatically
|
|
124
|
+
- [ ] **NEVER push feature branch before main branch** - empty main must be pushed first
|
|
125
|
+
- [ ] **After this, NEVER push directly to main** - main branch is protected, use PRs for future changes
|
|
126
|
+
- [ ] Report completion to user with PR link
|
|
127
|
+
|
|
128
|
+
**Important Notes:**
|
|
129
|
+
- BOSS uses git commands for orchestration (branches, pushes, merges) - git CLI is allowed and expected
|
|
130
|
+
- Workers use Container-Use MCP for their git operations (automatic)
|
|
131
|
+
- ALWAYS update `.boss/project-config.json` to reflect status changes, then commit and push immediately
|
|
132
|
+
- ALWAYS ask user for repository preferences before creating
|
|
133
|
+
- Default to private repositories unless user specifies otherwise
|
|
134
|
+
- **CRITICAL:** Main branch MUST be protected before any pushes - require PRs for all changes
|
|
135
|
+
- **NEVER push directly to main branch** - always push to feature branch and create PR
|
|
136
|
+
- **ALWAYS create PRs automatically** - never ask user if they want a PR created
|
|
137
|
+
- **MINIMIZE status checks** - only check worker/environment status when necessary, not repeatedly
|
|
138
|
+
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# BOSS Workflow Rules
|
|
2
|
+
|
|
3
|
+
## Spec-Kit Phases
|
|
4
|
+
|
|
5
|
+
Follow the 8-phase Spec-Kit methodology:
|
|
6
|
+
|
|
7
|
+
1. **Constitution** - Create/update constitution.md
|
|
8
|
+
2. **Clarification** - Gather business requirements
|
|
9
|
+
3. **Specification** - Write user stories (Given/When/Then)
|
|
10
|
+
4. **Planning** - Create technical plan
|
|
11
|
+
5. **Validation** - Validate against constitution
|
|
12
|
+
6. **Task Breakdown** - Create tasks.md with [P] markers
|
|
13
|
+
7. **Implementation** - TDD + BDD implementation
|
|
14
|
+
8. **Consolidation** - Merge and create delivery artifacts
|
|
15
|
+
|
|
16
|
+
## Worker Coordination
|
|
17
|
+
|
|
18
|
+
- Workers execute in parallel when tasks marked with [P]
|
|
19
|
+
- Each worker in isolated container-use environment
|
|
20
|
+
- Workers use Spec-Kit templates from \`.specify/templates/\`
|
|
21
|
+
|
|
22
|
+
## Quality Gates
|
|
23
|
+
|
|
24
|
+
- All quality gates must pass before merging
|
|
25
|
+
- Coverage and mutation thresholds are enforced
|
|
26
|
+
- Documentation must be complete
|
|
27
|
+
|
|
28
|
+
## Communication Standards
|
|
29
|
+
|
|
30
|
+
- **CRITICAL:** Use plain text only when communicating with workers - NO emojis
|
|
31
|
+
- All messages, instructions, prompts, and feedback to workers must be in plain text format
|
|
32
|
+
- Emojis should not be used in worker prompts, Container-Use instructions, or any worker-related communication
|
|
33
|
+
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# Code Style
|
|
2
|
+
|
|
3
|
+
## TypeScript
|
|
4
|
+
|
|
5
|
+
- Use strict TypeScript configuration
|
|
6
|
+
- Prefer explicit types over `any`
|
|
7
|
+
- Use interfaces for object shapes
|
|
8
|
+
- Use enums for constants
|
|
9
|
+
|
|
10
|
+
## Naming Conventions
|
|
11
|
+
|
|
12
|
+
- Use camelCase for variables and functions
|
|
13
|
+
- Use PascalCase for classes and types
|
|
14
|
+
- Use UPPER_CASE for constants
|
|
15
|
+
- Use kebab-case for file names
|
|
16
|
+
|
|
17
|
+
## Formatting
|
|
18
|
+
|
|
19
|
+
- Use 2 spaces for indentation
|
|
20
|
+
- Use semicolons
|
|
21
|
+
- Use single quotes for strings
|
|
22
|
+
- Trailing commas in multi-line objects/arrays
|
|
23
|
+
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# Security Guidelines
|
|
2
|
+
|
|
3
|
+
## Secrets Management
|
|
4
|
+
|
|
5
|
+
- NEVER commit secrets to git
|
|
6
|
+
- Use 1Password vault "boss" for all secrets
|
|
7
|
+
- Reference secrets via \`op://boss/credential/needed\` format
|
|
8
|
+
- Secrets are injected at runtime via container-use
|
|
9
|
+
|
|
10
|
+
## Dependencies
|
|
11
|
+
|
|
12
|
+
- Keep dependencies up to date
|
|
13
|
+
- Use security scanning tools
|
|
14
|
+
- Review dependency changes in PRs
|
|
15
|
+
|
|
16
|
+
## Code Security
|
|
17
|
+
|
|
18
|
+
- Validate all user input
|
|
19
|
+
- Use parameterized queries for database
|
|
20
|
+
- Implement proper authentication/authorization
|
|
21
|
+
- Follow OWASP guidelines
|
|
22
|
+
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# Testing Requirements
|
|
2
|
+
|
|
3
|
+
## Test-First (NON-NEGOTIABLE)
|
|
4
|
+
|
|
5
|
+
- Write tests BEFORE implementation
|
|
6
|
+
- Follow TDD cycle: red → green → refactor
|
|
7
|
+
- All tests must pass before committing
|
|
8
|
+
|
|
9
|
+
## BDD (Mandatory)
|
|
10
|
+
|
|
11
|
+
- Use Given/When/Then format for test descriptions
|
|
12
|
+
- Use BDD test frameworks (Cucumber, Gherkin, or equivalent)
|
|
13
|
+
- Tests should read like specifications
|
|
14
|
+
|
|
15
|
+
## Coverage
|
|
16
|
+
|
|
17
|
+
- Unit tests: ≥80% coverage
|
|
18
|
+
- Integration tests: Required for all API endpoints
|
|
19
|
+
- Mutation testing: ≥80% score
|
|
20
|
+
|
|
21
|
+
## Test Structure
|
|
22
|
+
|
|
23
|
+
\`\`\`
|
|
24
|
+
describe('Feature Name', () => {
|
|
25
|
+
describe('Given [context]', () => {
|
|
26
|
+
it('When [action], Then [expected result]', () => {
|
|
27
|
+
// Test implementation
|
|
28
|
+
});
|
|
29
|
+
});
|
|
30
|
+
});
|
|
31
|
+
\`\`\`
|
|
32
|
+
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
{
|
|
2
|
+
"permissions": {
|
|
3
|
+
"allow": [
|
|
4
|
+
"Bash(test:*)",
|
|
5
|
+
"Bash(grep:*)",
|
|
6
|
+
"Bash(cat:*)",
|
|
7
|
+
"Bash(ls:*)",
|
|
8
|
+
"Bash(echo:*)",
|
|
9
|
+
"Bash(curl:*)",
|
|
10
|
+
"Bash(pnpm:*)",
|
|
11
|
+
"Bash(npm:*)",
|
|
12
|
+
"Bash(bash scripts/security-check.sh)",
|
|
13
|
+
"Bash(cat .boss/project-config.json)",
|
|
14
|
+
"Bash(ls .boss/)",
|
|
15
|
+
"Bash(ls -la .boss/)",
|
|
16
|
+
"Bash(git commit:*)",
|
|
17
|
+
"Bash(git merge:*)",
|
|
18
|
+
"Bash(git pull:*)",
|
|
19
|
+
"Bash(git push:*)",
|
|
20
|
+
"Bash(git add:*)",
|
|
21
|
+
"Bash(git branch:*)",
|
|
22
|
+
"Bash(git checkout:*)",
|
|
23
|
+
"Bash(git log:*)",
|
|
24
|
+
"Bash(git ls-tree:*)",
|
|
25
|
+
"Bash(git remote:*)",
|
|
26
|
+
"Bash(git show:*)",
|
|
27
|
+
"Bash(git status:*)",
|
|
28
|
+
"Bash(rm ./*)",
|
|
29
|
+
"Bash(rm -f ./*)",
|
|
30
|
+
"Bash(rm ./.*)",
|
|
31
|
+
"Bash(rm -f ./.*)",
|
|
32
|
+
"Bash(rm ./**/*)",
|
|
33
|
+
"Bash(rm -f ./**/*)",
|
|
34
|
+
"Read(*)",
|
|
35
|
+
"Read(**)",
|
|
36
|
+
"Read(.*)",
|
|
37
|
+
"Read(.*/**)",
|
|
38
|
+
"Read(.boss/**)",
|
|
39
|
+
"Read(.boss/project-config.json)",
|
|
40
|
+
"Write(*)",
|
|
41
|
+
"Write(**)",
|
|
42
|
+
"Write(.*)",
|
|
43
|
+
"Write(.*/**)",
|
|
44
|
+
"Write(.boss/**)",
|
|
45
|
+
"Write(.boss/project-config.json)",
|
|
46
|
+
"Edit(*)",
|
|
47
|
+
"Edit(**)",
|
|
48
|
+
"Edit(.*)",
|
|
49
|
+
"Edit(.*/**)",
|
|
50
|
+
"Edit(.boss/**)",
|
|
51
|
+
"Edit(.boss/project-config.json)",
|
|
52
|
+
"Delete(*)",
|
|
53
|
+
"Delete(**)"
|
|
54
|
+
],
|
|
55
|
+
"ask": [
|
|
56
|
+
"Bash(rm -rf ./*)"
|
|
57
|
+
],
|
|
58
|
+
"deny": [
|
|
59
|
+
"Bash(rm //etc/**)",
|
|
60
|
+
"Bash(rm //usr/**)",
|
|
61
|
+
"Bash(rm //var/**)",
|
|
62
|
+
"Bash(rm //home/**)",
|
|
63
|
+
"Bash(rm -f //etc/**)",
|
|
64
|
+
"Bash(rm -f //usr/**)",
|
|
65
|
+
"Bash(rm -f //var/**)",
|
|
66
|
+
"Bash(rm -rf //etc/**)",
|
|
67
|
+
"Bash(rm -rf //usr/**)",
|
|
68
|
+
"Bash(rm -rf //var/**)",
|
|
69
|
+
"Read(//etc/**)",
|
|
70
|
+
"Read(//usr/**)",
|
|
71
|
+
"Read(//var/**)",
|
|
72
|
+
"Read(//root/**)",
|
|
73
|
+
"Read(//tmp/**)",
|
|
74
|
+
"Write(//etc/**)",
|
|
75
|
+
"Write(//usr/**)",
|
|
76
|
+
"Write(//var/**)",
|
|
77
|
+
"Write(//root/**)",
|
|
78
|
+
"Edit(//etc/**)",
|
|
79
|
+
"Edit(//usr/**)",
|
|
80
|
+
"Edit(//var/**)",
|
|
81
|
+
"Edit(//root/**)",
|
|
82
|
+
"Delete(//etc/**)",
|
|
83
|
+
"Delete(//usr/**)",
|
|
84
|
+
"Delete(//var/**)",
|
|
85
|
+
"Delete(//root/**)"
|
|
86
|
+
]
|
|
87
|
+
}
|
|
88
|
+
}
|
|
File without changes
|