| name | init-project |
| description | Initialize a new project from the VibeCoding starter template. Sets up directory structure, CLAUDE.md, git, and optional GitHub remote. |
| allowed-tools | Bash Read Write Edit Grep Glob |
Project Initialization Workflow
You are initializing a new project using the VibeCoding starter template.
Follow these steps exactly in order.
Step 1: Display Credits
Show the user:
Template by sunny | 桑尼資料科學 channel | v2.0.0
Step 2: Gather Project Information
Ask the user these questions interactively (wait for answers before proceeding):
- Project name? -> [PROJECT_NAME]
- Brief project description? -> [PROJECT_DESCRIPTION]
- Project type?
- Simple (basic scripts/utilities)
- Standard (full application)
- AI/ML (ML/data science project)
- Custom (user defines structure)
- Primary language? (Python / JavaScript / TypeScript / Java / Go / Other)
- Set up GitHub repository?
- Yes - Create new repo
- Yes - Connect to existing repo
- No - Local git only
Step 3: Create Directory Structure
Based on the chosen project type, create the appropriate structure using mkdir -p:
Simple Project
mkdir -p src tests docs output
Standard Project
mkdir -p src/{main/{[language],resources/{config,assets}},test/{unit,integration}}
mkdir -p docs/{api,user,dev} tools examples output
Replace [language] with the chosen language directory (e.g., python, js, ts, java).
Inside the language directory, create: core/, utils/, models/, services/, api/
AI/ML Project
mkdir -p src/{main/{[language],resources/{config,data,assets}},test/{unit,integration,fixtures}}
mkdir -p data/{raw,processed,external,temp}
mkdir -p notebooks/{exploratory,experiments,reports}
mkdir -p models/{trained,checkpoints,metadata}
mkdir -p experiments/{configs,results,logs}
mkdir -p docs/{api,user,dev} tools scripts examples output logs tmp
Inside the language directory, also create: training/, inference/, evaluation/
Step 4: Create .gitignore
Generate an appropriate .gitignore based on the chosen language and project type. Include:
- Language-specific patterns (e.g.,
__pycache__/ for Python, node_modules/ for JS)
- IDE files (
.vscode/, .idea/)
- OS files (
.DS_Store, Thumbs.db)
- Environment files (
.env, *.env)
- Build/output directories
- For AI/ML: model weights, large data files, checkpoints
Step 5: Create README.md
Generate a README.md with:
- Project name and description
- Quick start instructions
- Project structure overview
- Development guidelines
Step 6: Generate Project CLAUDE.md
OVERWRITE the existing CLAUDE.md (which contains the init template) with a project-specific version.
The generated CLAUDE.md MUST include these sections:
# CLAUDE.md - [PROJECT_NAME]
> **Last Updated**: [TODAY_DATE]
> **Project**: [PROJECT_NAME]
> **Description**: [PROJECT_DESCRIPTION]
This file provides guidance to Claude Code when working with this repository.
## Critical Rules
### Prohibitions
- NEVER create files in root directory - use proper module structure
- NEVER create duplicate files (v2, enhanced_, new_) - extend existing files
- NEVER hardcode secrets - use environment variables or config files
- NEVER use shell commands (grep/find/cat) when dedicated tools exist
### Requirements
- ALWAYS search existing code before creating new files (Grep/Glob first)
- ALWAYS read files before editing (Edit/Write require prior Read)
- COMMIT after every completed task
- Use proper module structure under src/
## Project Structure
[Include the actual directory tree created in Step 3]
## Development Workflow
1. Search existing code before creating new files
2. Read and understand before modifying
3. Make changes in proper module structure
4. Test your changes
5. Commit with descriptive message
## Common Commands
[Add language-appropriate commands based on user's choice]
Step 7: Clean Up Template Files
Ask the user:
Do you want to keep the workflow templates (software/) and archive files (archive/) for reference?
- Yes: Keep them in the project
- No: Remove them to keep the project clean
If user says No, remove:
rm -rf software/ archive/
If user says Yes, keep them as-is for reference.
Step 8: Initialize Git
git init
git add .
git commit -m "feat: initial project setup with Claude Code template
- Created [PROJECT_TYPE] project structure
- Generated CLAUDE.md with project rules
- Added .gitignore and README.md
Template by sunny | 桑尼資料科學 channel | v2.0.0"
Step 9: GitHub Setup (if requested)
Option A: Create New Repo
gh auth status || echo "Run: gh auth login"
gh repo create [PROJECT_NAME] --public --description "[PROJECT_DESCRIPTION]" --confirm
git remote add origin https://github.com/[USERNAME]/[PROJECT_NAME].git
git branch -M main
git push -u origin main
Option B: Connect Existing Repo
Ask the user for the repository URL, then:
git remote add origin [REPO_URL]
git branch -M main
git push -u origin main
Option C: Skip
No action needed.
Step 10: Final Verification
Verify and report:
Step 11: Completion Message
Display:
[PROJECT_NAME] initialized successfully!
CLAUDE.md rules are now active.
GitHub backup: [ENABLED/DISABLED]
Template by sunny | 桑尼資料科學 channel | v2.0.0
Next steps:
1. Start developing in src/
2. Follow CLAUDE.md rules
3. Commit after each feature