project-init
Project Init
Initialize a project with standard Claude Code configuration.
What It Does
- Adds a SessionStart hook to
.claude/settings.jsonfor remote environment setup - Detects project languages and adds appropriate tool permissions
Language Detection
The script detects languages based on project files and adds permissions:
| Detection File | Language | Permissions Added |
|---|---|---|
go.mod |
Go | go, golangci-lint, staticcheck, govulncheck |
Package.swift, *.xcodeproj |
Swift | swift, xcodebuild, swiftlint, xcrun |
package.json |
Node.js | npm, npx, node, plus yarn/pnpm/bun if lockfiles present |
pyproject.toml, requirements.txt |
Python | python, pip, uv, pytest, ruff, mypy |
Cargo.toml |
Rust | cargo, rustc |
Gemfile |
Ruby | ruby, bundle, rake, rspec |
pom.xml |
Java (Maven) | mvn, java |
build.gradle |
Java (Gradle) | gradle, ./gradlew, java |
Dockerfile |
Docker | docker, docker-compose |
*.tf |
Terraform | terraform, tofu |
Makefile |
Make | make |
git is always included.
Usage
Run the setup script from your project directory:
~/.claude/skills/project-init/scripts/setup-project.sh
The script:
- Creates
.claude/settings.jsonif it doesn't exist - Merges hooks and permissions into existing settings without overwriting
- Is idempotent (safe to run multiple times)
- Requires
jqfor JSON manipulation
Batch Setup
To initialize multiple projects:
for dir in ~/projects/*; do
(cd "$dir" && ~/.claude/skills/project-init/scripts/setup-project.sh)
done
More from arjenschwarz/agentic-coding
ui-ux-reviewer
Evaluate and improve user experience of interfaces (CLI, web, mobile)
120efficiency-optimizer
Analyze code for performance and efficiency improvements
41design-critic
Critical review of design documents, architecture proposals, and requirements
26fix-bug
Systematic bug investigation, resolution, and documentation. Use when fixing bugs that need thorough analysis, test coverage, and a formal bugfix report. Applies systematic debugging methodology, creates regression tests, and generates a standardized report in specs/bugfixes/<bug-name>/. For complex bugs, spawns competing implementation agents (including alternative harnesses like Kiro) and selects the best solution. Triggers on requests like "fix this bug", "debug and document this issue", or when a bug needs both resolution and documentation.
22permission-analyzer
Generate Claude Code permissions config from session history. Use when setting up autonomous mode, configuring .claude/settings.json, avoiding --dangerously-skip-permissions, or analyzing what permissions a project needs. Reads session logs to extract Bash commands and MCP tools actually used, then generates appropriate allow/deny rules.
22performing-systematic-debugging-for-stubborn-problems
Applies a modified Fagan Inspection methodology to systematically resolve persistent bugs and complex issues. Use when multiple previous fix attempts have failed repeatedly, when dealing with intricate system interactions, or when a methodical root cause analysis is needed. Do not use for simple troubleshooting. Triggers after multiple failed debugging attempts on the same complex issue.
20