Keskitaso15 min

Claude Code: CLAUDE.md-tiedosto

CLAUDE.md on Claude Coden vastine Cursorin .cursorrules-tiedostolle. Se on markdown-tiedosto projektin juuressa, joka kertoo Claudelle miten projektisi toimii, mitä konventioita noudatat ja mitä erityistä pitää huomioida. Hyvin kirjoitettu CLAUDE.md parantaa Clauden vastauksia merkittävästi.

Mikä on CLAUDE.md?

CLAUDE.md on projektikohtainen ohjetiedosto, jonka Claude Code lukee automaattisesti. Se toimii "muistilappuna" Claudelle - kertoo projektisi säännöt, rakenteet ja käytännöt.

Miksi CLAUDE.md on tärkeä: - Claude noudattaa projektikohtaisia konventioita - Vähemmän vääriä oletuksia ja korjattavaa - Tiimin yhtenäiset käytännöt - Toimii projektin dokumentaationa kehittäjille

Missä CLAUDE.md voi olla: - Projektin juuressa (luetaan aina) - Alikansioissa (luetaan kun työskennellään kyseisessä kansiossa) - Kotihakemistossa ~/.claude/CLAUDE.md (globaalit ohjeet)

Claude yhdistää kaikki löytämänsä CLAUDE.md-tiedostot, joten voit käyttää eri tasoisia ohjeita.

Vinkki: Voit luoda ensimmäisen CLAUDE.md-tiedoston automaattisesti komennolla `/init` interaktiivisessa sessiossa.

CLAUDE.md:n rakenne

Hyvä CLAUDE.md sisältää seuraavat osiot:

1. Projektin kuvaus - Mikä projekti on ja mitä se tekee 2. Teknologiat - Stack, versiot ja tärkeät kirjastot 3. Tärkeät komennot - Build, test, lint, deploy 4. Koodauskonventiot - Nimeämiskäytännöt, tyylit, rakenne 5. Projektirakenne - Kansioiden tarkoitukset 6. Säännöt ja kiellot - Mitä välttää

Pidä CLAUDE.md tiiviinä ja käytännöllisenä. Jokaisen rivin tulisi auttaa Claudea tekemään parempia päätöksiä.

# Projektin nimi

Lyhyt kuvaus: Mitä projekti tekee ja kenelle.

## Teknologiat

- Next.js 15 (App Router)
- TypeScript strict mode
- Tailwind CSS v4
- PostgreSQL + Drizzle ORM

## Tärkeät komennot

- `npm run dev` - kehityspalvelin
- `npm run build` - tuotantobuildi
- `npm test` - testit (Vitest)
- `npm run lint` - ESLint tarkistus

## Koodaustyyli

- Funktionaaliset komponentit, ei class-komponentteja
- Named exports, ei default exports
- camelCase muuttujille, PascalCase komponenteille
- Tiedostot: kebab-case.ts

## Projektirakenne

- src/app/ - Next.js sivut (App Router)
- src/components/ - React-komponentit
- src/lib/ - Apufunktiot ja konfiguraatiot
- src/db/ - Tietokantaskeemat ja migraatiot

## Säännöt

- Älä käytä any-tyyppiä
- Älä jätä console.log-lauseita
- Käytä server components oletuksena
- Kirjoita testit uusille funktioille

Edistyneet ohjeet

CLAUDE.md voi sisältää hyvinkin tarkkoja ohjeita. Mitä tarkempia ohjeet ovat, sitä paremmin Claude toimii:

Virheenkäsittely: Kerro miten projektissasi käsitellään virheitä.

API-käytännöt: Kerro API-endpointtien rakenne ja vastausmuoto.

Testauskäytännöt: Kerro mitä testikehystä käytetään ja miten testit rakennetaan.

## Virheenkäsittely

Käytä Result-patternia API-funktioissa:
```typescript
type Result<T> = { success: true; data: T } | { success: false; error: string }
```

## API-endpointit

Route handlerit kansiossa src/app/api/:
- Validoi input Zod-schemalla
- Palauta NextResponse.json()
- Käsittele virheet try-catchilla
- Logita virheet mutta älä paljasta niitä clientille

## Testaus

- Vitest yksikkötesteille
- Testit samaan kansioon: component.test.ts
- Käytä describe/it/expect syntaksia
- Mockkaa ulkoiset palvelut
Vinkki: Lisää CLAUDE.md versionhallintaan. Se on osa projektia ja hyödyttää koko tiimiä.

CLAUDE.md eri tasoilla

Voit käyttää CLAUDE.md-tiedostoja useilla tasoilla:

1. Globaali (~/.claude/CLAUDE.md): Ohjeet jotka pätevät kaikkiin projekteihin. Esimerkiksi henkilökohtaiset mieltymykset.

2. Projektin juuri (CLAUDE.md): Projektikohtaiset ohjeet. Tämä on tärkein taso.

3. Alikansiot (src/components/CLAUDE.md): Kansiokohtaiset ohjeet. Hyödyllinen suurissa projekteissa.

Claude yhdistää kaikki löytämänsä ohjeet automaattisesti. Tarkemmat ohjeet (alikansio) ylikirjoittavat yleisemmät (juuri).

# Esimerkki: Globaali ~/.claude/CLAUDE.md
# Kieli ja tyyli
- Vastaa suomeksi kun kysyn suomeksi
- Käytä TypeScript-tyyppejä aina
- Suosi funktionaalista ohjelmointia

# Esimerkki: Projektin juuri CLAUDE.md
# MyApp
SaaS-sovellus Next.js:llä.
[projektikohtaiset ohjeet...]

# Esimerkki: src/components/CLAUDE.md
# Komponentit
- Käytä Radix UI -primitiivejä
- Jokainen komponentti omaan kansioon
- index.ts re-exporttaa komponentin

Käytännön vinkit

Aloita pienestä: Ei tarvitse kirjoittaa täydellistä CLAUDE.md:tä kerralla. Aloita perusasioista ja lisää ohjeita sitä mukaa kun huomaat toistuvia ongelmia.

Päivitä säännöllisesti: Kun stack tai käytännöt muuttuvat, päivitä CLAUDE.md. Vanhentuneet ohjeet ovat pahempia kuin ei ohjeita ollenkaan.

Testaa toimivuus: Kokeile onko Claude Code noudattanut ohjeitasi. Jos ei, muotoile ohjeet selkeämmin.

Vältä näitä: - Liian pitkät tiedostot (yli 500 sanaa) - vie turhaan kontekstitilaa - Ristiriitaiset ohjeet - Claude ei tiedä kumpaa noudattaa - Itsestäänselvyydet - "kirjoita hyvää koodia" ei auta - Ohjeet joita Claude ei voi noudattaa - "testaa selaimessa"

Yhteenveto

  • CLAUDE.md on projektikohtainen ohjetiedosto joka parantaa Clauden vastauksia
  • Sisällytä teknologiat, komennot, konventiot ja säännöt
  • /init luo pohjan automaattisesti
  • Pidä tiiviinä ja päivitä kun projekti kehittyy

Usein kysytyt kysymykset

Lukeeko Claude Code CLAUDE.md:n automaattisesti?

Kyllä, Claude Code lukee CLAUDE.md-tiedoston automaattisesti kun se löytyy projektin juuresta, alikansiosta tai kotihakemistosta. Ei tarvitse konfiguroida erikseen.

Mikä ero on CLAUDE.md:llä ja .cursorrules-tiedostolla?

Molemmat palvelevat samaa tarkoitusta eri työkaluille. CLAUDE.md on Claude Coden ohjetiedosto, .cursorrules on Cursorin vastaava. Voit pitää molemmat projektissa rinnakkain.

Kuinka pitkä CLAUDE.md saa olla?

Teknistä rajaa ei ole, mutta suositus on alle 500 sanaa. Liian pitkä tiedosto vie kontekstitilaa ja voi hämmentää Claudea. Keskity olennaisimpiin ohjeisiin.

Tutustu kaikkiin Claude Code -oppaisiin

Löydä lisää vinkkejä ja oppaita Claude Coden tehokäyttöön.

Kaikki Claude Code -oppaat