bsmnt 0.0.2 → 0.1.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/.github/workflows/release.yml +2 -0
- package/CHANGELOG.md +21 -0
- package/CLAUDE.md +42 -23
- package/README.md +33 -11
- package/biome.json +1 -0
- package/bun.lock +1 -1
- package/docs/architecture.drawio +266 -0
- package/docs/architecture.mermaid +91 -0
- package/package.json +1 -1
- package/{bin → packages/cli/bin}/index.js +28 -27
- package/packages/cli/package.json +16 -0
- package/{src → packages/cli/src}/commands/add-integration.js +23 -25
- package/{src → packages/cli/src}/commands/create.js +104 -133
- package/packages/create-basement-app/integrations/basehub/config.js +21 -0
- package/packages/create-basement-app/integrations/sanity/config.js +46 -0
- package/{src → packages/create-basement-app/integrations/sanity}/mergers/check-integration-merger.js +1 -1
- package/{src → packages/create-basement-app/integrations/sanity}/mergers/layout-merger.js +1 -1
- package/{src → packages/create-basement-app/integrations/sanity}/mergers/sitemap-merger.js +1 -1
- package/packages/create-basement-app/package.json +10 -0
- package/packages/create-basement-app/src/configs/animations.js +28 -0
- package/packages/create-basement-app/src/index.js +15 -0
- package/packages/create-basement-app/src/mergers/check-integration-merger.js +105 -0
- package/{src → packages/create-basement-app/src}/mergers/config.js +1 -7
- package/{src → packages/create-basement-app/src}/mergers/index.js +87 -93
- package/packages/create-basement-app/src/mergers/layout-merger.js +223 -0
- package/packages/create-basement-app/src/mergers/sitemap-merger.js +121 -0
- package/packages/create-basement-app/template-hooks/config.js +38 -0
- package/packages/create-basement-app/templates/default/.biome/plugins/README.md +21 -0
- package/packages/create-basement-app/templates/default/.biome/plugins/no-anchor-element.grit +12 -0
- package/packages/create-basement-app/templates/default/.biome/plugins/no-relative-parent-imports.grit +10 -0
- package/packages/create-basement-app/templates/default/.biome/plugins/no-unnecessary-forwardref.grit +9 -0
- package/packages/create-basement-app/templates/default/.cursor/rules/README.md +184 -0
- package/packages/create-basement-app/templates/default/.cursor/rules/architecture.mdc +437 -0
- package/packages/create-basement-app/templates/default/.cursor/rules/components.mdc +436 -0
- package/packages/create-basement-app/templates/default/.cursor/rules/integrations.mdc +447 -0
- package/packages/create-basement-app/templates/default/.cursor/rules/main.mdc +278 -0
- package/packages/create-basement-app/templates/default/.cursor/rules/styling.mdc +433 -0
- package/packages/create-basement-app/templates/default/.editorconfig +40 -0
- package/packages/create-basement-app/templates/default/.env.example +81 -0
- package/packages/create-basement-app/templates/default/.gitattributes +19 -0
- package/packages/create-basement-app/templates/default/.github/PULL_REQUEST_TEMPLATE.md +14 -0
- package/packages/create-basement-app/templates/default/.github/workflows/lighthouse-to-slack.yml +136 -0
- package/packages/create-basement-app/templates/default/.vscode/extensions.json +20 -0
- package/packages/create-basement-app/templates/default/.vscode/settings.json +105 -0
- package/packages/create-basement-app/templates/default/README.md +221 -0
- package/packages/create-basement-app/templates/default/_gitignore +67 -0
- package/packages/create-basement-app/templates/default/app/favicon.ico +0 -0
- package/packages/create-basement-app/templates/default/app/layout.tsx +104 -0
- package/packages/create-basement-app/templates/default/app/page.tsx +275 -0
- package/packages/create-basement-app/templates/default/app/robots.ts +15 -0
- package/packages/create-basement-app/templates/default/app/sitemap.ts +16 -0
- package/packages/create-basement-app/templates/default/biome.json +250 -0
- package/packages/create-basement-app/templates/default/components/basement.svg +1 -0
- package/packages/create-basement-app/templates/default/components/layout/footer/index.tsx +27 -0
- package/packages/create-basement-app/templates/default/components/layout/header/index.tsx +11 -0
- package/packages/create-basement-app/templates/default/components/layout/theme/index.tsx +66 -0
- package/packages/create-basement-app/templates/default/components/layout/wrapper/index.tsx +65 -0
- package/packages/create-basement-app/templates/default/components/ui/README.md +77 -0
- package/packages/create-basement-app/templates/default/components/ui/image/README.md +37 -0
- package/packages/create-basement-app/templates/default/components/ui/image/index.tsx +224 -0
- package/packages/create-basement-app/templates/default/components/ui/link/index.tsx +146 -0
- package/packages/create-basement-app/templates/default/lib/README.md +33 -0
- package/packages/create-basement-app/templates/default/lib/hooks/index.ts +12 -0
- package/packages/create-basement-app/templates/default/lib/hooks/use-device-detection.ts +81 -0
- package/packages/create-basement-app/templates/default/lib/hooks/use-media-breakpoint.ts +15 -0
- package/packages/create-basement-app/templates/default/lib/hooks/use-prefetch.ts +74 -0
- package/packages/create-basement-app/templates/default/lib/scripts/dev.ts +52 -0
- package/packages/create-basement-app/templates/default/lib/scripts/generate-component.ts +322 -0
- package/packages/create-basement-app/templates/default/lib/scripts/generate-page.ts +193 -0
- package/packages/create-basement-app/templates/default/lib/scripts/generate.ts +79 -0
- package/packages/create-basement-app/templates/default/lib/scripts/utils.ts +246 -0
- package/packages/create-basement-app/templates/default/lib/store/app.ts +11 -0
- package/packages/create-basement-app/templates/default/lib/store/index.ts +11 -0
- package/packages/create-basement-app/templates/default/lib/styles/README.md +64 -0
- package/packages/create-basement-app/templates/default/lib/styles/cn.ts +7 -0
- package/packages/create-basement-app/templates/default/lib/styles/colors.ts +63 -0
- package/packages/create-basement-app/templates/default/lib/styles/config.ts +34 -0
- package/packages/create-basement-app/templates/default/lib/styles/css/global.css +85 -0
- package/packages/create-basement-app/templates/default/lib/styles/css/index.css +6 -0
- package/packages/create-basement-app/templates/default/lib/styles/css/reset.css +166 -0
- package/packages/create-basement-app/templates/default/lib/styles/css/root.css +68 -0
- package/packages/create-basement-app/templates/default/lib/styles/css/tailwind.css +132 -0
- package/packages/create-basement-app/templates/default/lib/styles/easings.ts +21 -0
- package/packages/create-basement-app/templates/default/lib/styles/fonts.ts +28 -0
- package/packages/create-basement-app/templates/default/lib/styles/index.ts +12 -0
- package/packages/create-basement-app/templates/default/lib/styles/layout.mjs +27 -0
- package/packages/create-basement-app/templates/default/lib/styles/scripts/README.md +29 -0
- package/packages/create-basement-app/templates/default/lib/styles/scripts/generate-root.ts +57 -0
- package/packages/create-basement-app/templates/default/lib/styles/scripts/generate-tailwind.ts +162 -0
- package/packages/create-basement-app/templates/default/lib/styles/scripts/postcss-functions.mjs +168 -0
- package/packages/create-basement-app/templates/default/lib/styles/scripts/setup-styles.ts +24 -0
- package/packages/create-basement-app/templates/default/lib/styles/scripts/utils.ts +20 -0
- package/packages/create-basement-app/templates/default/lib/styles/typography.ts +36 -0
- package/packages/create-basement-app/templates/default/lib/utils/README.md +40 -0
- package/packages/create-basement-app/templates/default/lib/utils/css.d.ts +21 -0
- package/packages/create-basement-app/templates/default/lib/utils/easings.ts +240 -0
- package/packages/create-basement-app/templates/default/lib/utils/fetch.ts +84 -0
- package/packages/create-basement-app/templates/default/lib/utils/math.test.ts +221 -0
- package/packages/create-basement-app/templates/default/lib/utils/math.ts +236 -0
- package/packages/create-basement-app/templates/default/lib/utils/metadata.ts +126 -0
- package/packages/create-basement-app/templates/default/lib/utils/strings.test.ts +166 -0
- package/packages/create-basement-app/templates/default/lib/utils/strings.ts +246 -0
- package/packages/create-basement-app/templates/default/lib/utils/types.d.ts +15 -0
- package/packages/create-basement-app/templates/default/lib/utils/viewport.test.ts +256 -0
- package/packages/create-basement-app/templates/default/lib/utils/viewport.ts +193 -0
- package/packages/create-basement-app/templates/default/next.config.ts +142 -0
- package/packages/create-basement-app/templates/default/package.json +62 -0
- package/packages/create-basement-app/templates/default/postcss.config.mjs +42 -0
- package/packages/create-basement-app/templates/default/public/fonts/geist/Geist-Mono.woff2 +0 -0
- package/packages/create-basement-app/templates/default/tsconfig.json +43 -0
- package/packages/create-basement-app/templates/experiment/.biome/plugins/README.md +21 -0
- package/packages/create-basement-app/templates/experiment/.biome/plugins/no-anchor-element.grit +12 -0
- package/packages/create-basement-app/templates/experiment/.biome/plugins/no-relative-parent-imports.grit +10 -0
- package/packages/create-basement-app/templates/experiment/.biome/plugins/no-unnecessary-forwardref.grit +9 -0
- package/packages/create-basement-app/templates/experiment/.cursor/rules/README.md +184 -0
- package/packages/create-basement-app/templates/experiment/.cursor/rules/architecture.mdc +437 -0
- package/packages/create-basement-app/templates/experiment/.cursor/rules/components.mdc +436 -0
- package/packages/create-basement-app/templates/experiment/.cursor/rules/integrations.mdc +447 -0
- package/packages/create-basement-app/templates/experiment/.cursor/rules/main.mdc +278 -0
- package/packages/create-basement-app/templates/experiment/.cursor/rules/styling.mdc +433 -0
- package/packages/create-basement-app/templates/experiment/.editorconfig +40 -0
- package/packages/create-basement-app/templates/experiment/.env.example +81 -0
- package/packages/create-basement-app/templates/experiment/.gitattributes +19 -0
- package/packages/create-basement-app/templates/experiment/.github/PULL_REQUEST_TEMPLATE.md +14 -0
- package/packages/create-basement-app/templates/experiment/.github/workflows/lighthouse-to-slack.yml +136 -0
- package/packages/create-basement-app/templates/experiment/.vscode/extensions.json +20 -0
- package/packages/create-basement-app/templates/experiment/.vscode/settings.json +105 -0
- package/packages/create-basement-app/templates/experiment/README.md +221 -0
- package/packages/create-basement-app/templates/experiment/_gitignore +67 -0
- package/packages/create-basement-app/templates/experiment/app/favicon.ico +0 -0
- package/packages/create-basement-app/templates/experiment/app/layout.tsx +104 -0
- package/packages/create-basement-app/templates/experiment/app/page.tsx +275 -0
- package/packages/create-basement-app/templates/experiment/app/robots.ts +15 -0
- package/packages/create-basement-app/templates/experiment/app/sitemap.ts +16 -0
- package/packages/create-basement-app/templates/experiment/biome.json +250 -0
- package/packages/create-basement-app/templates/experiment/components/basement.svg +1 -0
- package/packages/create-basement-app/templates/experiment/components/layout/footer/index.tsx +27 -0
- package/packages/create-basement-app/templates/experiment/components/layout/header/index.tsx +58 -0
- package/packages/create-basement-app/templates/experiment/components/layout/navigation-menu.tsx +127 -0
- package/packages/create-basement-app/templates/experiment/components/layout/theme/index.tsx +66 -0
- package/packages/create-basement-app/templates/experiment/components/layout/wrapper/index.tsx +65 -0
- package/packages/create-basement-app/templates/experiment/components/ui/README.md +77 -0
- package/packages/create-basement-app/templates/experiment/components/ui/image/README.md +37 -0
- package/packages/create-basement-app/templates/experiment/components/ui/image/index.tsx +224 -0
- package/packages/create-basement-app/templates/experiment/components/ui/link/index.tsx +146 -0
- package/packages/create-basement-app/templates/experiment/lib/README.md +33 -0
- package/packages/create-basement-app/templates/experiment/lib/constants.ts +12 -0
- package/packages/create-basement-app/templates/experiment/lib/hooks/index.ts +12 -0
- package/packages/create-basement-app/templates/experiment/lib/hooks/use-device-detection.ts +81 -0
- package/packages/create-basement-app/templates/experiment/lib/hooks/use-media-breakpoint.ts +15 -0
- package/packages/create-basement-app/templates/experiment/lib/hooks/use-prefetch.ts +74 -0
- package/packages/create-basement-app/templates/experiment/lib/integrations/.gitkeep +0 -0
- package/packages/create-basement-app/templates/experiment/lib/scripts/dev.ts +52 -0
- package/packages/create-basement-app/templates/experiment/lib/scripts/generate-component.ts +322 -0
- package/packages/create-basement-app/templates/experiment/lib/scripts/generate-page.ts +193 -0
- package/packages/create-basement-app/templates/experiment/lib/scripts/generate.ts +79 -0
- package/packages/create-basement-app/templates/experiment/lib/scripts/utils.ts +246 -0
- package/packages/create-basement-app/templates/experiment/lib/store/app.ts +11 -0
- package/packages/create-basement-app/templates/experiment/lib/store/index.ts +11 -0
- package/packages/create-basement-app/templates/experiment/lib/styles/README.md +64 -0
- package/packages/create-basement-app/templates/experiment/lib/styles/cn.ts +7 -0
- package/packages/create-basement-app/templates/experiment/lib/styles/colors.ts +63 -0
- package/packages/create-basement-app/templates/experiment/lib/styles/config.ts +34 -0
- package/packages/create-basement-app/templates/experiment/lib/styles/css/global.css +85 -0
- package/packages/create-basement-app/templates/experiment/lib/styles/css/index.css +6 -0
- package/packages/create-basement-app/templates/experiment/lib/styles/css/reset.css +166 -0
- package/packages/create-basement-app/templates/experiment/lib/styles/css/root.css +68 -0
- package/packages/create-basement-app/templates/experiment/lib/styles/css/tailwind.css +132 -0
- package/packages/create-basement-app/templates/experiment/lib/styles/easings.ts +21 -0
- package/packages/create-basement-app/templates/experiment/lib/styles/fonts.ts +28 -0
- package/packages/create-basement-app/templates/experiment/lib/styles/index.ts +12 -0
- package/packages/create-basement-app/templates/experiment/lib/styles/layout.mjs +27 -0
- package/packages/create-basement-app/templates/experiment/lib/styles/scripts/README.md +29 -0
- package/packages/create-basement-app/templates/experiment/lib/styles/scripts/generate-root.ts +57 -0
- package/packages/create-basement-app/templates/experiment/lib/styles/scripts/generate-tailwind.ts +162 -0
- package/packages/create-basement-app/templates/experiment/lib/styles/scripts/postcss-functions.mjs +168 -0
- package/packages/create-basement-app/templates/experiment/lib/styles/scripts/setup-styles.ts +24 -0
- package/packages/create-basement-app/templates/experiment/lib/styles/scripts/utils.ts +20 -0
- package/packages/create-basement-app/templates/experiment/lib/styles/typography.ts +36 -0
- package/packages/create-basement-app/templates/experiment/lib/utils/README.md +40 -0
- package/packages/create-basement-app/templates/experiment/lib/utils/css.d.ts +21 -0
- package/packages/create-basement-app/templates/experiment/lib/utils/easings.ts +240 -0
- package/packages/create-basement-app/templates/experiment/lib/utils/fetch.ts +84 -0
- package/packages/create-basement-app/templates/experiment/lib/utils/math.test.ts +221 -0
- package/packages/create-basement-app/templates/experiment/lib/utils/math.ts +236 -0
- package/packages/create-basement-app/templates/experiment/lib/utils/metadata.ts +126 -0
- package/packages/create-basement-app/templates/experiment/lib/utils/strings.test.ts +166 -0
- package/packages/create-basement-app/templates/experiment/lib/utils/strings.ts +246 -0
- package/packages/create-basement-app/templates/experiment/lib/utils/types.d.ts +15 -0
- package/packages/create-basement-app/templates/experiment/lib/utils/viewport.test.ts +256 -0
- package/packages/create-basement-app/templates/experiment/lib/utils/viewport.ts +193 -0
- package/packages/create-basement-app/templates/experiment/next.config.ts +142 -0
- package/packages/create-basement-app/templates/experiment/package.json +69 -0
- package/packages/create-basement-app/templates/experiment/postcss.config.mjs +42 -0
- package/packages/create-basement-app/templates/experiment/public/fonts/geist/Geist-Mono.woff2 +0 -0
- package/packages/create-basement-app/templates/experiment/tsconfig.json +43 -0
- package/packages/create-basement-app/templates/webgl/.biome/plugins/README.md +21 -0
- package/packages/create-basement-app/templates/webgl/.biome/plugins/no-anchor-element.grit +12 -0
- package/packages/create-basement-app/templates/webgl/.biome/plugins/no-relative-parent-imports.grit +10 -0
- package/packages/create-basement-app/templates/webgl/.biome/plugins/no-unnecessary-forwardref.grit +9 -0
- package/packages/create-basement-app/templates/webgl/.cursor/rules/README.md +184 -0
- package/packages/create-basement-app/templates/webgl/.cursor/rules/architecture.mdc +437 -0
- package/packages/create-basement-app/templates/webgl/.cursor/rules/components.mdc +436 -0
- package/packages/create-basement-app/templates/webgl/.cursor/rules/integrations.mdc +447 -0
- package/packages/create-basement-app/templates/webgl/.cursor/rules/main.mdc +278 -0
- package/packages/create-basement-app/templates/webgl/.cursor/rules/styling.mdc +433 -0
- package/packages/create-basement-app/templates/webgl/.editorconfig +40 -0
- package/packages/create-basement-app/templates/webgl/.env.example +81 -0
- package/packages/create-basement-app/templates/webgl/.gitattributes +19 -0
- package/packages/create-basement-app/templates/webgl/.github/PULL_REQUEST_TEMPLATE.md +14 -0
- package/packages/create-basement-app/templates/webgl/.github/workflows/lighthouse-to-slack.yml +136 -0
- package/packages/create-basement-app/templates/webgl/.vscode/extensions.json +20 -0
- package/packages/create-basement-app/templates/webgl/.vscode/settings.json +105 -0
- package/packages/create-basement-app/templates/webgl/README.md +221 -0
- package/packages/create-basement-app/templates/webgl/_gitignore +67 -0
- package/packages/create-basement-app/templates/webgl/app/favicon.ico +0 -0
- package/packages/create-basement-app/templates/webgl/app/layout.tsx +104 -0
- package/packages/create-basement-app/templates/webgl/app/page.tsx +10 -0
- package/packages/create-basement-app/templates/webgl/app/robots.ts +15 -0
- package/packages/create-basement-app/templates/webgl/app/sitemap.ts +16 -0
- package/packages/create-basement-app/templates/webgl/biome.json +250 -0
- package/packages/create-basement-app/templates/webgl/components/basement.svg +1 -0
- package/packages/create-basement-app/templates/webgl/components/layout/footer/index.tsx +27 -0
- package/packages/create-basement-app/templates/webgl/components/layout/header/index.tsx +11 -0
- package/packages/create-basement-app/templates/webgl/components/layout/theme/index.tsx +66 -0
- package/packages/create-basement-app/templates/webgl/components/layout/wrapper/index.tsx +65 -0
- package/packages/create-basement-app/templates/webgl/components/ui/README.md +77 -0
- package/packages/create-basement-app/templates/webgl/components/ui/image/README.md +37 -0
- package/packages/create-basement-app/templates/webgl/components/ui/image/index.tsx +224 -0
- package/packages/create-basement-app/templates/webgl/components/ui/link/index.tsx +146 -0
- package/packages/create-basement-app/templates/webgl/components/webgl/canvas/dynamic.tsx +34 -0
- package/packages/create-basement-app/templates/webgl/components/webgl/canvas/index.tsx +43 -0
- package/packages/create-basement-app/templates/webgl/components/webgl/components/scene/index.tsx +21 -0
- package/packages/create-basement-app/templates/webgl/lib/README.md +33 -0
- package/packages/create-basement-app/templates/webgl/lib/hooks/index.ts +12 -0
- package/packages/create-basement-app/templates/webgl/lib/hooks/use-device-detection.ts +81 -0
- package/packages/create-basement-app/templates/webgl/lib/hooks/use-media-breakpoint.ts +15 -0
- package/packages/create-basement-app/templates/webgl/lib/hooks/use-prefetch.ts +74 -0
- package/packages/create-basement-app/templates/webgl/lib/integrations/.gitkeep +0 -0
- package/packages/create-basement-app/templates/webgl/lib/scripts/dev.ts +52 -0
- package/packages/create-basement-app/templates/webgl/lib/scripts/generate-component.ts +322 -0
- package/packages/create-basement-app/templates/webgl/lib/scripts/generate-page.ts +193 -0
- package/packages/create-basement-app/templates/webgl/lib/scripts/generate.ts +79 -0
- package/packages/create-basement-app/templates/webgl/lib/scripts/utils.ts +246 -0
- package/packages/create-basement-app/templates/webgl/lib/store/app.ts +11 -0
- package/packages/create-basement-app/templates/webgl/lib/store/index.ts +11 -0
- package/packages/create-basement-app/templates/webgl/lib/styles/README.md +64 -0
- package/packages/create-basement-app/templates/webgl/lib/styles/cn.ts +7 -0
- package/packages/create-basement-app/templates/webgl/lib/styles/colors.ts +63 -0
- package/packages/create-basement-app/templates/webgl/lib/styles/config.ts +34 -0
- package/packages/create-basement-app/templates/webgl/lib/styles/css/global.css +85 -0
- package/packages/create-basement-app/templates/webgl/lib/styles/css/index.css +6 -0
- package/packages/create-basement-app/templates/webgl/lib/styles/css/reset.css +166 -0
- package/packages/create-basement-app/templates/webgl/lib/styles/css/root.css +68 -0
- package/packages/create-basement-app/templates/webgl/lib/styles/css/tailwind.css +132 -0
- package/packages/create-basement-app/templates/webgl/lib/styles/easings.ts +21 -0
- package/packages/create-basement-app/templates/webgl/lib/styles/fonts.ts +28 -0
- package/packages/create-basement-app/templates/webgl/lib/styles/index.ts +12 -0
- package/packages/create-basement-app/templates/webgl/lib/styles/layout.mjs +27 -0
- package/packages/create-basement-app/templates/webgl/lib/styles/scripts/README.md +29 -0
- package/packages/create-basement-app/templates/webgl/lib/styles/scripts/generate-root.ts +57 -0
- package/packages/create-basement-app/templates/webgl/lib/styles/scripts/generate-tailwind.ts +162 -0
- package/packages/create-basement-app/templates/webgl/lib/styles/scripts/postcss-functions.mjs +168 -0
- package/packages/create-basement-app/templates/webgl/lib/styles/scripts/setup-styles.ts +24 -0
- package/packages/create-basement-app/templates/webgl/lib/styles/scripts/utils.ts +20 -0
- package/packages/create-basement-app/templates/webgl/lib/styles/typography.ts +36 -0
- package/packages/create-basement-app/templates/webgl/lib/utils/README.md +40 -0
- package/packages/create-basement-app/templates/webgl/lib/utils/css.d.ts +21 -0
- package/packages/create-basement-app/templates/webgl/lib/utils/easings.ts +240 -0
- package/packages/create-basement-app/templates/webgl/lib/utils/fetch.ts +84 -0
- package/packages/create-basement-app/templates/webgl/lib/utils/math.test.ts +221 -0
- package/packages/create-basement-app/templates/webgl/lib/utils/math.ts +236 -0
- package/packages/create-basement-app/templates/webgl/lib/utils/metadata.ts +126 -0
- package/packages/create-basement-app/templates/webgl/lib/utils/strings.test.ts +166 -0
- package/packages/create-basement-app/templates/webgl/lib/utils/strings.ts +246 -0
- package/packages/create-basement-app/templates/webgl/lib/utils/types.d.ts +15 -0
- package/packages/create-basement-app/templates/webgl/lib/utils/viewport.test.ts +256 -0
- package/packages/create-basement-app/templates/webgl/lib/utils/viewport.ts +193 -0
- package/packages/create-basement-app/templates/webgl/next.config.ts +142 -0
- package/packages/create-basement-app/templates/webgl/package.json +68 -0
- package/packages/create-basement-app/templates/webgl/postcss.config.mjs +42 -0
- package/packages/create-basement-app/templates/webgl/public/fonts/geist/Geist-Mono.woff2 +0 -0
- package/packages/create-basement-app/templates/webgl/tsconfig.json +43 -0
- package/packages/create-basement-app/templates/webgpu/.biome/plugins/README.md +21 -0
- package/packages/create-basement-app/templates/webgpu/.biome/plugins/no-anchor-element.grit +12 -0
- package/packages/create-basement-app/templates/webgpu/.biome/plugins/no-relative-parent-imports.grit +10 -0
- package/packages/create-basement-app/templates/webgpu/.biome/plugins/no-unnecessary-forwardref.grit +9 -0
- package/packages/create-basement-app/templates/webgpu/.cursor/rules/README.md +184 -0
- package/packages/create-basement-app/templates/webgpu/.cursor/rules/architecture.mdc +437 -0
- package/packages/create-basement-app/templates/webgpu/.cursor/rules/components.mdc +436 -0
- package/packages/create-basement-app/templates/webgpu/.cursor/rules/integrations.mdc +447 -0
- package/packages/create-basement-app/templates/webgpu/.cursor/rules/main.mdc +278 -0
- package/packages/create-basement-app/templates/webgpu/.cursor/rules/styling.mdc +433 -0
- package/packages/create-basement-app/templates/webgpu/.editorconfig +40 -0
- package/packages/create-basement-app/templates/webgpu/.env.example +81 -0
- package/packages/create-basement-app/templates/webgpu/.gitattributes +19 -0
- package/packages/create-basement-app/templates/webgpu/.github/PULL_REQUEST_TEMPLATE.md +14 -0
- package/packages/create-basement-app/templates/webgpu/.github/workflows/lighthouse-to-slack.yml +136 -0
- package/packages/create-basement-app/templates/webgpu/.vscode/extensions.json +20 -0
- package/packages/create-basement-app/templates/webgpu/.vscode/settings.json +105 -0
- package/packages/create-basement-app/templates/webgpu/README.md +221 -0
- package/packages/create-basement-app/templates/webgpu/_gitignore +67 -0
- package/packages/create-basement-app/templates/webgpu/app/favicon.ico +0 -0
- package/packages/create-basement-app/templates/webgpu/app/layout.tsx +104 -0
- package/packages/create-basement-app/templates/webgpu/app/page.tsx +275 -0
- package/packages/create-basement-app/templates/webgpu/app/robots.ts +15 -0
- package/packages/create-basement-app/templates/webgpu/app/sitemap.ts +16 -0
- package/packages/create-basement-app/templates/webgpu/biome.json +250 -0
- package/packages/create-basement-app/templates/webgpu/components/basement.svg +1 -0
- package/packages/create-basement-app/templates/webgpu/components/layout/footer/index.tsx +27 -0
- package/packages/create-basement-app/templates/webgpu/components/layout/header/index.tsx +11 -0
- package/packages/create-basement-app/templates/webgpu/components/layout/theme/index.tsx +66 -0
- package/packages/create-basement-app/templates/webgpu/components/layout/wrapper/index.tsx +65 -0
- package/packages/create-basement-app/templates/webgpu/components/ui/README.md +77 -0
- package/packages/create-basement-app/templates/webgpu/components/ui/image/README.md +37 -0
- package/packages/create-basement-app/templates/webgpu/components/ui/image/index.tsx +224 -0
- package/packages/create-basement-app/templates/webgpu/components/ui/link/index.tsx +146 -0
- package/packages/create-basement-app/templates/webgpu/lib/README.md +33 -0
- package/packages/create-basement-app/templates/webgpu/lib/hooks/index.ts +12 -0
- package/packages/create-basement-app/templates/webgpu/lib/hooks/use-device-detection.ts +81 -0
- package/packages/create-basement-app/templates/webgpu/lib/hooks/use-media-breakpoint.ts +15 -0
- package/packages/create-basement-app/templates/webgpu/lib/hooks/use-prefetch.ts +74 -0
- package/packages/create-basement-app/templates/webgpu/lib/integrations/.gitkeep +0 -0
- package/packages/create-basement-app/templates/webgpu/lib/scripts/dev.ts +52 -0
- package/packages/create-basement-app/templates/webgpu/lib/scripts/generate-component.ts +322 -0
- package/packages/create-basement-app/templates/webgpu/lib/scripts/generate-page.ts +193 -0
- package/packages/create-basement-app/templates/webgpu/lib/scripts/generate.ts +79 -0
- package/packages/create-basement-app/templates/webgpu/lib/scripts/utils.ts +246 -0
- package/packages/create-basement-app/templates/webgpu/lib/store/app.ts +11 -0
- package/packages/create-basement-app/templates/webgpu/lib/store/index.ts +11 -0
- package/packages/create-basement-app/templates/webgpu/lib/styles/README.md +64 -0
- package/packages/create-basement-app/templates/webgpu/lib/styles/cn.ts +7 -0
- package/packages/create-basement-app/templates/webgpu/lib/styles/colors.ts +63 -0
- package/packages/create-basement-app/templates/webgpu/lib/styles/config.ts +34 -0
- package/packages/create-basement-app/templates/webgpu/lib/styles/css/global.css +85 -0
- package/packages/create-basement-app/templates/webgpu/lib/styles/css/index.css +6 -0
- package/packages/create-basement-app/templates/webgpu/lib/styles/css/reset.css +166 -0
- package/packages/create-basement-app/templates/webgpu/lib/styles/css/root.css +68 -0
- package/packages/create-basement-app/templates/webgpu/lib/styles/css/tailwind.css +132 -0
- package/packages/create-basement-app/templates/webgpu/lib/styles/easings.ts +21 -0
- package/packages/create-basement-app/templates/webgpu/lib/styles/fonts.ts +28 -0
- package/packages/create-basement-app/templates/webgpu/lib/styles/index.ts +12 -0
- package/packages/create-basement-app/templates/webgpu/lib/styles/layout.mjs +27 -0
- package/packages/create-basement-app/templates/webgpu/lib/styles/scripts/README.md +29 -0
- package/packages/create-basement-app/templates/webgpu/lib/styles/scripts/generate-root.ts +57 -0
- package/packages/create-basement-app/templates/webgpu/lib/styles/scripts/generate-tailwind.ts +162 -0
- package/packages/create-basement-app/templates/webgpu/lib/styles/scripts/postcss-functions.mjs +168 -0
- package/packages/create-basement-app/templates/webgpu/lib/styles/scripts/setup-styles.ts +24 -0
- package/packages/create-basement-app/templates/webgpu/lib/styles/scripts/utils.ts +20 -0
- package/packages/create-basement-app/templates/webgpu/lib/styles/typography.ts +36 -0
- package/packages/create-basement-app/templates/webgpu/lib/utils/README.md +40 -0
- package/packages/create-basement-app/templates/webgpu/lib/utils/css.d.ts +21 -0
- package/packages/create-basement-app/templates/webgpu/lib/utils/easings.ts +240 -0
- package/packages/create-basement-app/templates/webgpu/lib/utils/fetch.ts +84 -0
- package/packages/create-basement-app/templates/webgpu/lib/utils/math.test.ts +221 -0
- package/packages/create-basement-app/templates/webgpu/lib/utils/math.ts +236 -0
- package/packages/create-basement-app/templates/webgpu/lib/utils/metadata.ts +126 -0
- package/packages/create-basement-app/templates/webgpu/lib/utils/strings.test.ts +166 -0
- package/packages/create-basement-app/templates/webgpu/lib/utils/strings.ts +246 -0
- package/packages/create-basement-app/templates/webgpu/lib/utils/types.d.ts +15 -0
- package/packages/create-basement-app/templates/webgpu/lib/utils/viewport.test.ts +256 -0
- package/packages/create-basement-app/templates/webgpu/lib/utils/viewport.ts +193 -0
- package/packages/create-basement-app/templates/webgpu/next.config.ts +142 -0
- package/packages/create-basement-app/templates/webgpu/package.json +69 -0
- package/packages/create-basement-app/templates/webgpu/postcss.config.mjs +42 -0
- package/packages/create-basement-app/templates/webgpu/public/fonts/geist/Geist-Mono.woff2 +0 -0
- package/packages/create-basement-app/templates/webgpu/tsconfig.json +43 -0
- package/tasks/.last-branch +1 -0
- package/tasks/CLAUDE.md +104 -0
- package/tasks/archive/2026-02-09-next-starter-dynamic-layers/prd.json +153 -0
- package/tasks/archive/2026-02-09-next-starter-dynamic-layers/progress.txt +115 -0
- package/tasks/prd-project-restructure.md +375 -0
- package/tasks/prd.json +227 -91
- package/tasks/progress.txt +281 -87
- package/tasks/ralph.sh +113 -0
- package/layers/experiment/components/layout/header/index.tsx +0 -58
- package/layers/experiment/components/layout/navigation-menu.tsx +0 -127
- package/layers/experiment/lib/constants.ts +0 -12
- package/layers/webgl/app/page.tsx +0 -10
- package/layers/webgl/components/webgl/canvas/dynamic.tsx +0 -34
- package/layers/webgl/components/webgl/canvas/index.tsx +0 -43
- package/layers/webgl/components/webgl/components/scene/index.tsx +0 -21
- package/src/mergers/next-config-merger.js +0 -63
- /package/{src → packages/cli/src}/commands/setup-sanity.js +0 -0
- /package/{src → packages/cli/src}/commands/worktree.js +0 -0
- /package/{integrations/basehub → packages/create-basement-app/integrations/basehub/files}/README.md +0 -0
- /package/{integrations/sanity → packages/create-basement-app/integrations/sanity/files}/app/api/draft-mode/disable/route.ts +0 -0
- /package/{integrations/sanity → packages/create-basement-app/integrations/sanity/files}/app/api/draft-mode/enable/route.ts +0 -0
- /package/{integrations/sanity → packages/create-basement-app/integrations/sanity/files}/app/api/revalidate/route.ts +0 -0
- /package/{integrations/sanity → packages/create-basement-app/integrations/sanity/files}/app/layout.tsx +0 -0
- /package/{integrations/sanity → packages/create-basement-app/integrations/sanity/files}/app/sitemap.ts +0 -0
- /package/{integrations/sanity → packages/create-basement-app/integrations/sanity/files}/app/studio/[[...tool]]/page.tsx +0 -0
- /package/{integrations/sanity → packages/create-basement-app/integrations/sanity/files}/app/studio/layout.tsx +0 -0
- /package/{integrations/sanity → packages/create-basement-app/integrations/sanity/files}/components/ui/sanity-image/index.tsx +0 -0
- /package/{integrations/sanity → packages/create-basement-app/integrations/sanity/files}/lib/integrations/README.md +0 -0
- /package/{integrations/sanity → packages/create-basement-app/integrations/sanity/files}/lib/integrations/check-integration.ts +0 -0
- /package/{integrations/sanity → packages/create-basement-app/integrations/sanity/files}/lib/integrations/sanity/README.md +0 -0
- /package/{integrations/sanity → packages/create-basement-app/integrations/sanity/files}/lib/integrations/sanity/client.ts +0 -0
- /package/{integrations/sanity → packages/create-basement-app/integrations/sanity/files}/lib/integrations/sanity/components/disable-draft-mode.tsx +0 -0
- /package/{integrations/sanity → packages/create-basement-app/integrations/sanity/files}/lib/integrations/sanity/components/rich-text.tsx +0 -0
- /package/{integrations/sanity → packages/create-basement-app/integrations/sanity/files}/lib/integrations/sanity/env.ts +0 -0
- /package/{integrations/sanity → packages/create-basement-app/integrations/sanity/files}/lib/integrations/sanity/live/index.tsx +0 -0
- /package/{integrations/sanity → packages/create-basement-app/integrations/sanity/files}/lib/integrations/sanity/queries.ts +0 -0
- /package/{integrations/sanity → packages/create-basement-app/integrations/sanity/files}/lib/integrations/sanity/sanity.cli.ts +0 -0
- /package/{integrations/sanity → packages/create-basement-app/integrations/sanity/files}/lib/integrations/sanity/sanity.config.ts +0 -0
- /package/{integrations/sanity → packages/create-basement-app/integrations/sanity/files}/lib/integrations/sanity/sanity.types.ts +0 -0
- /package/{integrations/sanity → packages/create-basement-app/integrations/sanity/files}/lib/integrations/sanity/schema.json +0 -0
- /package/{integrations/sanity → packages/create-basement-app/integrations/sanity/files}/lib/integrations/sanity/schemas/article.ts +0 -0
- /package/{integrations/sanity → packages/create-basement-app/integrations/sanity/files}/lib/integrations/sanity/schemas/example.ts +0 -0
- /package/{integrations/sanity → packages/create-basement-app/integrations/sanity/files}/lib/integrations/sanity/schemas/index.ts +0 -0
- /package/{integrations/sanity → packages/create-basement-app/integrations/sanity/files}/lib/integrations/sanity/schemas/link.ts +0 -0
- /package/{integrations/sanity → packages/create-basement-app/integrations/sanity/files}/lib/integrations/sanity/schemas/metadata.ts +0 -0
- /package/{integrations/sanity → packages/create-basement-app/integrations/sanity/files}/lib/integrations/sanity/schemas/navigation.ts +0 -0
- /package/{integrations/sanity → packages/create-basement-app/integrations/sanity/files}/lib/integrations/sanity/schemas/page.ts +0 -0
- /package/{integrations/sanity → packages/create-basement-app/integrations/sanity/files}/lib/integrations/sanity/schemas/richText.ts +0 -0
- /package/{integrations/sanity → packages/create-basement-app/integrations/sanity/files}/lib/integrations/sanity/structure.ts +0 -0
- /package/{integrations/sanity → packages/create-basement-app/integrations/sanity/files}/lib/integrations/sanity/utils/image.ts +0 -0
- /package/{integrations/sanity → packages/create-basement-app/integrations/sanity/files}/lib/integrations/sanity/utils/link.ts +0 -0
- /package/{integrations/sanity → packages/create-basement-app/integrations/sanity/files}/lib/scripts/copy-sanity-mcp.ts +0 -0
- /package/{integrations/sanity → packages/create-basement-app/integrations/sanity/files}/lib/scripts/generate-page.ts +0 -0
- /package/{integrations/sanity → packages/create-basement-app/integrations/sanity/files}/lib/utils/metadata.ts +0 -0
- /package/{plugins → packages/create-basement-app/plugins}/README.md +0 -0
- /package/{plugins → packages/create-basement-app/plugins}/no-anchor-element.grit +0 -0
- /package/{plugins → packages/create-basement-app/plugins}/no-relative-parent-imports.grit +0 -0
- /package/{plugins → packages/create-basement-app/plugins}/no-unnecessary-forwardref.grit +0 -0
- /package/{template-hooks → packages/create-basement-app/template-hooks}/use-battery.ts +0 -0
- /package/{template-hooks → packages/create-basement-app/template-hooks}/use-device-perf.ts +0 -0
- /package/{template-hooks → packages/create-basement-app/template-hooks}/use-intersection-observer.ts +0 -0
- /package/{template-hooks → packages/create-basement-app/template-hooks}/use-media.ts +0 -0
- /package/{layers/webgpu → packages/create-basement-app/templates/default/lib/integrations}/.gitkeep +0 -0
package/tasks/prd.json
CHANGED
|
@@ -1,22 +1,24 @@
|
|
|
1
1
|
{
|
|
2
2
|
"project": "basement-cli",
|
|
3
|
-
"branchName": "
|
|
4
|
-
"description": "
|
|
3
|
+
"branchName": "BertovDev/project-restructure",
|
|
4
|
+
"description": "Restructure basement-cli into a bun workspaces monorepo with separated CLI and template scaffolding packages",
|
|
5
5
|
"userStories": [
|
|
6
6
|
{
|
|
7
7
|
"id": "US-001",
|
|
8
|
-
"title": "Create
|
|
9
|
-
"description": "As a
|
|
8
|
+
"title": "Create monorepo skeleton with workspace config",
|
|
9
|
+
"description": "As a maintainer, I want the project organized as a bun workspaces monorepo so packages are properly isolated.",
|
|
10
10
|
"acceptanceCriteria": [
|
|
11
|
-
"
|
|
12
|
-
"
|
|
13
|
-
"
|
|
14
|
-
"
|
|
15
|
-
"
|
|
16
|
-
"
|
|
17
|
-
"
|
|
18
|
-
"
|
|
19
|
-
"
|
|
11
|
+
"Create packages/cli/ directory",
|
|
12
|
+
"Create packages/create-basement-app/ directory",
|
|
13
|
+
"Create packages/create-basement-app/templates/ directory",
|
|
14
|
+
"Create packages/create-basement-app/integrations/ directory",
|
|
15
|
+
"Create packages/create-basement-app/template-hooks/ directory",
|
|
16
|
+
"Create packages/create-basement-app/plugins/ directory",
|
|
17
|
+
"Update root package.json: add \"workspaces\": [\"packages/*\"], keep existing name/version/type/scripts",
|
|
18
|
+
"Root biome.json stays at root (shared across all packages)",
|
|
19
|
+
"Create packages/cli/package.json with name @basementstudio/cli, bin basement pointing to ./bin/index.js, type module",
|
|
20
|
+
"Create packages/create-basement-app/package.json with name @basementstudio/create-basement-app, type module",
|
|
21
|
+
"Typecheck passes (no syntax errors in JS files)"
|
|
20
22
|
],
|
|
21
23
|
"priority": 1,
|
|
22
24
|
"passes": true,
|
|
@@ -24,130 +26,264 @@
|
|
|
24
26
|
},
|
|
25
27
|
{
|
|
26
28
|
"id": "US-002",
|
|
27
|
-
"title": "
|
|
28
|
-
"description": "As a
|
|
29
|
+
"title": "Move CLI code to packages/cli",
|
|
30
|
+
"description": "As a developer, I want CLI argument parsing and command routing isolated in its own package.",
|
|
29
31
|
"acceptanceCriteria": [
|
|
30
|
-
"
|
|
31
|
-
"
|
|
32
|
-
"
|
|
33
|
-
"
|
|
34
|
-
"
|
|
35
|
-
"
|
|
36
|
-
"
|
|
37
|
-
"
|
|
38
|
-
"
|
|
39
|
-
"
|
|
40
|
-
"Typecheck passes"
|
|
32
|
+
"Move bin/index.js to packages/cli/bin/index.js",
|
|
33
|
+
"Move src/commands/create.js to packages/cli/src/commands/create.js",
|
|
34
|
+
"Move src/commands/add-integration.js to packages/cli/src/commands/add-integration.js",
|
|
35
|
+
"Move src/commands/worktree.js to packages/cli/src/commands/worktree.js",
|
|
36
|
+
"Move src/commands/setup-sanity.js to packages/cli/src/commands/setup-sanity.js",
|
|
37
|
+
"Update all import paths in bin/index.js to reference new ../src/commands/ locations",
|
|
38
|
+
"Update packages/cli/package.json dependencies: add fs-extra, ora, picocolors, prompts, tiged, dotenv from root package.json",
|
|
39
|
+
"Remove chalk from packages/cli dependencies (standardize on picocolors)",
|
|
40
|
+
"Replace any chalk usage in bin/index.js with picocolors",
|
|
41
|
+
"Verify: node packages/cli/bin/index.js --help shows help text without errors",
|
|
42
|
+
"Typecheck passes (no syntax errors)"
|
|
41
43
|
],
|
|
42
44
|
"priority": 2,
|
|
43
45
|
"passes": true,
|
|
44
|
-
"notes": ""
|
|
46
|
+
"notes": "bin/index.js uses chalk for banner - replace with picocolors. All src/commands/ files use picocolors already."
|
|
45
47
|
},
|
|
46
48
|
{
|
|
47
49
|
"id": "US-003",
|
|
48
|
-
"title": "
|
|
49
|
-
"description": "As
|
|
50
|
+
"title": "Move merger code to create-basement-app package",
|
|
51
|
+
"description": "As a maintainer, I want all scaffolding and merge logic in the create-basement-app package.",
|
|
50
52
|
"acceptanceCriteria": [
|
|
51
|
-
"
|
|
52
|
-
"
|
|
53
|
-
"
|
|
54
|
-
"
|
|
55
|
-
"
|
|
56
|
-
"
|
|
57
|
-
"
|
|
58
|
-
"
|
|
59
|
-
"
|
|
60
|
-
"
|
|
53
|
+
"Move src/mergers/index.js to packages/create-basement-app/src/mergers/index.js",
|
|
54
|
+
"Move src/mergers/config.js to packages/create-basement-app/src/mergers/config.js",
|
|
55
|
+
"Move src/mergers/layout-merger.js to packages/create-basement-app/src/mergers/layout-merger.js",
|
|
56
|
+
"Move src/mergers/sitemap-merger.js to packages/create-basement-app/src/mergers/sitemap-merger.js",
|
|
57
|
+
"Move src/mergers/check-integration-merger.js to packages/create-basement-app/src/mergers/check-integration-merger.js",
|
|
58
|
+
"Delete orphaned src/mergers/next-config-merger.js (defined but never registered in CMS_MERGERS)",
|
|
59
|
+
"Update import paths in packages/cli/src/commands/create.js to reference create-basement-app mergers",
|
|
60
|
+
"Update import paths in packages/cli/src/commands/add-integration.js similarly",
|
|
61
|
+
"Add fs-extra, picocolors, tiged as dependencies in packages/create-basement-app/package.json",
|
|
62
|
+
"Create packages/create-basement-app/src/index.js that re-exports injectLayer, injectIntegration, formatMergeResults, getLayerConfig, getCmsConfig",
|
|
63
|
+
"Typecheck passes (no syntax errors)"
|
|
61
64
|
],
|
|
62
65
|
"priority": 3,
|
|
63
66
|
"passes": true,
|
|
64
|
-
"notes": "
|
|
67
|
+
"notes": "next-config-merger.js is orphaned (not in CMS_MERGERS) - delete it. Merger functions use __dirname to resolve layers/ path - this will need updating in later stories."
|
|
65
68
|
},
|
|
66
69
|
{
|
|
67
70
|
"id": "US-004",
|
|
68
|
-
"title": "
|
|
69
|
-
"description": "As a
|
|
71
|
+
"title": "Generate default template from next-starter",
|
|
72
|
+
"description": "As a contributor, I want a complete default template so I can preview and test it independently.",
|
|
70
73
|
"acceptanceCriteria": [
|
|
71
|
-
"
|
|
72
|
-
"
|
|
73
|
-
"
|
|
74
|
-
"
|
|
75
|
-
"
|
|
76
|
-
"
|
|
74
|
+
"Clone basementstudio/next-starter#main into packages/create-basement-app/templates/default/ using tiged",
|
|
75
|
+
"Rename .gitignore to _gitignore in the template (npm strips dotfiles from published packages)",
|
|
76
|
+
"Template has a valid package.json with next, react, react-dom dependencies",
|
|
77
|
+
"Template directory contains app/, components/, lib/ directories",
|
|
78
|
+
"Delete any bun.lock or package-lock.json from the template",
|
|
79
|
+
"The template is a complete Next.js project (not a partial overlay)",
|
|
80
|
+
"Typecheck passes (no syntax errors)"
|
|
77
81
|
],
|
|
78
82
|
"priority": 4,
|
|
79
83
|
"passes": true,
|
|
80
|
-
"notes": ""
|
|
84
|
+
"notes": "Used gh repo clone (private repo requires auth). Cloned next-starter#main, removed .git, renamed .gitignore to _gitignore, deleted bun.lock, removed .tldr cache."
|
|
81
85
|
},
|
|
82
86
|
{
|
|
83
87
|
"id": "US-005",
|
|
84
|
-
"title": "
|
|
85
|
-
"description": "As
|
|
88
|
+
"title": "Generate webgl template from default plus layer",
|
|
89
|
+
"description": "As a contributor, I want a standalone WebGL template with R3F components and dependencies pre-configured.",
|
|
86
90
|
"acceptanceCriteria": [
|
|
87
|
-
"
|
|
88
|
-
"
|
|
89
|
-
"
|
|
90
|
-
"
|
|
91
|
-
"
|
|
92
|
-
"
|
|
93
|
-
"
|
|
91
|
+
"Copy packages/create-basement-app/templates/default/ to packages/create-basement-app/templates/webgl/",
|
|
92
|
+
"Copy layers/webgl/app/page.tsx to templates/webgl/app/page.tsx (overwrite the default page)",
|
|
93
|
+
"Copy layers/webgl/components/webgl/ directory into templates/webgl/components/webgl/",
|
|
94
|
+
"Merge WebGL dependencies into templates/webgl/package.json: @react-three/fiber ^9.5.0, @react-three/drei ^10.7.7, three ^0.182.0, @radix-ui/react-navigation-menu ^1.2.5, leva ^0.9.35",
|
|
95
|
+
"Merge WebGL devDependencies: @types/three ^0.182.0",
|
|
96
|
+
"Rename .gitignore to _gitignore if not already done",
|
|
97
|
+
"Template webgl/ is a complete Next.js project with WebGL components included",
|
|
98
|
+
"Typecheck passes (no syntax errors)"
|
|
94
99
|
],
|
|
95
100
|
"priority": 5,
|
|
96
101
|
"passes": true,
|
|
97
|
-
"notes": "
|
|
102
|
+
"notes": "Copied default template, overlaid WebGL page.tsx + 3 component files (canvas/dynamic.tsx, canvas/index.tsx, components/scene/index.tsx), injected 5 deps + 1 devDep into package.json."
|
|
98
103
|
},
|
|
99
104
|
{
|
|
100
105
|
"id": "US-006",
|
|
101
|
-
"title": "
|
|
102
|
-
"description": "As
|
|
106
|
+
"title": "Generate webgpu template from default plus deps",
|
|
107
|
+
"description": "As a contributor, I want a standalone WebGPU template with alpha R3F dependencies pre-configured.",
|
|
103
108
|
"acceptanceCriteria": [
|
|
104
|
-
"
|
|
105
|
-
"
|
|
106
|
-
"
|
|
107
|
-
"
|
|
108
|
-
"
|
|
109
|
-
"
|
|
110
|
-
"
|
|
111
|
-
"Typecheck passes"
|
|
109
|
+
"Copy packages/create-basement-app/templates/default/ to packages/create-basement-app/templates/webgpu/",
|
|
110
|
+
"Merge WebGPU dependencies into templates/webgpu/package.json: @react-three/fiber 10.0.0-alpha.2, @react-three/drei ^11.0.0-alpha.4, three ^0.182.0, leva ^0.9.35, lucide-react ^0.474.0, @radix-ui/react-navigation-menu ^1.2.5",
|
|
111
|
+
"Merge WebGPU devDependencies: @types/three ^0.182.0",
|
|
112
|
+
"Rename .gitignore to _gitignore if not already done",
|
|
113
|
+
"WebGPU template has no additional component files (deps-only, matching current behavior)",
|
|
114
|
+
"Template webgpu/ is a complete Next.js project",
|
|
115
|
+
"Typecheck passes (no syntax errors)"
|
|
112
116
|
],
|
|
113
117
|
"priority": 6,
|
|
114
118
|
"passes": true,
|
|
115
|
-
"notes": "
|
|
119
|
+
"notes": "Copied default template, injected 6 deps + 1 devDep into package.json. Deps-only (no overlay files). Uses alpha R3F versions."
|
|
116
120
|
},
|
|
117
121
|
{
|
|
118
122
|
"id": "US-007",
|
|
119
|
-
"title": "
|
|
120
|
-
"description": "As a
|
|
123
|
+
"title": "Generate experiment template from default plus layer",
|
|
124
|
+
"description": "As a contributor, I want a standalone experiment template with navigation components and dependencies.",
|
|
121
125
|
"acceptanceCriteria": [
|
|
122
|
-
"
|
|
123
|
-
"
|
|
124
|
-
"
|
|
125
|
-
"
|
|
126
|
-
"
|
|
127
|
-
"
|
|
128
|
-
"
|
|
126
|
+
"Copy packages/create-basement-app/templates/default/ to packages/create-basement-app/templates/experiment/",
|
|
127
|
+
"Copy layers/experiment/components/layout/header/index.tsx to templates/experiment/components/layout/header/index.tsx (overwrite default header)",
|
|
128
|
+
"Copy layers/experiment/components/layout/navigation-menu.tsx to templates/experiment/components/layout/navigation-menu.tsx",
|
|
129
|
+
"Copy layers/experiment/lib/constants.ts to templates/experiment/lib/constants.ts",
|
|
130
|
+
"Merge experiment dependencies into templates/experiment/package.json: @react-three/fiber ^9.5.0, @react-three/drei ^10.7.7, three ^0.172.0, class-variance-authority latest, leva ^0.9.35, lucide-react ^0.474.0, @radix-ui/react-navigation-menu ^1.2.5",
|
|
131
|
+
"Merge experiment devDependencies: @types/three ^0.182.0",
|
|
132
|
+
"Rename .gitignore to _gitignore if not already done",
|
|
133
|
+
"Template experiment/ is a complete Next.js project with experiment navigation",
|
|
134
|
+
"Typecheck passes (no syntax errors)"
|
|
129
135
|
],
|
|
130
136
|
"priority": 7,
|
|
131
137
|
"passes": true,
|
|
132
|
-
"notes": ""
|
|
138
|
+
"notes": "Copied default template, overlaid 3 files (header/index.tsx replace, navigation-menu.tsx additive, constants.ts additive), injected 6 deps + 1 devDep. Used actual LAYER_CONFIG values (three ^0.182.0, cva ^0.7.0 already satisfied by ^0.7.1)."
|
|
133
139
|
},
|
|
134
140
|
{
|
|
135
141
|
"id": "US-008",
|
|
136
|
-
"title": "
|
|
137
|
-
"description": "As a
|
|
142
|
+
"title": "Move Sanity integration files locally with config manifest",
|
|
143
|
+
"description": "As a maintainer, I want Sanity integration files local to create-basement-app with a single config manifest.",
|
|
138
144
|
"acceptanceCriteria": [
|
|
139
|
-
"
|
|
140
|
-
"
|
|
141
|
-
"
|
|
142
|
-
"
|
|
143
|
-
"
|
|
144
|
-
"
|
|
145
|
-
"
|
|
146
|
-
"Typecheck passes"
|
|
145
|
+
"Copy all files from integrations/sanity/ to packages/create-basement-app/integrations/sanity/files/",
|
|
146
|
+
"Move merger files to packages/create-basement-app/integrations/sanity/mergers/: layout-merger.js, sitemap-merger.js, check-integration-merger.js (copy from packages/create-basement-app/src/mergers/)",
|
|
147
|
+
"Create packages/create-basement-app/integrations/sanity/config.js with single-source-of-truth config containing: name, dependencies (@sanity/asset-utils, @sanity/image-url, @sanity/visual-editing, next-sanity), devDependencies (sanity, @sanity/vision), scripts (sanity:extract, sanity:typegen), additivePaths, mergeFiles",
|
|
148
|
+
"Sanity dependencies come from what is currently hardcoded in create.js lines 239-266",
|
|
149
|
+
"Sanity scripts come from what is currently hardcoded in create.js lines 254-259",
|
|
150
|
+
"Config additivePaths and mergeFiles match current CMS_CONFIG.sanity in config.js",
|
|
151
|
+
"Typecheck passes (no syntax errors)"
|
|
147
152
|
],
|
|
148
153
|
"priority": 8,
|
|
149
154
|
"passes": true,
|
|
150
|
-
"notes": "
|
|
155
|
+
"notes": "Copied 35 integration files to integrations/sanity/files/, 3 mergers to integrations/sanity/mergers/, created config.js with deps/devDeps/scripts/additivePaths/mergeFiles unified from create.js + CMS_CONFIG."
|
|
156
|
+
},
|
|
157
|
+
{
|
|
158
|
+
"id": "US-009",
|
|
159
|
+
"title": "Move BaseHub integration, template-hooks, and plugins",
|
|
160
|
+
"description": "As a maintainer, I want all scaffolding assets co-located in create-basement-app.",
|
|
161
|
+
"acceptanceCriteria": [
|
|
162
|
+
"Copy integrations/basehub/ to packages/create-basement-app/integrations/basehub/files/",
|
|
163
|
+
"Create packages/create-basement-app/integrations/basehub/config.js with: name, dependencies (basehub ^3.0.0), additivePaths",
|
|
164
|
+
"Move template-hooks/*.ts to packages/create-basement-app/template-hooks/",
|
|
165
|
+
"Create packages/create-basement-app/template-hooks/config.js exporting array of hook configs with: name, file, dependencies (e.g. use-battery needs lodash-es, use-device-perf needs detect-gpu + react-device-detect + zustand)",
|
|
166
|
+
"Move plugins/*.grit to packages/create-basement-app/plugins/",
|
|
167
|
+
"Typecheck passes (no syntax errors)"
|
|
168
|
+
],
|
|
169
|
+
"priority": 9,
|
|
170
|
+
"passes": true,
|
|
171
|
+
"notes": "Copied basehub README to integrations/basehub/files/, created config.js with deps. Copied 4 hooks to template-hooks/ with config.js declaring npm deps. Copied 3 grit plugins + README to plugins/."
|
|
172
|
+
},
|
|
173
|
+
{
|
|
174
|
+
"id": "US-010",
|
|
175
|
+
"title": "Update merger paths to use create-basement-app locations",
|
|
176
|
+
"description": "As a maintainer, I want the merger system to resolve files from create-basement-app paths instead of old root-relative paths.",
|
|
177
|
+
"acceptanceCriteria": [
|
|
178
|
+
"Update packages/create-basement-app/src/mergers/index.js: change layer path resolution from path.resolve(__dirname, '../../layers', layer) to path.resolve(__dirname, '../../templates', layer)",
|
|
179
|
+
"Update injectIntegration to read integration files from local packages/create-basement-app/integrations/{cms}/files/ instead of cloning from remote GitHub branch via tiged",
|
|
180
|
+
"Update CMS_MERGERS to import mergers from integrations/{cms}/mergers/ instead of co-located merger files",
|
|
181
|
+
"Update packages/create-basement-app/src/mergers/config.js: CMS_CONFIG no longer needs 'branch' field (files are local now)",
|
|
182
|
+
"Update packages/cli/src/commands/create.js: read CMS deps/scripts from integration config.js instead of hardcoded values",
|
|
183
|
+
"Remove tiged dependency from create-basement-app if no longer needed (check if anything else uses it)",
|
|
184
|
+
"Verify injectLayer still works by checking path resolution against templates/ directory structure",
|
|
185
|
+
"Verify injectIntegration still works by checking path resolution against integrations/ directory structure",
|
|
186
|
+
"Typecheck passes (no syntax errors)"
|
|
187
|
+
],
|
|
188
|
+
"priority": 10,
|
|
189
|
+
"passes": true,
|
|
190
|
+
"notes": "Updated injectIntegration to use local fs.copy from integrations/{cms}/files/ instead of tiged remote clone. Updated injectLayer path from ../../layers to ../../templates. CMS_MERGERS now import from integrations/sanity/mergers/. Removed branch field from CMS_CONFIG. CLI create.js and add-integration.js now read CMS deps/scripts from integration config manifests. Removed tiged dep from create-basement-app."
|
|
191
|
+
},
|
|
192
|
+
{
|
|
193
|
+
"id": "US-011",
|
|
194
|
+
"title": "Update CLI create command to use centralized configs",
|
|
195
|
+
"description": "As a maintainer, I want create.js to read all dependency info from config manifests with zero hardcoded versions.",
|
|
196
|
+
"acceptanceCriteria": [
|
|
197
|
+
"In packages/cli/src/commands/create.js: replace hardcoded Sanity deps (lines 239-266 equivalent) with import from integrations/sanity/config.js",
|
|
198
|
+
"Replace hardcoded BaseHub deps with import from integrations/basehub/config.js",
|
|
199
|
+
"Replace hardcoded animation deps with a new configs/animations.js manifest in create-basement-app: gsap -> {gsap: ^3.12.0, @gsap/react: ^2.0.0}, motion -> {motion: ^12.0.0}",
|
|
200
|
+
"Replace hardcoded CMS scripts with import from integration config.js",
|
|
201
|
+
"Hook copying reads from template-hooks/config.js for hook dependencies to inject",
|
|
202
|
+
"Template prompt reads available template names by listing packages/create-basement-app/templates/ directory",
|
|
203
|
+
"Zero hardcoded dependency version strings remain in create.js",
|
|
204
|
+
"Remove unused inquirer from root package.json dependencies",
|
|
205
|
+
"Remove dotenv if only used for CLI development (move to devDependencies or remove)",
|
|
206
|
+
"Typecheck passes (no syntax errors)"
|
|
207
|
+
],
|
|
208
|
+
"priority": 11,
|
|
209
|
+
"passes": true,
|
|
210
|
+
"notes": "Created animations.js config manifest. Animation deps, hook deps, CMS deps/scripts all config-driven. Template prompt dynamic from templates/ dir. Removed inquirer and chalk from root. dotenv kept (used at runtime in create.js for .env loading)."
|
|
211
|
+
},
|
|
212
|
+
{
|
|
213
|
+
"id": "US-012",
|
|
214
|
+
"title": "Update template download to copy local templates",
|
|
215
|
+
"description": "As a maintainer, I want the CLI to copy templates from local create-basement-app instead of cloning from GitHub.",
|
|
216
|
+
"acceptanceCriteria": [
|
|
217
|
+
"In packages/cli/src/commands/create.js: replace tiged clone of basementstudio/next-starter#main with fs-extra copy from packages/create-basement-app/templates/{type}/",
|
|
218
|
+
"Remove the separate layer injection step (step 3.2) since templates are already complete standalone projects",
|
|
219
|
+
"Keep CMS integration injection step (step 3.5) since integrations still use the merge approach",
|
|
220
|
+
"Rename _gitignore back to .gitignore after copying template to target dir",
|
|
221
|
+
"Update spinner text from 'Downloading next-starter...' to 'Copying template...'",
|
|
222
|
+
"Template copy is instant (no network call) which improves CLI speed",
|
|
223
|
+
"Verify: running the CLI with each template type produces a valid project directory",
|
|
224
|
+
"Typecheck passes (no syntax errors)"
|
|
225
|
+
],
|
|
226
|
+
"priority": 12,
|
|
227
|
+
"passes": true,
|
|
228
|
+
"notes": "Replaced tiged remote clone with fs.copy from local templates. Removed layer injection step 3.2 (templates are standalone). Added _gitignore->. gitignore rename. Removed layer dep injection from hydration (already in template package.json). Removed tiged dep from CLI package."
|
|
229
|
+
},
|
|
230
|
+
{
|
|
231
|
+
"id": "US-013",
|
|
232
|
+
"title": "Clean up old root directories and dead code",
|
|
233
|
+
"description": "As a maintainer, I want all old root-level directories removed since content has moved to packages.",
|
|
234
|
+
"acceptanceCriteria": [
|
|
235
|
+
"Delete root layers/ directory (files now in templates)",
|
|
236
|
+
"Delete root integrations/ directory (files now in packages/create-basement-app/integrations/)",
|
|
237
|
+
"Delete root template-hooks/ directory (files now in packages/create-basement-app/template-hooks/)",
|
|
238
|
+
"Delete root plugins/ directory (files now in packages/create-basement-app/plugins/)",
|
|
239
|
+
"Delete root src/ directory (code moved to packages/cli/src/ and packages/create-basement-app/src/)",
|
|
240
|
+
"Delete root bin/ directory (moved to packages/cli/bin/)",
|
|
241
|
+
"Remove chalk from root package.json dependencies",
|
|
242
|
+
"Remove inquirer from root package.json dependencies",
|
|
243
|
+
"Remove fs-extra, ora, picocolors, prompts, tiged, dotenv from root package.json (they're now in workspace packages)",
|
|
244
|
+
"Root package.json only has: workspaces config, shared scripts (build, lint, typecheck), devDependencies (biome, changesets)",
|
|
245
|
+
"Grep entire codebase for any remaining references to old paths (../../layers, ../../template-hooks, etc.) and fix them",
|
|
246
|
+
"Typecheck passes (no syntax errors)"
|
|
247
|
+
],
|
|
248
|
+
"priority": 13,
|
|
249
|
+
"passes": true,
|
|
250
|
+
"notes": "Deleted 6 root dirs (layers, integrations, template-hooks, plugins, src, bin). Cleaned root package.json: renamed to basement-starter-cli, added private:true, removed bin field, removed test script, removed all runtime deps (now in workspace packages). Removed dotenv from CLI. Added workspace:* dep. Added main field to create-basement-app. 8605 lines deleted."
|
|
251
|
+
},
|
|
252
|
+
{
|
|
253
|
+
"id": "US-014",
|
|
254
|
+
"title": "Update changeset config and CI for workspaces",
|
|
255
|
+
"description": "As a maintainer, I want the release pipeline to publish both packages independently.",
|
|
256
|
+
"acceptanceCriteria": [
|
|
257
|
+
"Update .changeset/config.json for workspace-aware publishing (add access: public if scoped packages)",
|
|
258
|
+
"Update .github/workflows/release.yml to build both packages before publishing",
|
|
259
|
+
"Each package has its own changeset-compatible version field",
|
|
260
|
+
"packages/cli/package.json has @basementstudio/create-basement-app as workspace dependency: workspace:*",
|
|
261
|
+
"CLAUDE.md at project root updated to reflect new architecture (packages/, no more layers/, templates in create-basement-app/)",
|
|
262
|
+
"README.md updated with new project structure overview",
|
|
263
|
+
"Typecheck passes (no syntax errors)"
|
|
264
|
+
],
|
|
265
|
+
"priority": 14,
|
|
266
|
+
"passes": true,
|
|
267
|
+
"notes": "Changeset config already workspace-ready (access: public, updateInternalDependencies: patch). Added NPM_TOKEN/NODE_AUTH_TOKEN to CI for npm publishing. Updated CLAUDE.md architecture, CLI flow, integration sources, plugin paths. Updated README.md with monorepo structure overview."
|
|
268
|
+
},
|
|
269
|
+
{
|
|
270
|
+
"id": "US-015",
|
|
271
|
+
"title": "End-to-end verification of restructured CLI",
|
|
272
|
+
"description": "As a maintainer, I need to verify the restructured CLI produces working projects identical to the old version.",
|
|
273
|
+
"acceptanceCriteria": [
|
|
274
|
+
"Run npm link from packages/cli/ to install CLI locally",
|
|
275
|
+
"Run: basement -c /tmp/test-default -d -no-cms -claude -no-hooks — project creates successfully with default template",
|
|
276
|
+
"Run: basement -c /tmp/test-webgl -webgl -no-cms -claude -no-hooks — project has R3F components and deps",
|
|
277
|
+
"Run: basement -c /tmp/test-webgpu -webgpu -no-cms -claude -no-hooks — project has WebGPU deps in package.json",
|
|
278
|
+
"Run: basement -c /tmp/test-experiment -experiment -no-cms -claude -no-hooks — project has experiment header and nav",
|
|
279
|
+
"All generated projects have valid package.json with correct dependencies",
|
|
280
|
+
"All generated projects pass bun install without errors",
|
|
281
|
+
"Clean up test projects after verification",
|
|
282
|
+
"Typecheck passes (no syntax errors)"
|
|
283
|
+
],
|
|
284
|
+
"priority": 15,
|
|
285
|
+
"passes": true,
|
|
286
|
+
"notes": "All 4 templates verified: default, webgl, webgpu, experiment. npm link + basement -c works for all. 26/26 checks pass (deps, .gitignore rename, template-specific files). bun install succeeds on generated projects."
|
|
151
287
|
}
|
|
152
288
|
]
|
|
153
289
|
}
|