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_OUTLINEto 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-expoinstead of Vitest) - Server:
@effect/platformHTTP server
- Install and configure project tooling per the architecture:
@typescript/native-previewfor fast type-checking- ESLint with
typescript-eslint(strict + recommended plugins for chosen components) and aneslint-rules/directory oxfmtfor formatting- Add all standard scripts to
package.jsonincluding theverifycommand
- Set up the build tool (Vite) and test runner (Vitest, or jest-expo for Expo projects)
- Create the
Dockerfileanddev.shfor 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
- PostToolUse on
- Run
pnpm installandpnpm verifyto confirm everything works - Summarise what was created and any next steps