Configuration de projet pour Claude Code

VérifiéSûr

Guide pour configurer des projets afin qu'ils fonctionnent de manière optimale avec Claude Code. Couvre la structure de répertoire, les fichiers de paramètres, les permissions et les meilleures pratiques.

Spar Skills Guide Bot
DeveloppementDébutant
28/07/2026
Claude Code
#claude-code-config#project-setup#permissions#claude-md#team-workflow

Recommandé pour

Synthèse automatique

Guide de configuration d'un projet pour qu'il fonctionne de manière optimale avec Claude Code : arborescence `.claude/`, fichiers de réglages, permissions et partage en équipe.

Points forts

  • Fournit une checklist de démarrage rapide et trois niveaux d'arborescence (minimale, standard, complète avec hooks)
  • Tableau de référence clair indiquant quels fichiers versionner et lesquels garder en local (settings.local.json)
  • Modèle de CLAUDE.md prêt à remplir et explication de l'ordre de précédence des fichiers CLAUDE.md
  • Exemples concrets de permissions allow/deny dans settings.json pour encadrer les commandes Bash

Limites

  • Très centré sur l'écosystème Claude Code : peu transposable à d'autres agents
  • Le document fourni s'interrompt au milieu de l'exemple settings.json, qui n'est donc pas complet
  • Ne détaille pas le contenu ni le format des scripts de hooks, seulement leur emplacement
Quand l'utiliser

À utiliser au moment d'initialiser un nouveau dépôt ou de standardiser la configuration Claude Code d'une équipe existante.

Quand l'éviter

À éviter si vous cherchez des conseils d'écriture de code ou de conception d'applications plutôt que la configuration de l'outil.

Analyse de sécurité

Sûr
Score qualité88/100

The skill provides documentation and configuration guidance for setting up Claude Code projects. It does not instruct destructive or exfiltrating actions; examples of deny patterns for rm and sudo are included for safety. No commands are executed that could cause harm.

Aucun point d'attention détecté

Comment cette analyse est faite

Exemples

Bootstrap a new repo
Set up this new TypeScript project for Claude Code: create the .claude directory, a CLAUDE.md with our stack and commands, and a settings.json with sensible permission allow/deny lists.
Share team permissions
I want to commit shared permissions for our team but keep my personal overrides private — configure .claude/settings.json and .claude/settings.local.json and gitignore the local one.
Troubleshoot config
Claude Code keeps asking for permission on every bun command in this project and seems to ignore our project instructions — check my .claude setup and CLAUDE.md placement and fix it.

name: project-setup description: Guide for setting up projects to work optimally with Claude Code. Use when configuring new projects, migrating existing projects, setting up team permissions, or troubleshooting project configuration. Covers directory structure, settings files, permissions, and best practices. allowed-tools: ["Read", "Write", "Edit", "Bash", "Glob"]

Project Setup

Set up projects to work optimally with Claude Code with proper configuration, permissions, and team sharing.

Quick Reference

| Directory/File | Purpose | Committed | |----------------|---------|-----------| | .claude/ | Project configuration root | Yes (mostly) | | .claude/settings.json | Project settings and hooks | Yes | | .claude/settings.local.json | Personal project overrides | No | | .claude/commands/ | Project slash commands | Yes | | .claude/skills/ | Project-specific skills | Yes | | CLAUDE.md | Project knowledge for Claude | Yes | | .mcp.json | Shared MCP servers | Yes | | ~/.claude/ | Personal global configuration | No |

Quick Setup Checklist

For new projects:

  • [ ] Create .claude/ directory structure
  • [ ] Add CLAUDE.md with project knowledge
  • [ ] Configure .claude/settings.json with permissions
  • [ ] Add .claude/settings.local.json to .gitignore
  • [ ] Set up MCP servers in .mcp.json if needed
  • [ ] Create project-specific slash commands
  • [ ] Run /init to verify setup

Directory Structure

Minimal Setup

project/
├── .claude/
│   └── settings.json          # Basic permissions
└── CLAUDE.md                  # Project knowledge

Standard Setup

project/
├── .claude/
│   ├── settings.json          # Shared project settings
│   ├── settings.local.json    # Personal overrides (gitignored)
│   ├── commands/              # Project slash commands
│   │   └── deploy.md
│   └── skills/                # Project-specific skills
│       └── domain-model/
│           └── SKILL.md
├── .mcp.json                  # Shared MCP servers
├── CLAUDE.md                  # Project knowledge (root)
└── src/
    └── CLAUDE.md              # Subdirectory knowledge (optional)

Full Setup (with hooks)

project/
├── .claude/
│   ├── settings.json          # Settings with hooks
│   ├── settings.local.json    # Personal overrides
│   ├── commands/              # Slash commands
│   │   ├── deploy.md
│   │   └── test.md
│   ├── skills/                # Project skills
│   │   └── domain-model/
│   │       └── SKILL.md
│   └── hooks/                 # Hook scripts
│       ├── format.sh
│       └── validate.py
├── .mcp.json                  # Shared MCP servers
└── CLAUDE.md                  # Project knowledge

CLAUDE.md

The most important file for Claude Code. Place in project root.

Template

# CLAUDE.md

## Project Overview
[Brief description of what this project does]

## Tech Stack
- [Framework/language]
- [Database]
- [Key dependencies]

## Commands
- `bun install` - Install dependencies
- `bun dev` - Start development server
- `bun test` - Run tests
- `bun build` - Build for production

## Architecture
[Key directories and their purposes]

## Code Style
- [Linting rules]
- [Naming conventions]
- [Patterns to follow]

## Important Notes
- [Gotchas and things Claude should know]

Location Precedence

Claude reads CLAUDE.md files in this order (all are included):

  1. ~/.claude/CLAUDE.md - Personal global instructions
  2. ~/CLAUDE.md - Home directory instructions
  3. ./CLAUDE.md - Project root
  4. ./src/CLAUDE.md - Subdirectory (and any other CLAUDE.md files)

Tip: Use subdirectory CLAUDE.md files for module-specific guidance.

Settings Files

.claude/settings.json

Project settings committed to version control.

{
  "permissions": {
    "allow": [
      "Bash(bun:*)",
      "Bash(git:*)",
      "Read",
      "Write",
      "Edit"
    ],
    "deny": [
      "Bash(rm -rf:*)",
      "Bash(sudo:*)"
    ]
  },
  "env": {
    "NODE_ENV": "development"
  },
  "hooks": {}
}

.claude/settings.local.json

Personal overrides (add to .gitignore).

{
  "permissions": {
    "allow": [
      "Bash(docker:*)"
    ]
  },
  "env": {
    "DEBUG": "true"
  }
}

~/.claude/settings.json

User-level settings (applies to all projects).

{
  "permissions": {
    "allow": [
      "Read",
      "Glob",
      "Grep"
    ],
    "deny": []
  },
  "env": {}
}

Permission Setup

Permission Patterns

| Pattern | Matches | |---------|---------| | Read | All Read operations | | Bash(git:*) | All git commands | | Bash(npm install:*) | npm install with any args | | Bash(bun test src/**:*) | bun test on src directory | | Write(*.md) | Write to markdown files | | Edit(src/**) | Edit files in src/ |

Recommended Permissions by Project Type

Node.js/Bun:

{
  "permissions": {
    "allow": [
      "Bash(bun:*)", "Bash(npm:*)", "Bash(npx:*)",
      "Bash(git:*)",
      "Read", "Write", "Edit", "Glob", "Grep"
    ],
    "deny": [
      "Bash(rm -rf /*))",
      "Bash(sudo:*)"
    ]
  }
}

Python:

{
  "permissions": {
    "allow": [
      "Bash(python:*)", "Bash(pip:*)", "Bash(uv:*)",
      "Bash(pytest:*)",
      "Bash(git:*)",
      "Read", "Write", "Edit", "Glob", "Grep"
    ],
    "deny": [
      "Bash(rm -rf /*))",
      "Bash(sudo:*)"
    ]
  }
}

Rust:

{
  "permissions": {
    "allow": [
      "Bash(cargo:*)", "Bash(rustc:*)",
      "Bash(git:*)",
      "Read", "Write", "Edit", "Glob", "Grep"
    ],
    "deny": [
      "Bash(rm -rf /*))",
      "Bash(sudo:*)"
    ]
  }
}

MCP Server Configuration

.mcp.json (Shared)

{
  "mcpServers": {
    "memory": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-memory"]
    },
    "github": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-github"],
      "env": {
        "GITHUB_TOKEN": "${GITHUB_TOKEN}"
      }
    }
  }
}

Adding Servers

# Add to project (creates .mcp.json)
claude mcp add --scope project memory -- npx -y @modelcontextprotocol/server-memory

# Add to user (all projects)
claude mcp add --scope user github -- npx -y @modelcontextprotocol/server-github

# Add remote server
claude mcp add --transport http context7 https://mcp.context7.com/v1/mcp

Hooks Setup

Add to .claude/settings.json:

{
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Write|Edit",
        "hooks": [
          {
            "type": "command",
            "command": "\"$CLAUDE_PROJECT_DIR\"/.claude/hooks/format.sh"
          }
        ]
      }
    ],
    "SessionStart": [
      {
        "hooks": [
          {
            "type": "command",
            "command": "echo \"Project: $(basename $CLAUDE_PROJECT_DIR)\""
          }
        ]
      }
    ]
  }
}

Team Considerations

What to Commit

| File | Commit? | Reason | |------|---------|--------| | .claude/settings.json | Yes | Shared project config | | .claude/settings.local.json | No | Personal overrides | | .claude/commands/ | Yes | Team slash commands | | .claude/skills/ | Yes | Team knowledge | | .claude/hooks/ | Yes | Shared automation | | .mcp.json | Yes | Shared MCP servers | | CLAUDE.md | Yes | Project knowledge |

.gitignore Additions

# Claude Code personal settings
.claude/settings.local.json
.claude/*.local.json

# MCP server data (if any)
.mcp-data/

Team Onboarding

  1. Clone repository
  2. Run /init to verify Claude Code setup
  3. Create personal .claude/settings.local.json for overrides
  4. Set required environment variables
  5. Run /project-status (if command exists) to verify

Validation Commands

# Check Claude Code settings
claude config list

# Verify MCP servers
claude mcp list

# Check permissions
/permissions

# View hooks
/hooks

Common Issues

| Issue | Solution | |-------|----------| | Settings not loading | Check JSON syntax with jq . .claude/settings.json | | MCP server not starting | Run claude mcp logs <name> | | Permissions not applying | Check precedence: local > project > user | | CLAUDE.md not read | Ensure it's in project root or cwd | | Hooks not running | Verify script is executable |

Reference Files

| File | Contents | |------|----------| | CONFIGURATION.md | Deep dive into all configuration options | | PERMISSIONS.md | Permission patterns and security | | CHECKLIST.md | Complete setup and migration checklists |

Du fichier au premier essai

Le téléchargement contient exactement le contenu affiché sur cette fiche. Cette copie peut différer de la dernière version du dépôt source.

Consulter la source et ses fichiers annexes

Ce téléchargement contient uniquement SKILL.md. Les scripts, références, modèles et dépendances éventuels ne sont pas inclus. Récupérez les fichiers nécessaires depuis la source en conservant leur arborescence avant de poursuivre.

1. Télécharger le fichier

Télécharger SKILL.md

Depuis la racine d’un projet de test, enregistrez le fichier sous .skill-downloads/project-setup-for-claude-code-ms47vort/SKILL.md, ou utilisez la commande suivante. Ce dossier sert à examiner la skill avant son installation.

Commande pour macOS/Linux ou WSL : un shell POSIX et curl sont nécessaires. Sous Windows sans WSL, utilisez le bouton de téléchargement et créez le dossier manuellement.

mkdir -p '.skill-downloads/project-setup-for-claude-code-ms47vort' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/project-setup-for-claude-code-ms47vort/download' --output '.skill-downloads/project-setup-for-claude-code-ms47vort/SKILL.md.part' && mv '.skill-downloads/project-setup-for-claude-code-ms47vort/SKILL.md.part' '.skill-downloads/project-setup-for-claude-code-ms47vort/SKILL.md'

2. Vérifier les prérequis

Lisez SKILL.md avant de l’utiliser. Si le fichier cite des scripts ou services externes, examinez-les et préparez les accès nécessaires dans votre environnement de test.

Extrait original : Quick Reference
Directory/FilePurposeCommitted
.claude/Project configuration rootYes (mostly)
.claude/settings.jsonProject settings and hooksYes
.claude/settings.local.jsonPersonal project overridesNo
.claude/commands/Project slash commandsYes
.claude/skills/Project-specific skillsYes
CLAUDE.mdProject knowledge for ClaudeYes
.mcp.jsonShared MCP serversYes
~/.claude/Personal global configurationNo

Les plateformes de la fiche sont des indications du catalogue. Les chemins ci-dessous suivent la documentation des outils ; ils ne prouvent pas que cette skill y a été exécutée. Aucune version minimale de ces outils n’est attestée pour cette fiche.

3. Charger la skill

Après vérification, copiez le dossier complet dans le projet avec l’une des commandes ci-dessous, puis ouvrez une nouvelle session de l’outil. La commande s’arrête si un dossier du même nom existe déjà : comparez les fichiers avant de le remplacer.

Claude Code
test -f '.skill-downloads/project-setup-for-claude-code-ms47vort/SKILL.md' && test -s '.skill-downloads/project-setup-for-claude-code-ms47vort/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/project-setup' && cp -R '.skill-downloads/project-setup-for-claude-code-ms47vort' '.claude/skills/project-setup'

OpenSkills

OpenSkills doit déjà être installé. La procédure locale install/read est contrôlée avec OpenSkills 1.5.0, qui exige Node.js ≥ 20.6.0. Aucun slug du catalogue n’est résolu automatiquement.

Installation officielle d’OpenSkills
openskills install './.skill-downloads/project-setup-for-claude-code-ms47vort'

openskills read 'project-setup-for-claude-code-ms47vort'

La lecture doit afficher le contenu du fichier installé et son dossier de base. Elle ne lance ni la skill ni ses dépendances.

Pour un agent qui lit AGENTS.md, synchronisez ensuite l’index. Cette commande modifie AGENTS.md : relisez le diff avant de l’utiliser.

openskills sync

Mode manuel ou autre outil : joignez SKILL.md à une conversation, ou ouvrez-le dans un agent capable de lire les fichiers. Ajoutez les ressources annexes nécessaires. Il n’existe pas de dossier universel reconnu par tous les outils.

4. Faire un premier essai

Utilisez une entrée courte et fictive : un endpoint d’API, un petit document ou un brief d’interface. Dans une nouvelle conversation, joignez le fichier ou donnez son chemin à l’agent, puis adaptez cette demande :

Lis .skill-downloads/project-setup-for-claude-code-ms47vort/SKILL.md et applique ses instructions à cet exemple : [décrire une entrée de test]. Indique les fichiers, dépendances ou accès qui manquent. Produis le résultat demandé par la skill sans inventer de données ni exécuter de script non examiné.

Résultat attendu : une sortie correspondant aux instructions de la skill, ou une liste précise des prérequis manquants. Une simple confirmation de lecture ne valide pas le premier usage. Si une ressource externe est indisponible, ce parcours reste à tester.

Skills similaires