Source Code
project-scaffold
Scaffold new projects with best-practice structure, tooling, and configuration.
Usage
When Colt (or you) needs to start a new project, use this skill to generate the full boilerplate.
Decision Tree
Ask or infer the project type:
Web App (React / Next.js)
my-app/
โโโ src/
โ โโโ app/ # Next.js app router
โ โโโ components/ # Reusable UI components
โ โโโ lib/ # Utilities, helpers, API clients
โ โโโ styles/ # Global styles, Tailwind config
โ โโโ types/ # TypeScript type definitions
โโโ public/ # Static assets
โโโ tests/ # Test files
โโโ .gitignore
โโโ .eslintrc.json
โโโ tailwind.config.ts
โโโ tsconfig.json
โโโ package.json
โโโ README.md
Init commands:
npx create-next-app@latest my-app --typescript --tailwind --eslint --app --src-dir
cd my-app && npm install
API / Backend (FastAPI)
my-api/
โโโ app/
โ โโโ __init__.py
โ โโโ main.py # FastAPI app entry
โ โโโ routers/ # Route modules
โ โโโ models/ # Pydantic models / DB models
โ โโโ services/ # Business logic
โ โโโ config.py # Settings / env vars
โโโ tests/
โโโ .gitignore
โโโ pyproject.toml
โโโ requirements.txt
โโโ README.md
Init commands:
mkdir my-api && cd my-api
uv init && uv pip install fastapi uvicorn
Mobile App (SwiftUI)
MyApp/
โโโ MyApp/
โ โโโ App.swift
โ โโโ ContentView.swift
โ โโโ Models/
โ โโโ Views/
โ โโโ ViewModels/
โ โโโ Services/
โโโ MyAppTests/
โโโ MyAppUITests/
โโโ README.md
Init: Use Xcode or swift package init --type executable
CLI Tool (Node / Python)
my-cli/
โโโ src/
โ โโโ index.ts # Entry point
โโโ bin/
โ โโโ my-cli # Executable wrapper
โโโ tests/
โโโ .gitignore
โโโ tsconfig.json
โโโ package.json
โโโ README.md
Browser Extension
my-extension/
โโโ src/
โ โโโ background.ts
โ โโโ content.ts
โ โโโ popup/
โ โ โโโ popup.html
โ โ โโโ popup.ts
โ โ โโโ popup.css
โ โโโ options/
โโโ icons/
โโโ manifest.json
โโโ .gitignore
โโโ tsconfig.json
โโโ package.json
โโโ README.md
Post-Scaffold Checklist
After generating structure:
git init && git add -A && git commit -m "Initial scaffold"- Create
.gitignoreappropriate to the project type - Set up linting config (ESLint / Ruff)
- Add a basic README with project name and setup instructions
- Add a basic test file to verify the test runner works
Asset Templates
.gitignore (universal base)
node_modules/
__pycache__/
.env
.env.local
dist/
build/
.next/
*.pyc
.DS_Store
*.log
coverage/