Project Scaffolding Skill
Overview
Standardized project initialization workflow with templates, boilerplate generation, and structure patterns. Ensures new projects start with consistent, well-organized foundations.
Type
workflow
When to Invoke
Trigger keywords: scaffold, new project, boilerplate, template, initialize, project structure, bootstrap, starter, setup
Trigger phrases:
- "create a new project"
- "set up a new app"
- "initialize the project"
- "bootstrap a new..."
- "scaffold a..."
Project Type Selection
| Type |
Use When |
Key Files |
| Web App |
Frontend/fullstack, browser-based |
package.json, index.html, src/, public/ |
| API/Backend |
REST/GraphQL services |
app.py or main.ts, routes/, models/ |
| CLI Tool |
Command-line applications |
cli.py or index.ts, commands/ |
| Library |
Reusable package/module |
lib/, src/, package.json or pyproject.toml |
| Microservice |
Distributed service |
Dockerfile, kubernetes/, src/ |
| Monorepo |
Multiple packages |
packages/, apps/, turbo.json or nx.json |
Essential Files Checklist
Every project MUST have:
Root Files
Configuration
Development
Optional but Recommended
Directory Structures
Python Project
project/
├── src/
│ └── project/
│ ├── __init__.py
│ ├── main.py
│ └── modules/
├── tests/
│ ├── __init__.py
│ ├── test_main.py
│ └── fixtures/
├── docs/
├── tmp/
├── pyproject.toml
├── README.md
└── .gitignore
TypeScript/Node Project
project/
├── src/
│ ├── index.ts
│ ├── types/
│ └── modules/
├── tests/
│ └── *.test.ts
├── docs/
├── tmp/
├── package.json
├── tsconfig.json
├── README.md
└── .gitignore
API Project
project/
├── src/
│ ├── app.ts (or main.py)
│ ├── routes/
│ ├── controllers/
│ ├── models/
│ ├── services/
│ ├── middleware/
│ └── utils/
├── tests/
├── docs/
│ ├── API_REFERENCE.md
│ └── SCHEMAS.md
├── tmp/
├── Dockerfile
├── docker-compose.yml
└── README.md
Technology Selection Framework
When choosing tech stack, consider:
Language Selection
| Factor |
Python |
TypeScript |
Go |
Rust |
| Rapid prototyping |
Excellent |
Good |
Moderate |
Slow |
| Performance |
Moderate |
Moderate |
Excellent |
Excellent |
| Type safety |
Optional |
Excellent |
Good |
Excellent |
| Ecosystem |
Massive |
Massive |
Growing |
Growing |
| Learning curve |
Low |
Low |
Moderate |
High |
Framework Selection
| Use Case |
Python |
TypeScript |
Go |
| REST API |
FastAPI, Flask |
Express, Fastify |
Gin, Echo |
| Web App |
Django, FastAPI |
Next.js, Nuxt |
- |
| CLI |
Click, Typer |
Commander, Yargs |
Cobra |
| Data |
Pandas, Polars |
- |
- |
Database Selection
| Type |
Options |
Use When |
| Relational |
PostgreSQL, SQLite |
Structured data, transactions |
| Document |
MongoDB |
Flexible schemas, rapid iteration |
| Key-Value |
Redis |
Caching, sessions |
| Graph |
Neo4j |
Relationship-heavy data |
Initialization Workflow
Step 1: Define Project Type
- What problem does this solve?
- Who is the user?
- What's the deployment target?
Step 2: Select Technology
- Language based on requirements
- Framework based on use case
- Database based on data model
Step 3: Create Structure
- Use appropriate directory template
- Create all essential files
- Initialize version control
Step 4: Configure Development
- Set up linting/formatting
- Configure testing framework
- Create development environment
Step 5: Document
- Write README with setup instructions
- Invoke
documentation-standards skill
- Create initial architecture docs
Anti-Patterns to Avoid
| Anti-Pattern |
Why Bad |
Do Instead |
| No .gitignore |
Commits secrets, artifacts |
Always create appropriate .gitignore |
| Flat structure |
Doesn't scale |
Use module/feature folders |
| No tests folder |
Testing becomes afterthought |
Create tests/ from start |
| Hardcoded config |
Environment-specific |
Use .env files |
| No docs folder |
Documentation neglected |
Create docs/ immediately |
Integration
Works with:
documentation-standards - For project documentation
tdd-workflow - For test setup
architecture-patterns - For design decisions
/newapp command - Invokes this skill automatically
Ensures consistent, well-structured project initialization
1---2name: project-scaffolding3description: Project scaffolding and boilerplate generation for new codebases4---56# Project Scaffolding Skill78## Overview910Standardized project initialization workflow with templates, boilerplate generation, and structure patterns. Ensures new projects start with consistent, well-organized foundations.1112## Type1314workflow1516## When to Invoke1718**Trigger keywords:** scaffold, new project, boilerplate, template, initialize, project structure, bootstrap, starter, setup1920**Trigger phrases:**21- "create a new project"22- "set up a new app"23- "initialize the project"24- "bootstrap a new..."25- "scaffold a..."2627## Project Type Selection2829| Type | Use When | Key Files |30|------|----------|-----------|31| **Web App** | Frontend/fullstack, browser-based | package.json, index.html, src/, public/ |32| **API/Backend** | REST/GraphQL services | app.py or main.ts, routes/, models/ |33| **CLI Tool** | Command-line applications | cli.py or index.ts, commands/ |34| **Library** | Reusable package/module | lib/, src/, package.json or pyproject.toml |35| **Microservice** | Distributed service | Dockerfile, kubernetes/, src/ |36| **Monorepo** | Multiple packages | packages/, apps/, turbo.json or nx.json |3738## Essential Files Checklist3940Every project MUST have:4142### Root Files43- [ ] `.gitignore` - Appropriate for language/framework44- [ ] `README.md` - Project overview, setup, usage45- [ ] `LICENSE` - If open source4647### Configuration48- [ ] Language config (`pyproject.toml`, `package.json`, `cargo.toml`)49- [ ] Editor config (`.editorconfig` or IDE settings)50- [ ] Linter/formatter config (eslint, prettier, ruff, black)5152### Development53- [ ] `./tmp/` - For temporary/test files54- [ ] `./docs/` - Documentation folder (invoke `documentation-standards` skill)55- [ ] Test directory (`tests/`, `__tests__/`, `spec/`)5657### Optional but Recommended58- [ ] `Dockerfile` - Container definition59- [ ] `docker-compose.yml` - Local development60- [ ] `.env.example` - Environment variable template61- [ ] `Makefile` or `justfile` - Common commands6263## Directory Structures6465### Python Project66```67project/68├── src/69│ └── project/70│ ├── __init__.py71│ ├── main.py72│ └── modules/73├── tests/74│ ├── __init__.py75│ ├── test_main.py76│ └── fixtures/77├── docs/78├── tmp/79├── pyproject.toml80├── README.md81└── .gitignore82```8384### TypeScript/Node Project85```86project/87├── src/88│ ├── index.ts89│ ├── types/90│ └── modules/91├── tests/92│ └── *.test.ts93├── docs/94├── tmp/95├── package.json96├── tsconfig.json97├── README.md98└── .gitignore99```100101### API Project102```103project/104├── src/105│ ├── app.ts (or main.py)106│ ├── routes/107│ ├── controllers/108│ ├── models/109│ ├── services/110│ ├── middleware/111│ └── utils/112├── tests/113├── docs/114│ ├── API_REFERENCE.md115│ └── SCHEMAS.md116├── tmp/117├── Dockerfile118├── docker-compose.yml119└── README.md120```121122## Technology Selection Framework123124When choosing tech stack, consider:125126### Language Selection127| Factor | Python | TypeScript | Go | Rust |128|--------|--------|------------|-----|------|129| Rapid prototyping | Excellent | Good | Moderate | Slow |130| Performance | Moderate | Moderate | Excellent | Excellent |131| Type safety | Optional | Excellent | Good | Excellent |132| Ecosystem | Massive | Massive | Growing | Growing |133| Learning curve | Low | Low | Moderate | High |134135### Framework Selection136| Use Case | Python | TypeScript | Go |137|----------|--------|------------|-----|138| REST API | FastAPI, Flask | Express, Fastify | Gin, Echo |139| Web App | Django, FastAPI | Next.js, Nuxt | - |140| CLI | Click, Typer | Commander, Yargs | Cobra |141| Data | Pandas, Polars | - | - |142143### Database Selection144| Type | Options | Use When |145|------|---------|----------|146| Relational | PostgreSQL, SQLite | Structured data, transactions |147| Document | MongoDB | Flexible schemas, rapid iteration |148| Key-Value | Redis | Caching, sessions |149| Graph | Neo4j | Relationship-heavy data |150151## Initialization Workflow152153### Step 1: Define Project Type154- What problem does this solve?155- Who is the user?156- What's the deployment target?157158### Step 2: Select Technology159- Language based on requirements160- Framework based on use case161- Database based on data model162163### Step 3: Create Structure164- Use appropriate directory template165- Create all essential files166- Initialize version control167168### Step 4: Configure Development169- Set up linting/formatting170- Configure testing framework171- Create development environment172173### Step 5: Document174- Write README with setup instructions175- Invoke `documentation-standards` skill176- Create initial architecture docs177178## Anti-Patterns to Avoid179180| Anti-Pattern | Why Bad | Do Instead |181|--------------|---------|------------|182| No .gitignore | Commits secrets, artifacts | Always create appropriate .gitignore |183| Flat structure | Doesn't scale | Use module/feature folders |184| No tests folder | Testing becomes afterthought | Create tests/ from start |185| Hardcoded config | Environment-specific | Use .env files |186| No docs folder | Documentation neglected | Create docs/ immediately |187188## Integration189190Works with:191- `documentation-standards` - For project documentation192- `tdd-workflow` - For test setup193- `architecture-patterns` - For design decisions194- `/newapp` command - Invokes this skill automatically195196---197198*Ensures consistent, well-structured project initialization*