Skip to content

CLAUDE.md Guide

Configure project-specific instructions for CCW using CLAUDE.md.

What is CLAUDE.md?

CLAUDE.md is a special file that contains project-specific instructions, conventions, and preferences for CCW. It's automatically loaded when CCW operates on your project.

File Location

Place CLAUDE.md in your project root:

my-project/
├── CLAUDE.md          # Project instructions
├── package.json
└── src/

File Structure

markdown
# Project Name

## Overview
Brief description of the project.

## Tech Stack
- Frontend: Framework + libraries
- Backend: Runtime + framework
- Database: Storage solution

## Coding Standards
- Style guide
- Linting rules
- Formatting preferences

## Architecture
- Project structure
- Key patterns
- Important conventions

## Development Guidelines
- How to add features
- Testing requirements
- Documentation standards

Example CLAUDE.md

markdown
# E-Commerce Platform

## Overview
Multi-tenant e-commerce platform with headless architecture.

## Tech Stack
- Frontend: Vue 3 + TypeScript + Vite
- Backend: Node.js + NestJS
- Database: PostgreSQL + Redis
- Queue: BullMQ

## Coding Standards

### TypeScript
- Use strict mode
- No implicit any
- Explicit return types

### Naming Conventions
- Components: PascalCase (UserProfile.ts)
- Utilities: camelCase (formatDate.ts)
- Constants: UPPER_SNAKE_CASE (API_URL)

### File Structure

src/ ├── components/ # Vue components ├── composables/ # Vue composables ├── services/ # Business logic ├── types/ # TypeScript types └── utils/ # Utilities


## Architecture

### Layered Architecture
1. **Presentation Layer**: Vue components
2. **Application Layer**: Composables and services
3. **Domain Layer**: Business logic
4. **Infrastructure Layer**: External services

### Key Patterns
- Repository pattern for data access
- Factory pattern for complex objects
- Strategy pattern for payments

## Development Guidelines

### Adding Features
1. Create feature branch from develop
2. Implement feature with tests
3. Update documentation
4. Create PR with template

### Testing
- Unit tests: Vitest
- E2E tests: Playwright
- Coverage: >80%

### Commits
Follow conventional commits:
- feat: New feature
- fix: Bug fix
- docs: Documentation
- refactor: Refactoring
- test: Tests

## Important Notes
- Always use TypeScript strict mode
- Never commit .env files
- Run linter before commit
- Update API docs for backend changes

Sections

Required Sections

SectionPurpose
OverviewProject description
Tech StackTechnologies used
Coding StandardsStyle conventions
ArchitectureSystem design

Optional Sections

SectionPurpose
TestingTest requirements
DeploymentDeploy process
TroubleshootingCommon issues
ReferencesExternal docs

Best Practices

1. Keep It Current

Update CLAUDE.md when:

  • Tech stack changes
  • New patterns adopted
  • Standards updated

2. Be Specific

Instead of:

markdown
## Style
Follow good practices

Use:

markdown
## Style
- Use ESLint with project config
- Max line length: 100
- Use single quotes for strings

3. Provide Examples

markdown
## Naming
Components use PascalCase:
- UserProfile.vue ✓
- userProfile.vue ✗

Multiple Projects

For monorepos, use multiple CLAUDE.md files:

monorepo/
├── CLAUDE.md           # Root instructions
├── packages/
│   ├── frontend/
│   │   └── CLAUDE.md   # Frontend specific
│   └── backend/
│       └── CLAUDE.md   # Backend specific

Template

markdown
# [Project Name]

## Overview
[1-2 sentence description]

## Tech Stack
- [Framework/Language]
- [Key libraries]

## Coding Standards
- [Style guide]
- [Linting]

## Architecture
- [Structure]
- [Patterns]

## Development
- [How to add features]
- [Testing approach]

## Notes
- [Important conventions]

See Also

Released under the MIT License.