| name | init |
| description | Initialize a new project with structure, configuration, and boilerplate. |
/init
Initialize a new project with structure, configuration, and boilerplate.
Usage
/init <project_name> [--template <template>] [--stack <stack>]
Arguments
project_name: Name for the new project (kebab-case)
--template: Project template (api, cli, library, fullstack)
--stack: Technology stack (python, typescript, go)
Instructions
When this skill is invoked:
Agent Behavior
Autonomy:
- Complete project setup end-to-end
- Make reasonable technology choices based on template
- Configure all tooling without prompting
Quality:
- Follow best practices for the chosen stack
- Include comprehensive .gitignore
- Set up quality tooling (linting, testing, formatting)
Initialization Process
-
Validate project name:
- Must be kebab-case
- Must not conflict with existing directories
- Must be valid package name
-
Determine stack (if not specified):
- Ask user preference
- Or detect from context
-
Create project structure
-
Initialize version control:
git init
git add .
git commit -m "chore: initial project setup"
-
Install dependencies
-
Verify setup:
{test_command}
{lint_command}
{build_command}
Project Templates
API (--template api)
REST/GraphQL API service:
project-name/
โโโ src/
โ โโโ api/ # Route handlers
โ โโโ services/ # Business logic
โ โโโ models/ # Data models
โ โโโ middleware/ # Request middleware
โ โโโ config/ # Configuration
โ โโโ main.{ext} # Entry point
โโโ tests/
โ โโโ unit/
โ โโโ integration/
โโโ docs/
โโโ .env.example
โโโ .gitignore
โโโ README.md
โโโ {package_config}
CLI (--template cli)
Command-line application:
project-name/
โโโ src/
โ โโโ commands/ # CLI commands
โ โโโ utils/ # Utilities
โ โโโ main.{ext} # Entry point
โโโ tests/
โโโ .gitignore
โโโ README.md
โโโ {package_config}
Library (--template library)
Reusable library/package:
project-name/
โโโ src/
โ โโโ index.{ext} # Public API
โ โโโ lib/ # Implementation
โโโ tests/
โโโ docs/
โโโ .gitignore
โโโ README.md
โโโ LICENSE
โโโ {package_config}
Fullstack (--template fullstack)
Full-stack web application:
project-name/
โโโ apps/
โ โโโ api/ # Backend API
โ โโโ web/ # Frontend app
โโโ packages/
โ โโโ shared/ # Shared code
โโโ .gitignore
โโโ README.md
โโโ {monorepo_config}
Stack Configuration
Python (--stack python)
Package Manager: uv
Framework: FastAPI (api), Click (cli), none (library)
Testing: pytest, pytest-cov
Linting: ruff
Type Checking: mypy
Files created:
pyproject.toml
.python-version
src/{project}/__init__.py
tests/conftest.py
TypeScript (--stack typescript)
Runtime: Node.js / Bun
Package Manager: bun
Framework: Hono (api), Commander (cli), none (library)
Testing: vitest
Linting: eslint, prettier
Type Checking: tsc
Files created:
package.json
tsconfig.json
.eslintrc.js
.prettierrc
src/index.ts
Generated Files
Always included:
.gitignore (comprehensive for stack)
README.md (with getting started)
.env.example (if config needed)
LICENSE (MIT default)
AI Agent support:
CLAUDE.md (from template)
.claude/rules/ (universal rules, from template)
.claude/rules-available/ (platform rules, from template)
.claude/references/ (on-demand references, from template)
.claude/skills/ (from template)
Enable Platform Rules
Based on the chosen template and stack, symlink relevant rules from rules-available/ into rules/:
Web / Fullstack (Next.js, React):
ln -s ../rules-available/nextjs.md .claude/rules/nextjs.md
ln -s ../rules-available/security-web.md .claude/rules/security-web.md
ln -s ../rules-available/security-owasp.md .claude/rules/security-owasp.md
Python (uv / FastAPI):
ln -s ../rules-available/python.md .claude/rules/python.md
ln -s ../rules-available/security-owasp.md .claude/rules/security-owasp.md
API (any stack, minimal):
ln -s ../rules-available/security-owasp.md .claude/rules/security-owasp.md
iOS (Swift / SwiftUI):
ln -s ../rules-available/ios.md .claude/rules/ios.md
ln -s ../rules-available/security-owasp.md .claude/rules/security-owasp.md
Android (Kotlin / Compose):
ln -s ../rules-available/android.md .claude/rules/android.md
ln -s ../rules-available/security-owasp.md .claude/rules/security-owasp.md
Dockerized project:
ln -s ../rules-available/docker.md .claude/rules/docker.md
ln -s ../rules-available/security-owasp.md .claude/rules/security-owasp.md
Mobile (React Native):
ln -s ../rules-available/security-mobile.md .claude/rules/security-mobile.md
ln -s ../rules-available/security-web.md .claude/rules/security-web.md
ln -s ../rules-available/security-owasp.md .claude/rules/security-owasp.md
Post-Init Checklist
Example Output
$ /init my-api --template api --stack python
Creating project: my-api
Template: API
Stack: Python (uv + FastAPI)
Creating directory structure...
โ
src/my_api/
โ
src/my_api/api/
โ
src/my_api/services/
โ
src/my_api/models/
โ
tests/unit/
โ
tests/integration/
Creating configuration files...
โ
pyproject.toml
โ
.python-version (3.13)
โ
.gitignore
โ
.env.example
โ
README.md
โ
CLAUDE.md
Installing dependencies...
โ
uv sync
Initializing git...
โ
git init
โ
Initial commit created
Running verification...
โ
Tests pass (2/2)
โ
Linting passes
โ
Type checking passes
Project created successfully!
Next steps:
1. cd my-api
2. cp .env.example .env
3. Edit .env with your configuration
4. uv run uvicorn src.my_api.main:app --reload
5. Visit http://localhost:8000/docs
Happy coding!