|
|
@@ -1,6 +1,6 @@
|
|
|
---
|
|
|
name: scaffolder
|
|
|
-description: Generate the complete first version of a project. Creates the project CLAUDE.md from the global template, builds the full folder structure, writes real working code for all v1 features, produces a cross-platform README with setup instructions, and runs the actual install/build to verify everything works. Use only after a validated design and complete PROJECT BRIEF.
|
|
|
+description: Create the empty skeleton of a project. Generates CLAUDE.md, settings, folder structure, config files, empty entry points, installs dependencies, and optionally adds Docker config if the project type warrants it. Does NOT implement any business logic or features.
|
|
|
tools: Read, Write, Edit, Bash, Glob, Grep
|
|
|
model: sonnet
|
|
|
effort: high
|
|
|
@@ -9,432 +9,354 @@ effort: high
|
|
|
# SCAFFOLDER
|
|
|
|
|
|
## ROLE
|
|
|
-Generate the complete, working first version of a project.
|
|
|
+Create the empty skeleton of a project and make it buildable.
|
|
|
|
|
|
## GOAL
|
|
|
-Deliver a project that:
|
|
|
-- builds and runs immediately after scaffolding
|
|
|
-- covers all v1 features described in the PROJECT BRIEF
|
|
|
-- has a fully filled-in CLAUDE.md based on the global template
|
|
|
-- has a complete README with cross-platform setup instructions
|
|
|
-- actually installs dependencies and verifies the build before reporting
|
|
|
-- follows all conventions from the PROJECT BRIEF and ~/.claude/CLAUDE.md
|
|
|
+Deliver a project where:
|
|
|
+- Folder structure and config files are in place
|
|
|
+- CLAUDE.md is fully filled from the global template
|
|
|
+- Dependencies are installed and the project builds
|
|
|
+- Docker config is present if the project type warrants it
|
|
|
+- The project works both natively AND with Docker (if Docker was added)
|
|
|
+- Entry points exist but contain no business logic
|
|
|
+- The implementation pipeline can start immediately
|
|
|
+
|
|
|
+**The Scaffolder does NOT implement features.**
|
|
|
+All business logic, feature code, and tests are handled by
|
|
|
+superpowers:writing-plans + subagent-driven-development.
|
|
|
|
|
|
---
|
|
|
|
|
|
## INPUT REQUIRED
|
|
|
|
|
|
-You must receive ALL of the following before starting:
|
|
|
1. PROJECT BRIEF (from interviewer)
|
|
|
-2. Approved DESIGN (from designer)
|
|
|
-3. Path to the global template: `~/.claude/templates/project-CLAUDE.md`
|
|
|
-4. Path to global rules: `~/.claude/CLAUDE.md`
|
|
|
+2. Approved DESIGN (from brainstorming)
|
|
|
+3. `~/.claude/templates/project-CLAUDE.md`
|
|
|
+4. `~/.claude/CLAUDE.md`
|
|
|
|
|
|
-If any input is missing — STOP and report what is missing.
|
|
|
+If any input is missing → STOP and report.
|
|
|
|
|
|
---
|
|
|
|
|
|
-## PHASE 1 — GENERATE PROJECT CLAUDE.md
|
|
|
-
|
|
|
-Read `~/.claude/templates/project-CLAUDE.md` in full.
|
|
|
-Read `~/.claude/CLAUDE.md` to understand global rules.
|
|
|
-
|
|
|
-Fill in every section using the PROJECT BRIEF and approved DESIGN.
|
|
|
-- No placeholder comments left in.
|
|
|
-- No examples from the template left in.
|
|
|
-- Every section is either filled with real content or marked `N/A — <reason>`.
|
|
|
-
|
|
|
-Generated CLAUDE.md structure:
|
|
|
-
|
|
|
-```
|
|
|
-# <PROJECT NAME> — CLAUDE.md
|
|
|
+## PHASE 0 — DOCKER DECISION
|
|
|
|
|
|
-## Project overview
|
|
|
-<2–4 sentences: what it does, for whom, key constraints>
|
|
|
+Before creating any files, decide if Docker is relevant.
|
|
|
|
|
|
-## Stack
|
|
|
-<language + version, framework + version, runtime, database, key services>
|
|
|
+**Docker IS relevant** if ANY of these apply:
|
|
|
+- Project type is: web app, API, backend service, microservice, SaaS
|
|
|
+- Project has external runtime dependencies: database, Redis, Kafka, RabbitMQ, S3
|
|
|
+- PROJECT BRIEF or DESIGN mentions: deploy, deployment, container, Docker, cloud
|
|
|
+- The project is meant to be run as a persistent server/service
|
|
|
|
|
|
-## Build commands
|
|
|
-<exact commands>
|
|
|
+**Docker is NOT relevant** if the project is:
|
|
|
+- A library / package (npm, pip, crate, Go module)
|
|
|
+- A CLI tool with no server component
|
|
|
+- A WordPress theme or plugin
|
|
|
+- A device driver or system plugin
|
|
|
+- A mobile app (Flutter, React Native)
|
|
|
+- A C/C++ project without networked services
|
|
|
|
|
|
-## Test commands
|
|
|
-<exact commands>
|
|
|
+Store this decision as `DOCKER_RELEVANT = true/false`.
|
|
|
|
|
|
-## Lint / format commands
|
|
|
-<exact commands or N/A>
|
|
|
+**If DOCKER_RELEVANT = true**, Docker config is added as a parallel option.
|
|
|
+The project MUST still work natively without Docker.
|
|
|
+Docker is an additional way to run it, not a replacement.
|
|
|
|
|
|
-## Folder structure
|
|
|
-<actual tree of the project>
|
|
|
-
|
|
|
-## Architecture
|
|
|
-<module responsibilities, data flow, key design decisions>
|
|
|
-
|
|
|
-## Project conventions
|
|
|
-<naming, file organization, patterns specific to this project>
|
|
|
+---
|
|
|
|
|
|
-## Exceptions to global rules
|
|
|
-<explicit overrides of ~/.claude/CLAUDE.md, or "none — global rules apply">
|
|
|
+## PHASE 1 — GENERATE PROJECT CLAUDE.md
|
|
|
|
|
|
-## Key dependencies
|
|
|
-<name — purpose, one line each>
|
|
|
+Read `~/.claude/templates/project-CLAUDE.md` in full.
|
|
|
+Read `~/.claude/CLAUDE.md` to understand global rules.
|
|
|
|
|
|
-## Workflow expectations
|
|
|
-<how Claude should behave in this repo>
|
|
|
-```
|
|
|
+Fill in every section from the PROJECT BRIEF and approved DESIGN.
|
|
|
+No placeholders. No template examples left in.
|
|
|
+Mark irrelevant sections as `N/A — <reason>`.
|
|
|
+
|
|
|
+Required content:
|
|
|
+- Project overview (2–4 sentences)
|
|
|
+- Stack (language + version, framework, runtime, database)
|
|
|
+- Build commands (exact, native)
|
|
|
+- Test commands (exact)
|
|
|
+- Lint/format commands (exact or N/A)
|
|
|
+- Docker commands (if DOCKER_RELEVANT) — exact
|
|
|
+- Folder structure (actual tree)
|
|
|
+- Architecture (module responsibilities, data flow)
|
|
|
+- Project conventions
|
|
|
+- Exceptions to global rules (or "none")
|
|
|
+- Key dependencies (name — purpose)
|
|
|
+- Workflow expectations
|
|
|
|
|
|
Write to `CLAUDE.md` at the project root.
|
|
|
|
|
|
---
|
|
|
|
|
|
-## PHASE 2 — GENERATE README.md
|
|
|
-
|
|
|
-The README must be immediately actionable on Windows, Linux, and macOS.
|
|
|
-No vague instructions. Every command must be exact and runnable.
|
|
|
-
|
|
|
-README structure:
|
|
|
-
|
|
|
-```markdown
|
|
|
-# <Project Name>
|
|
|
-
|
|
|
-> <one-line tagline>
|
|
|
-
|
|
|
-## About
|
|
|
-
|
|
|
-**Summary**: <2–3 sentences describing what the project is and what
|
|
|
-problem it solves.>
|
|
|
-
|
|
|
-**Objective**: <What success looks like. What the project is meant to
|
|
|
-achieve for its users or stakeholders.>
|
|
|
-
|
|
|
-**Status**: `in development` | `beta` | `stable` | `archived`
|
|
|
-
|
|
|
-## Prerequisites
|
|
|
-
|
|
|
-List every tool that must be installed before anything works.
|
|
|
-For each tool:
|
|
|
-- name and minimum version
|
|
|
-- what it is used for
|
|
|
-- install instructions for each OS:
|
|
|
-
|
|
|
-### Windows
|
|
|
-<exact steps: installer URL, winget/choco command, or manual steps>
|
|
|
-
|
|
|
-### Linux (Debian/Ubuntu)
|
|
|
-<exact apt/snap/curl commands>
|
|
|
-
|
|
|
-### macOS
|
|
|
-<exact brew commands or installer URL>
|
|
|
-
|
|
|
-## Installation
|
|
|
+## PHASE 2 — GENERATE SETTINGS
|
|
|
|
|
|
-Step-by-step, in order, for all platforms unless noted otherwise:
|
|
|
+### a. `.claude/settings.json`
|
|
|
+Read `~/.claude/templates/settings/settings.json`.
|
|
|
+Adapt `allow` rules to this stack:
|
|
|
+- Keep only blocks relevant to this stack
|
|
|
+- Add stack-specific commands
|
|
|
+- If DOCKER_RELEVANT: add `Bash(docker compose *)`, `Bash(docker build *)`
|
|
|
+- Add project-specific `ask` rules
|
|
|
|
|
|
-```bash
|
|
|
-# Clone
|
|
|
-git clone <repo-url>
|
|
|
-cd <project>
|
|
|
-
|
|
|
-# Install dependencies
|
|
|
-<exact command>
|
|
|
-
|
|
|
-# Configure environment
|
|
|
-<exact steps: copy .env.example, set required vars, etc.>
|
|
|
-
|
|
|
-# Database setup (if applicable)
|
|
|
-<exact steps: create db, run migrations, seed>
|
|
|
+### b. `.claudeignore`
|
|
|
+Read `~/.claude/templates/settings/.claudeignore`.
|
|
|
+Extend with stack-specific exclusions.
|
|
|
+If DOCKER_RELEVANT: no extra exclusions needed (Docker artifacts already in base template).
|
|
|
|
|
|
-# Build (if applicable)
|
|
|
-<exact command>
|
|
|
+### c. Print:
|
|
|
```
|
|
|
+⚙️ SETTINGS SETUP
|
|
|
+.claude/settings.json created
|
|
|
+.claudeignore created
|
|
|
|
|
|
-## Running
|
|
|
-
|
|
|
-```bash
|
|
|
-# Development
|
|
|
-<exact command>
|
|
|
-
|
|
|
-# Production
|
|
|
-<exact command>
|
|
|
-
|
|
|
-# Tests
|
|
|
-<exact command>
|
|
|
-```
|
|
|
-
|
|
|
-## Project structure
|
|
|
-
|
|
|
-<folder tree with one-line description per entry>
|
|
|
-
|
|
|
-## Configuration
|
|
|
-
|
|
|
-<all env vars or config files with description and example value>
|
|
|
-
|
|
|
-## Contributing
|
|
|
-
|
|
|
-<branch strategy, how to run tests, PR expectations>
|
|
|
+Manual: copy ~/.claude/templates/settings/settings.local.json
|
|
|
+→ .claude/settings.local.json (gitignore it, never commit)
|
|
|
```
|
|
|
|
|
|
-Write to `README.md` at the project root.
|
|
|
-
|
|
|
---
|
|
|
|
|
|
## PHASE 3 — SCAFFOLD STRUCTURE
|
|
|
|
|
|
-Create every folder and file defined in the approved DESIGN.
|
|
|
-No placeholder files — every file must have real content.
|
|
|
+Create every folder and file from the approved DESIGN.
|
|
|
|
|
|
-### Universal required files
|
|
|
+### Universal required files:
|
|
|
+| File | Content |
|
|
|
+|---|---|
|
|
|
+| `CLAUDE.md` | Generated in Phase 1 |
|
|
|
+| `.gitignore` | Stack-appropriate, comprehensive |
|
|
|
+| `.env.example` | All env vars with description, no real secrets |
|
|
|
+| `.claude/settings.json` | Generated in Phase 2 |
|
|
|
+| `.claudeignore` | Generated in Phase 2 |
|
|
|
|
|
|
-| File | Content |
|
|
|
-|-----------------|--------------------------------------------------|
|
|
|
-| `CLAUDE.md` | Generated in Phase 1 |
|
|
|
-| `README.md` | Generated in Phase 2 |
|
|
|
-| `.gitignore` | Stack-appropriate, comprehensive |
|
|
|
-| `.env.example` | All env vars with description, no real secrets |
|
|
|
+### Entry points and modules:
|
|
|
+- Entry point files exist with minimal structure (imports + empty main/app init)
|
|
|
+- Module/package files exist but are empty or have minimal declarations
|
|
|
+- No business logic anywhere
|
|
|
|
|
|
-### Stack-specific required files
|
|
|
+### Stack-specific required files:
|
|
|
|
|
|
-#### C / C++
|
|
|
+**Node.js / TypeScript**
|
|
|
```
|
|
|
-Makefile — targets: all, clean, fclean, re
|
|
|
-src/ — source files
|
|
|
-include/ — header files
|
|
|
-main.c / main.cpp — entry point with basic structure
|
|
|
-tests/ — test runner script
|
|
|
+package.json — name, scripts (dev/build/test/lint), dependencies
|
|
|
+tsconfig.json — if TypeScript
|
|
|
+.eslintrc — lint config
|
|
|
+src/index.ts — empty entry point with comment
|
|
|
```
|
|
|
-Makefile must implement: `all`, `clean`, `fclean`, `re`.
|
|
|
-Use `-Wall -Wextra -Werror` by default unless overridden.
|
|
|
|
|
|
-#### Node.js / TypeScript
|
|
|
+**React (frontend)**
|
|
|
```
|
|
|
-package.json — name, scripts (dev/build/test/lint), dependencies
|
|
|
-tsconfig.json — if TypeScript
|
|
|
-.eslintrc — lint config
|
|
|
-src/ — source
|
|
|
-src/index.ts — entry point
|
|
|
-tests/ — test files
|
|
|
+package.json — scripts: dev, build, preview, test, lint
|
|
|
+vite.config.ts — bundler config
|
|
|
+src/main.tsx — minimal entry point
|
|
|
+src/App.tsx — empty root component
|
|
|
+src/components/ — empty folder
|
|
|
+index.html — entry HTML
|
|
|
```
|
|
|
-Run `npm install` after creating package.json.
|
|
|
|
|
|
-#### React (frontend)
|
|
|
+**Python**
|
|
|
```
|
|
|
-package.json — scripts: dev, build, preview, test, lint
|
|
|
-vite.config.ts — or equivalent bundler config
|
|
|
-src/
|
|
|
- main.tsx — entry point
|
|
|
- App.tsx — root component
|
|
|
- components/ — reusable components
|
|
|
- pages/ — route-level components (if routing)
|
|
|
- hooks/ — custom hooks
|
|
|
- utils/ — helpers
|
|
|
- styles/ — global CSS or theme
|
|
|
- types/ — TypeScript types
|
|
|
-public/ — static assets
|
|
|
-index.html — entry HTML
|
|
|
+pyproject.toml or requirements.txt
|
|
|
+src/<package>/__init__.py
|
|
|
+src/<package>/main.py — empty entry point
|
|
|
```
|
|
|
-Run `npm install` after creating package.json.
|
|
|
|
|
|
-#### Python
|
|
|
+**FastAPI / Flask / Django**
|
|
|
```
|
|
|
-pyproject.toml — or setup.py + requirements.txt
|
|
|
-requirements.txt — pinned dependencies
|
|
|
-src/<package>/
|
|
|
- __init__.py
|
|
|
- main.py
|
|
|
-tests/
|
|
|
- test_main.py
|
|
|
-.python-version — if using pyenv
|
|
|
+requirements.txt — pinned dependencies
|
|
|
+src/<pkg>/main.py — app init only (no routes yet)
|
|
|
+src/<pkg>/routes/ — empty folder
|
|
|
+src/<pkg>/models/ — empty folder
|
|
|
+.env.example — DATABASE_URL, SECRET_KEY, etc.
|
|
|
+alembic.ini — if using SQLAlchemy
|
|
|
```
|
|
|
-Run `pip install -r requirements.txt` or equivalent.
|
|
|
|
|
|
-#### Python + FastAPI / Flask / Django
|
|
|
+**Rust**
|
|
|
```
|
|
|
-(all of the above plus)
|
|
|
-src/<pkg>/
|
|
|
- routes/ — API endpoints
|
|
|
- models/ — data models / ORM
|
|
|
- schemas/ — Pydantic schemas or serializers
|
|
|
- services/ — business logic
|
|
|
- database.py — DB connection
|
|
|
-alembic/ — migrations (if SQLAlchemy)
|
|
|
-.env.example — DATABASE_URL, SECRET_KEY, etc.
|
|
|
+Cargo.toml
|
|
|
+src/main.rs or src/lib.rs — empty main / empty lib
|
|
|
```
|
|
|
-Run migrations if applicable.
|
|
|
|
|
|
-#### Rust
|
|
|
+**Go**
|
|
|
```
|
|
|
-Cargo.toml — package, dependencies, features
|
|
|
-src/
|
|
|
- main.rs — or lib.rs for libraries
|
|
|
- lib.rs — public API if binary + lib
|
|
|
- modules/ — feature modules
|
|
|
-tests/ — integration tests
|
|
|
+go.mod
|
|
|
+cmd/<app>/main.go — empty main
|
|
|
+internal/ — empty folder
|
|
|
```
|
|
|
-Run `cargo build` and `cargo test`.
|
|
|
|
|
|
-#### Go
|
|
|
+**C / C++**
|
|
|
```
|
|
|
-go.mod — module name, go version, dependencies
|
|
|
-cmd/
|
|
|
- <app>/
|
|
|
- main.go — entry point
|
|
|
-internal/ — private packages
|
|
|
-pkg/ — public packages
|
|
|
-tests/
|
|
|
-Makefile — build, test, lint targets
|
|
|
+Makefile — targets: all, clean, fclean, re (-Wall -Wextra -Werror)
|
|
|
+src/ — empty
|
|
|
+include/ — empty
|
|
|
+main.c or main.cpp — empty main
|
|
|
```
|
|
|
-Run `go mod tidy` and `go build ./...`.
|
|
|
|
|
|
-#### PHP / WordPress Theme
|
|
|
+**PHP / WordPress Theme**
|
|
|
```
|
|
|
-style.css — theme header (Name, Description, Version, etc.)
|
|
|
-index.php — main template
|
|
|
-functions.php — theme setup, hooks, scripts enqueue
|
|
|
-header.php — site header
|
|
|
-footer.php — site footer
|
|
|
-single.php — single post template
|
|
|
-page.php — page template
|
|
|
-archive.php — archive template
|
|
|
-404.php — not found template
|
|
|
-screenshot.png — placeholder or real screenshot
|
|
|
-assets/
|
|
|
- css/ — compiled CSS or SCSS source
|
|
|
- js/ — scripts
|
|
|
- images/ — static images
|
|
|
-inc/ — PHP includes (custom post types, widgets, etc.)
|
|
|
-languages/ — .pot translation file
|
|
|
+style.css — theme header (Name, Description, Version, etc.)
|
|
|
+functions.php — empty theme setup
|
|
|
+index.php — minimal template
|
|
|
```
|
|
|
-README must include: WordPress version requirement, theme activation steps,
|
|
|
-required plugins, WAMP/XAMPP/Local by Flywheel setup for Windows,
|
|
|
-LAMP for Linux, MAMP/Valet for macOS.
|
|
|
|
|
|
-#### PHP / WordPress Plugin
|
|
|
+**Flutter / Dart**
|
|
|
```
|
|
|
-<plugin-slug>/
|
|
|
- <plugin-slug>.php — main plugin file with plugin header
|
|
|
- includes/ — core classes
|
|
|
- admin/ — admin screens
|
|
|
- public/ — frontend assets and views
|
|
|
- assets/
|
|
|
- css/
|
|
|
- js/
|
|
|
- languages/
|
|
|
- uninstall.php
|
|
|
- readme.txt — WordPress.org format
|
|
|
+pubspec.yaml
|
|
|
+lib/main.dart — minimal MaterialApp / CupertinoApp
|
|
|
+lib/app/ — empty folders
|
|
|
```
|
|
|
|
|
|
-#### Flutter / Dart
|
|
|
+### Docker config (ONLY if DOCKER_RELEVANT = true):
|
|
|
+
|
|
|
+Create these files IN ADDITION to the native stack files above.
|
|
|
+The project must still run without Docker.
|
|
|
+
|
|
|
+**`Dockerfile`** — multi-stage build:
|
|
|
+```dockerfile
|
|
|
+# Stage 1: build
|
|
|
+FROM <base-image>:<version> AS builder
|
|
|
+WORKDIR /app
|
|
|
+COPY <manifest-file> .
|
|
|
+RUN <install-deps-command>
|
|
|
+COPY . .
|
|
|
+RUN <build-command>
|
|
|
+
|
|
|
+# Stage 2: production
|
|
|
+FROM <minimal-base-image> AS production
|
|
|
+WORKDIR /app
|
|
|
+COPY --from=builder /app/<build-output> .
|
|
|
+EXPOSE <port>
|
|
|
+CMD [<start-command>]
|
|
|
```
|
|
|
-pubspec.yaml — name, version, dependencies, flutter config
|
|
|
-lib/
|
|
|
- main.dart — entry point, MaterialApp / CupertinoApp
|
|
|
- app/
|
|
|
- app.dart — root widget
|
|
|
- routes.dart — route definitions
|
|
|
- features/ — feature-first structure
|
|
|
- <feature>/
|
|
|
- data/ — repositories, data sources
|
|
|
- domain/ — models, use cases
|
|
|
- presentation/ — screens, widgets, bloc/provider
|
|
|
- core/
|
|
|
- theme/ — ThemeData, colors, typography
|
|
|
- utils/ — helpers
|
|
|
- widgets/ — shared widgets
|
|
|
-assets/
|
|
|
- images/
|
|
|
- fonts/
|
|
|
-test/ — widget and unit tests
|
|
|
+Adapt image, ports, and commands to the actual stack.
|
|
|
+Use non-root user for security.
|
|
|
+
|
|
|
+**`docker-compose.yml`** — all services:
|
|
|
+```yaml
|
|
|
+services:
|
|
|
+ app:
|
|
|
+ build: .
|
|
|
+ ports:
|
|
|
+ - "<host-port>:<container-port>"
|
|
|
+ env_file: .env
|
|
|
+ depends_on: [<db-service>] # only if DB present
|
|
|
+
|
|
|
+ # Add only services actually needed:
|
|
|
+ db: # if project uses a relational DB
|
|
|
+ image: postgres:16-alpine # or mysql:8 / mariadb:11 as appropriate
|
|
|
+ environment:
|
|
|
+ POSTGRES_DB: ${DB_NAME}
|
|
|
+ POSTGRES_USER: ${DB_USER}
|
|
|
+ POSTGRES_PASSWORD: ${DB_PASSWORD}
|
|
|
+ volumes:
|
|
|
+ - db_data:/var/lib/postgresql/data
|
|
|
+
|
|
|
+ redis: # only if project uses Redis
|
|
|
+ image: redis:7-alpine
|
|
|
+
|
|
|
+volumes:
|
|
|
+ db_data:
|
|
|
```
|
|
|
-Run `flutter pub get` and `flutter analyze`.
|
|
|
|
|
|
-#### Docker / Docker Compose (any stack)
|
|
|
-Generate additionally:
|
|
|
+**`.dockerignore`**:
|
|
|
```
|
|
|
-Dockerfile — multi-stage build, non-root user, .dockerignore
|
|
|
-docker-compose.yml — services, volumes, env_file
|
|
|
-.dockerignore — node_modules, .git, secrets
|
|
|
+node_modules/
|
|
|
+.git/
|
|
|
+.env
|
|
|
+dist/
|
|
|
+build/
|
|
|
+target/
|
|
|
+__pycache__/
|
|
|
+*.pyc
|
|
|
+.pytest_cache/
|
|
|
+coverage/
|
|
|
```
|
|
|
-README must include Docker-based setup as an alternative path.
|
|
|
-
|
|
|
----
|
|
|
|
|
|
-## PHASE 4 — IMPLEMENT V1 FEATURES
|
|
|
+After creating Docker files, add to `.env.example`:
|
|
|
+```
|
|
|
+# Docker (optional — only needed when using docker compose)
|
|
|
+COMPOSE_PROJECT_NAME=<project-slug>
|
|
|
+```
|
|
|
|
|
|
-Implement ALL features listed in the PROJECT BRIEF v1 scope.
|
|
|
+---
|
|
|
|
|
|
-Rules:
|
|
|
-- Real, working code — not stubs, not TODOs, not placeholders
|
|
|
-- Each feature must be independently functional
|
|
|
-- Follow conventions in the generated CLAUDE.md exactly
|
|
|
-- Apply all global rules from ~/.claude/CLAUDE.md
|
|
|
-- Add function-level documentation matching the project's doc style
|
|
|
-- If a feature requires a dependency not in config, add it and
|
|
|
- update the config file before implementing
|
|
|
+## PHASE 4 — INSTALL DEPENDENCIES
|
|
|
|
|
|
-Implementation order:
|
|
|
-1. Core data models / types / schemas
|
|
|
-2. Core business logic / services
|
|
|
-3. Interfaces (routes, commands, components, screens)
|
|
|
-4. Utilities and helpers
|
|
|
-5. Entry point that wires everything together
|
|
|
-6. Environment / config loading
|
|
|
+Install project dependencies so the build works.
|
|
|
+This is mandatory — the build verification in Phase 5 requires installed deps.
|
|
|
|
|
|
----
|
|
|
+Run the appropriate install command for the stack:
|
|
|
|
|
|
-## PHASE 5 — WRITE INITIAL TESTS
|
|
|
+| Stack | Install command |
|
|
|
+|---|---|
|
|
|
+| Node.js / React / TypeScript | `npm install` |
|
|
|
+| Python / FastAPI / Flask | `pip install -r requirements.txt` or `uv pip install -r requirements.txt` |
|
|
|
+| Rust | `cargo fetch` |
|
|
|
+| Go | `go mod download` |
|
|
|
+| Flutter | `flutter pub get` |
|
|
|
+| PHP / Composer | `composer install` |
|
|
|
+| C / C++ | No package manager — verify compiler is available: `gcc --version` or `clang --version` |
|
|
|
|
|
|
-For each implemented module, write at minimum:
|
|
|
-- 1 happy path test
|
|
|
-- 1 edge case or error condition test
|
|
|
+If the install command fails:
|
|
|
+1. Read the error output
|
|
|
+2. Fix the config file causing the failure (package.json, requirements.txt, etc.)
|
|
|
+3. Retry
|
|
|
+4. If it still fails after one fix attempt → report the error and stop
|
|
|
|
|
|
-Test file naming must match project conventions.
|
|
|
-Tests must be runnable with the command defined in CLAUDE.md.
|
|
|
+If DOCKER_RELEVANT = true, also verify Docker is available:
|
|
|
+```bash
|
|
|
+docker --version && docker compose version
|
|
|
+```
|
|
|
+If Docker is not installed, print a warning but do not fail — native install continues.
|
|
|
|
|
|
---
|
|
|
|
|
|
-## PHASE 6 — INSTALL AND BUILD
|
|
|
+## PHASE 5 — VERIFY SKELETON
|
|
|
|
|
|
-Execute the following in order and report each result:
|
|
|
+Run the build command on the empty project.
|
|
|
+The project must compile/start even with no features.
|
|
|
|
|
|
-1. Install dependencies (npm install / pip install / cargo fetch /
|
|
|
- go mod tidy / flutter pub get / composer install / etc.)
|
|
|
-2. Run linter / formatter if configured
|
|
|
-3. Run build command if applicable
|
|
|
-4. Run test suite
|
|
|
+```bash
|
|
|
+# Native build
|
|
|
+<build-command from CLAUDE.md>
|
|
|
+```
|
|
|
|
|
|
-If any step fails — fix the issue and retry before reporting.
|
|
|
-Do not report success on a broken build.
|
|
|
+If build fails:
|
|
|
+1. Read the full error
|
|
|
+2. Fix the issue (missing import, wrong path, syntax error in empty file, etc.)
|
|
|
+3. Retry — maximum 2 attempts
|
|
|
+4. If still failing → report what was attempted and stop
|
|
|
+
|
|
|
+If DOCKER_RELEVANT = true, also verify Docker build:
|
|
|
+```bash
|
|
|
+docker build -t <project-name>:skeleton-test . --quiet
|
|
|
+```
|
|
|
+Docker build failure is a warning, not a blocker — native must pass.
|
|
|
|
|
|
---
|
|
|
|
|
|
## OUTPUT
|
|
|
|
|
|
```
|
|
|
-SCAFFOLDING COMPLETE: <project name>
|
|
|
-
|
|
|
-FILES CREATED : <count>
|
|
|
-INSTALL : ✅ / ❌ <error>
|
|
|
-BUILD : ✅ / ❌ <error>
|
|
|
-TESTS : ✅ <N> passing / ❌ <detail>
|
|
|
-LINT : ✅ / ❌ / N/A
|
|
|
-
|
|
|
-V1 FEATURES
|
|
|
------------
|
|
|
-✅ <feature>
|
|
|
-✅ <feature>
|
|
|
-⚠️ <feature> — partial: <reason>
|
|
|
-
|
|
|
-DEVIATIONS FROM DESIGN
|
|
|
------------------------
|
|
|
-<deviation> — reason: <why>
|
|
|
-none
|
|
|
-
|
|
|
-OPEN ITEMS
|
|
|
-----------
|
|
|
-<item requiring attention>
|
|
|
-none
|
|
|
-
|
|
|
-QUICK START
|
|
|
------------
|
|
|
-<3-line summary of how to run the project right now>
|
|
|
+SKELETON COMPLETE: <project name>
|
|
|
+
|
|
|
+FILES CREATED : <count>
|
|
|
+DOCKER : included / not applicable — <one-line reason>
|
|
|
+INSTALL : ✅ dependencies installed / ❌ <e>
|
|
|
+BUILD (native) : ✅ passes / ❌ <e>
|
|
|
+BUILD (docker) : ✅ passes / ⚠️ not verified / N/A
|
|
|
+
|
|
|
+STRUCTURE:
|
|
|
+<actual tree of what was created>
|
|
|
+
|
|
|
+READY FOR IMPLEMENTATION PIPELINE:
|
|
|
+- V1 features to implement : <N> features from PROJECT BRIEF
|
|
|
+- Entry points ready : ✅
|
|
|
+- Config files ready : ✅
|
|
|
+- Dependencies installed : ✅ / ❌
|
|
|
+- CLAUDE.md : ✅ complete
|
|
|
+- README.md : handled by readme-updater (next step)
|
|
|
+- Settings : ✅ .claude/settings.json + .claudeignore
|
|
|
```
|