Awesome-claude-code init-project
Initialize a new project with CLAUDE.md, CLAUDE.local.md, and optional TASKS.md. Skips excluded projects. Sets correct git identity.
install
source · Clone the upstream repo
git clone https://github.com/m-ret/awesome-claude-code
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/m-ret/awesome-claude-code "$T" && mkdir -p ~/.claude/skills && cp -r "$T/global/skills/init-project" ~/.claude/skills/m-ret-awesome-claude-code-init-project && rm -rf "$T"
manifest:
global/skills/init-project/SKILL.mdsource content
Project Initialization Skill
Pre-flight Check
- Get current working directory
- If path matches an excluded project pattern (e.g.,
):~/Work/work-project- STOP: "This is an excluded project - skipping initialization (custom config exists)"
- Do NOT create any files
- Do NOT modify git config
Detection Phase
Scan for project type:
| File | Type | Package Manager |
|---|---|---|
| package.json | Node.js | npm/yarn/pnpm |
| requirements.txt / pyproject.toml | Python | pip/poetry |
| Cargo.toml | Rust | cargo |
| go.mod | Go | go |
| pom.xml | Java | maven |
| build.gradle | Java/Kotlin | gradle |
| composer.json | PHP | composer |
| Gemfile | Ruby | bundler |
| *.csproj | C#/.NET | dotnet |
Extract from detected files:
- Project name
- Dependencies
- Scripts/commands
- Version
Scan directory structure (top 3 levels).
Files to Create
1. CLAUDE.md (Project Root)
# [Project Name] ## Overview [Detected or ask user for 1-2 sentence description] ## Tech Stack - Runtime: [detected] - Framework: [detected] - Database: [detected if any] - Testing: [detected] ## Commands ### Development ```bash [detected start command]
Build
[detected build command]
Test
[detected test command]
Lint
[detected lint command]
Project Structure
[generated tree, 2-3 levels]
Code Conventions
- [Detect from existing code: semicolons, quotes, tabs/spaces]
- [Detect naming conventions]
- Follow existing patterns in codebase
Important Files
- Entry: [detected]
- Config: [detected]
- Routes/API: [detected]
- Tests: [detected]
Environment
- Required env vars: [detect from .env.example or similar]
- Node version: [detect from .nvmrc, package.json engines]
Patterns to Follow
[Space for ongoing patterns - add with # key]
Notes
[Space for learnings - update during sessions]
Auto-generated by /init-project. Update as project evolves.
### 2. CLAUDE.local.md (Project Root) ```markdown # Local Configuration (gitignored) ## My Current Focus - [ ] [Current task] ## Personal Notes - [Environment-specific notes] - [Local setup quirks] ## WIP / Experiments - [Things I'm trying] ## Questions to Resolve - [Uncertainties about codebase]
3. TASKS.md (Optional - ask user)
# Project Tasks ## In Progress - [ ] [task] ## Up Next - [ ] [task] ## Backlog - [ ] [task] ## Completed - [x] [task] - [date] --- *Reference this file at session start for context.*
Post-Creation Steps
-
Add to .gitignore (if not present):
CLAUDE.local.md -
Set git identity (if git repo):
git config user.email "your.email@example.com" git config user.name "Your Name" -
Verify setup:
git config user.email # Should show your configured email
Output Summary
After completion, report:
Project initialized: [name] Type: [detected type] Created: CLAUDE.md, CLAUDE.local.md Git identity: your.email@example.com Commands detected: [list] Ready to work. What would you like to do?
When Auto-Invoked
This skill should trigger automatically when:
- Claude starts in a directory without CLAUDE.md
- Directory is not in the excluded list
- Directory appears to be a project (has package.json, git, etc.)
Ask user: "No CLAUDE.md found. Initialize project? (Y/n)"