Bootstrap
Collect project requirements through structured dialogue, generate foundational documentation, and scaffold the project structure — then hand off to downstream workflow skills.
Parameters
--scratch: Start from nothing. Full scaffold: directories, configs, docs, README.
--existing: Project already initialized (e.g., npm init done, framework scaffolded). Enhance with docs and structure without overwriting existing files.
Requirement Categories
Collect information across these 8 dimensions. All categories except Techstack and Product definition are optional and may fall back to smart defaults.
| # |
Category |
What to collect |
| 1 |
Techstack |
Language, framework, runtime, package manager |
| 2 |
Product definition |
Purpose, target users, core features, success criteria |
| 3 |
Architecture |
Component structure, data flow, API design, deployment target |
| 4 |
Roadmap |
Phases, milestones, MVP scope |
| 5 |
Tooling |
Linter, formatter, test framework, CI provider |
| 6 |
Code standards |
Naming conventions, file structure patterns, commit conventions |
| 7 |
Design system |
UI library, styling approach — frontend projects only |
| 8 |
Auth & data |
Auth method, database, ORM — if applicable |
Workflow
Step 1: Detect Project State
- Check if a
package.json, pyproject.toml, Cargo.toml, or similar manifest exists.
- Check if a
docs/ directory and documentation files exist.
- Determine mode:
- If the user passed
--scratch or nothing exists → proceed as --scratch.
- If the user passed
--existing or a project manifest exists → proceed as --existing.
- Announce the detected mode and ask for confirmation before continuing.
Step 2: Gather Requirements
Follow the AskUserQuestion mandate for all questions. Ask one question at a time using multiple-choice options when possible.
Sequence:
- Techstack (required) — Ask about language/framework first. Offer common options based on context clues.
- Product definition (required) — Ask: what does this project do, who uses it, what are the 2-3 core features?
- Architecture — Ask: what are the main components, is there an API, where will it deploy?
- Roadmap — Ask: what is the MVP scope, are there phases?
- Tooling — Offer defaults from the Smart Defaults table; ask to confirm or override.
- Code standards — Ask about naming conventions, file layout preferences, commit style (Conventional Commits?).
- Design system — Skip for non-frontend projects. Ask about UI library and styling approach.
- Auth & data — Skip if not applicable. Ask about authentication and database/ORM if the project has these concerns.
Rules for gathering:
- If user says "I don't know", "default", or is vague → apply Smart Defaults for the detected stack and confirm.
- Skip categories that are clearly irrelevant (e.g., Design system for a CLI tool, Auth & data for a static site).
- Minimum required: Techstack + Product definition. All others can use defaults.
Step 3: Confirm Requirements Summary
Present a concise summary of all collected requirements in a structured list. Ask for approval before proceeding:
Looks good / Confirmed → proceed to Step 4.
- User provides corrections → update the relevant category and re-present the summary.
Step 4: Generate Documentation
Create the docs/ directory if it doesn't exist. Generate all four foundational docs populated with concrete project-specific content — no placeholders.
| File |
Source categories |
docs/project-pdr.md |
Product definition, Roadmap |
docs/architecture.md |
Architecture, Techstack, Auth & data |
docs/codebase.md |
Generated from actual structure after Step 5 |
docs/code-standard.md |
Techstack, Code standards, Tooling |
Follow the same content requirements as the docs --init skill for each file.
For --existing mode: read existing docs first. Only add missing sections; do not overwrite content that is already accurate.
Step 5: Scaffold Project Structure
Create standard directories and essential config files based on the chosen techstack.
General rules:
- Create
src/, tests/ (or framework equivalent), public/ for web projects.
- Create config files:
tsconfig.json, .eslintrc.json, .prettierrc, .gitignore, etc.
- Initialize git (
git init) if not already a repository.
- For
--existing mode: only add missing files/directories. Never overwrite files that already exist.
Common scaffolds:
- Next.js:
src/app/, src/components/, src/lib/, public/, tests/
- React (Vite):
src/components/, src/hooks/, src/lib/, public/, tests/
- Express/Node:
src/routes/, src/middleware/, src/lib/, tests/
- Python:
src/<package>/, tests/, scripts/
- CLI (Node):
src/commands/, src/lib/, tests/
After scaffolding, regenerate docs/codebase.md to reflect the actual directory structure.
Step 6: Initialize Tooling
Install and configure selected tools:
- Run package manager install:
npm install, bun install, pnpm install, pip install, etc.
- Install linter/formatter dev dependencies.
- Write or update linter config (
biome.json, .eslintrc.json, ruff.toml, etc.).
- Write or update formatter config (
biome.json, .prettierrc, etc.).
- Add lint/format scripts to
package.json (or equivalent).
- If a test framework was selected, install it and create one example test file under
tests/.
Skip any sub-step where the file already exists (--existing mode).
Step 7: Generate README
Create README.md with:
- Project name and one-sentence description
- Tech stack badges or a concise stack list
- Prerequisites
- Quick start (install + run commands)
- Documentation links section pointing to all 4 docs files
- License (if specified)
For --existing mode: update README only if it is missing or significantly incomplete.
Step 8: Handoff
Summarize everything created:
- List all new files/directories created
- List all docs generated
- List all tools configured
Then recommend the next skill based on project readiness:
- If requirements are exploratory or architecture is uncertain → recommend
brainstorm
- If the plan is clear → recommend
write-plan to create the first implementation plan
- If there's an immediate small task → recommend
quick-implement
Smart Defaults
| Stack |
Package Manager |
Linter |
Formatter |
Test Framework |
Styling |
| Next.js |
bun |
Biome |
Biome |
Vitest |
Tailwind CSS |
| React (Vite) |
bun |
Biome |
Biome |
Vitest |
Tailwind CSS |
| Express/Node |
bun |
Biome |
Biome |
Vitest |
N/A |
| CLI tool (Node) |
bun |
Biome |
Biome |
Vitest |
N/A |
| Python |
uv |
Ruff |
Ruff |
pytest |
N/A |
| Rust |
cargo |
clippy |
rustfmt |
cargo test |
N/A |
Rules
- Never overwrite existing files in
--existing mode unless the user explicitly approves.
- Do not invent product requirements — always collect them from the user.
- Skip irrelevant categories; don't ask questions that don't apply to the project type.
- Generate documentation with concrete, project-specific content — no generic placeholders.
- Keep
docs/codebase.md in sync with the actual scaffolded structure.
- If unsure about a decision, apply the smart default and confirm with the user.
- Do not run destructive commands (e.g.,
rm -rf) without explicit user approval.
1---2name: bootstrap3description: Initialize and scaffold a new project with structured requirements gathering. Use when starting a project from scratch, after running a framework initializer (npm init, create-next-app, etc.), or when an existing minimal project needs proper structure, documentation, and conventions. Triggers on: 'bootstrap project', 'start new project', 'scaffold project', 'initialize project', 'setup new project', or when the user wants to go from zero to a well-structured project foundation.4---56# Bootstrap78Collect project requirements through structured dialogue, generate foundational documentation, and scaffold the project structure — then hand off to downstream workflow skills.910## Parameters1112- `--scratch`: Start from nothing. Full scaffold: directories, configs, docs, README.13- `--existing`: Project already initialized (e.g., `npm init` done, framework scaffolded). Enhance with docs and structure without overwriting existing files.1415## Requirement Categories1617Collect information across these 8 dimensions. All categories except **Techstack** and **Product definition** are optional and may fall back to smart defaults.1819| # | Category | What to collect |20| --- | ---------------------- | --------------------------------------------------------------- |21| 1 | **Techstack** | Language, framework, runtime, package manager |22| 2 | **Product definition** | Purpose, target users, core features, success criteria |23| 3 | **Architecture** | Component structure, data flow, API design, deployment target |24| 4 | **Roadmap** | Phases, milestones, MVP scope |25| 5 | **Tooling** | Linter, formatter, test framework, CI provider |26| 6 | **Code standards** | Naming conventions, file structure patterns, commit conventions |27| 7 | **Design system** | UI library, styling approach — _frontend projects only_ |28| 8 | **Auth & data** | Auth method, database, ORM — _if applicable_ |2930## Workflow3132### Step 1: Detect Project State33341. Check if a `package.json`, `pyproject.toml`, `Cargo.toml`, or similar manifest exists.352. Check if a `docs/` directory and documentation files exist.363. Determine mode:37 - If the user passed `--scratch` or nothing exists → proceed as `--scratch`.38 - If the user passed `--existing` or a project manifest exists → proceed as `--existing`.394. Announce the detected mode and ask for confirmation before continuing.4041### Step 2: Gather Requirements4243Follow the AskUserQuestion mandate for all questions. Ask one question at a time using multiple-choice options when possible.4445**Sequence:**46471. **Techstack** (required) — Ask about language/framework first. Offer common options based on context clues.482. **Product definition** (required) — Ask: what does this project do, who uses it, what are the 2-3 core features?493. **Architecture** — Ask: what are the main components, is there an API, where will it deploy?504. **Roadmap** — Ask: what is the MVP scope, are there phases?515. **Tooling** — Offer defaults from the Smart Defaults table; ask to confirm or override.526. **Code standards** — Ask about naming conventions, file layout preferences, commit style (Conventional Commits?).537. **Design system** — _Skip for non-frontend projects._ Ask about UI library and styling approach.548. **Auth & data** — _Skip if not applicable._ Ask about authentication and database/ORM if the project has these concerns.5556**Rules for gathering:**5758- If user says "I don't know", "default", or is vague → apply Smart Defaults for the detected stack and confirm.59- Skip categories that are clearly irrelevant (e.g., Design system for a CLI tool, Auth & data for a static site).60- Minimum required: Techstack + Product definition. All others can use defaults.6162### Step 3: Confirm Requirements Summary6364Present a concise summary of all collected requirements in a structured list. Ask for approval before proceeding:6566- `Looks good` / `Confirmed` → proceed to Step 4.67- User provides corrections → update the relevant category and re-present the summary.6869### Step 4: Generate Documentation7071Create the `docs/` directory if it doesn't exist. Generate all four foundational docs populated with concrete project-specific content — no placeholders.7273| File | Source categories |74| ----------------------- | -------------------------------------------- |75| `docs/project-pdr.md` | Product definition, Roadmap |76| `docs/architecture.md` | Architecture, Techstack, Auth & data |77| `docs/codebase.md` | Generated from actual structure after Step 5 |78| `docs/code-standard.md` | Techstack, Code standards, Tooling |7980Follow the same content requirements as the `docs --init` skill for each file.8182For `--existing` mode: read existing docs first. Only add missing sections; do not overwrite content that is already accurate.8384### Step 5: Scaffold Project Structure8586Create standard directories and essential config files based on the chosen techstack.8788**General rules:**8990- Create `src/`, `tests/` (or framework equivalent), `public/` for web projects.91- Create config files: `tsconfig.json`, `.eslintrc.json`, `.prettierrc`, `.gitignore`, etc.92- Initialize git (`git init`) if not already a repository.93- For `--existing` mode: only add missing files/directories. Never overwrite files that already exist.9495**Common scaffolds:**9697- **Next.js**: `src/app/`, `src/components/`, `src/lib/`, `public/`, `tests/`98- **React (Vite)**: `src/components/`, `src/hooks/`, `src/lib/`, `public/`, `tests/`99- **Express/Node**: `src/routes/`, `src/middleware/`, `src/lib/`, `tests/`100- **Python**: `src/<package>/`, `tests/`, `scripts/`101- **CLI (Node)**: `src/commands/`, `src/lib/`, `tests/`102103After scaffolding, regenerate `docs/codebase.md` to reflect the actual directory structure.104105### Step 6: Initialize Tooling106107Install and configure selected tools:1081091. Run package manager install: `npm install`, `bun install`, `pnpm install`, `pip install`, etc.1102. Install linter/formatter dev dependencies.1113. Write or update linter config (`biome.json`, `.eslintrc.json`, `ruff.toml`, etc.).1124. Write or update formatter config (`biome.json`, `.prettierrc`, etc.).1135. Add lint/format scripts to `package.json` (or equivalent).1146. If a test framework was selected, install it and create one example test file under `tests/`.115116Skip any sub-step where the file already exists (`--existing` mode).117118### Step 7: Generate README119120Create `README.md` with:121122- Project name and one-sentence description123- Tech stack badges or a concise stack list124- Prerequisites125- Quick start (install + run commands)126- Documentation links section pointing to all 4 docs files127- License (if specified)128129For `--existing` mode: update README only if it is missing or significantly incomplete.130131### Step 8: Handoff132133Summarize everything created:134135- List all new files/directories created136- List all docs generated137- List all tools configured138139Then recommend the next skill based on project readiness:140141- If requirements are exploratory or architecture is uncertain → recommend `brainstorm`142- If the plan is clear → recommend `write-plan` to create the first implementation plan143- If there's an immediate small task → recommend `quick-implement`144145## Smart Defaults146147| Stack | Package Manager | Linter | Formatter | Test Framework | Styling |148| --------------- | --------------- | ------ | --------- | -------------- | ------------ |149| Next.js | bun | Biome | Biome | Vitest | Tailwind CSS |150| React (Vite) | bun | Biome | Biome | Vitest | Tailwind CSS |151| Express/Node | bun | Biome | Biome | Vitest | N/A |152| CLI tool (Node) | bun | Biome | Biome | Vitest | N/A |153| Python | uv | Ruff | Ruff | pytest | N/A |154| Rust | cargo | clippy | rustfmt | cargo test | N/A |155156## Rules157158- Never overwrite existing files in `--existing` mode unless the user explicitly approves.159- Do not invent product requirements — always collect them from the user.160- Skip irrelevant categories; don't ask questions that don't apply to the project type.161- Generate documentation with concrete, project-specific content — no generic placeholders.162- Keep `docs/codebase.md` in sync with the actual scaffolded structure.163- If unsure about a decision, apply the smart default and confirm with the user.164- Do not run destructive commands (e.g., `rm -rf`) without explicit user approval.