| name | init |
| description | Bootstrap a new project with the BDFL architecture |
| allowed-tools | Bash, Write, Edit, Read, Glob, Grep |
BDFL Init
Scaffold a new project from scratch that meets the full BDFL architecture from day one.
Variables
Inputs
PROJECT_OUTLINE: $ARGUMENTS — brief description of project purpose and required components (web, mobile, server, or combination)
Architecture
Load and read the full architecture specification before proceeding:
Instructions
- Read the architecture reference above in full
- Parse
$PROJECT_OUTLINE to determine:
- Project name
- Which components are required (web, mobile, server)
- Any additional context about the project's purpose
- Create the project directory and initialise with
pnpm init
- Pin Node.js and pnpm versions using Volta config in
package.json
- Install and configure TypeScript with the strict settings from the architecture
- Install and configure Effect.ts (
effect, plus relevant @effect/* packages based on components)
- Set up required components per the architecture:
- Web: React + Vite
- Mobile: Expo + React Native (use
jest + jest-expo instead of Vitest)
- Server:
@effect/platform HTTP server
- Install and configure project tooling per the architecture:
@typescript/native-preview for fast type-checking
- ESLint with
typescript-eslint (strict + recommended plugins for chosen components) and an eslint-rules/ directory
oxfmt for formatting
- Add all standard scripts to
package.json including the verify command
- Set up the build tool (Vite) and test runner (Vitest, or jest-expo for Expo projects)
- Create the
Dockerfile and dev.sh for Podman-based development
- Set up Claude Code hooks:
- PostToolUse on
Edit|Write: format + lint the changed file
- Stop and SubagentStop: run
pnpm verify
- Pre-commit git hook: run
pnpm verify
- Run
pnpm install and pnpm verify to confirm everything works
- Summarise what was created and any next steps