Agent Skills: Project Init

Initialize Claude Code project settings with standard hooks and language-specific permissions. Use when setting up a new project for Claude Code or adding standard configuration to an existing project.

UncategorizedID: arjenschwarz/agentic-coding/project-init

Install this agent skill to your local

pnpm dlx add-skill https://github.com/ArjenSchwarz/agentic-coding/tree/HEAD/claude/skills/project-init

Skill Files

Browse the full folder contents for project-init.

Download Skill

Loading file tree…

claude/skills/project-init/SKILL.md

Skill Metadata

Name
project-init
Description
Initialize Claude Code project settings with standard hooks and language-specific permissions. Use when setting up a new project for Claude Code or adding standard configuration to an existing project.

Project Init

Initialize a project with standard Claude Code configuration.

What It Does

  1. Adds a SessionStart hook to .claude/settings.json for remote environment setup
  2. 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.json if it doesn't exist
  • Merges hooks and permissions into existing settings without overwriting
  • Is idempotent (safe to run multiple times)
  • Requires jq for JSON manipulation

Batch Setup

To initialize multiple projects:

for dir in ~/projects/*; do
  (cd "$dir" && ~/.claude/skills/project-init/scripts/setup-project.sh)
done