Claude Code konteksti ja muisti: /compact, /clear ja CLAUDE.md käytännössä

Mikä Claude Coden kontekstiin latautuu, milloin käyttää /clear tai /compact, miten CLAUDE.md-hierarkia ja auto memory toimivat ja miten pidät session kevyenä.

VVibekoodaus12 min

Jokainen Claude Coden sessio alkaa tyhjästä kontekstista. Claude ei muista eilistä keskustelua, ellei jokin tuo sitä mukaan. Samalla kaikki, mitä session aikana tapahtuu, kertyy kontekstiin: luetut tiedostot, komentojen tulosteet ja Clauden omat vastaukset.

Näistä kahdesta asiasta syntyy suurin osa arjen ongelmista. Claude unohtaa jotain, minkä sanoit tunti sitten. Tai sessio paisuu niin isoksi, että jokainen kysymys maksaa koko päivän historian verran. Tässä oppaassa käydään läpi, mitä kontekstiin oikeasti latautuu, miten /clear ja /compact eroavat ja miten CLAUDE.md-tiedostot ja auto memory kantavat tietoa sessiosta toiseen.


Mikä on konteksti Claude Codessa?

Konteksti-ikkuna on kaikki, mitä Claude tietää sessiosta juuri nyt. Siihen kuuluvat ohjeesi, tiedostot joita Claude on lukenut, sen omat vastaukset ja myös sisältö, joka ei koskaan näy terminaalissa.

Osa latautuu ennen kuin kirjoitat mitään:

  • CLAUDE.md-tiedostot (tai AGENTS.md, jos repositoriossa ei ole CLAUDE.md:tä)
  • Auto memory, eli Clauden itse kirjoittamat muistiinpanot
  • MCP-työkalujen nimet, eivät koko määrittelyt
  • Skillien kuvaukset, eivät koko sisältö

Työn aikana kontekstiin tulee lisää. Jokainen luettu tiedosto lisää sitä. Polkukohtaiset säännöt latautuvat, kun Claude koskee niihin täsmääviin tiedostoihin. Hookien tulosteet ja komentojen tulosteet päätyvät nekin kontekstiin.

Olennaista on tämä: Claude Code lähettää koko keskustelun jokaisen pyynnön mukana. Jos sessiossa on ehtinyt olla kolme erillistä tehtävää, neljännen tehtävän jokainen kierros lukee myös kolmen edellisen historian. Välimuisti tekee tästä halvempaa, mutta ei ilmaista.

Useat nykyiset mallit tukevat miljoonan tokenin konteksti-ikkunaa, ja saatavuus riippuu tilauksesta. Isossa ikkunassa tila loppuu harvoin, mutta turhasta historiasta maksat silti.


Katso oma tilanteesi: /context ja /usage

Ennen kuin alat optimoida, katso mitä sessiossa oikeasti on. Kaksi komentoa riittää:

/context
/context all
/usage

/context näyttää kontekstin käytön värillisenä ruudukkona luokittain. Se antaa myös ehdotuksia, jos jokin työkalu vie paljon tilaa tai muistitiedostot ovat paisuneet. /context all listaa lisäksi otsikon Memory files alla kaikki CLAUDE.md- ja muistitiedostot, jotka latautuivat. Tämä on nopein tapa tarkistaa, näkeekö Claude ylipäätään ohjeesi.

/usage näyttää session kulut, tilauksen käyttörajat ja aktiivisuuden. Pro-, Max-, Ultra-, Team- ja Enterprise-tilauksissa se erittelee käytön skillien, subagenttien, pluginien ja MCP-palvelimien mukaan. Se myös huomauttaa, jos esimerkiksi pitkä konteksti tai välimuistin ohitukset vievät yli 10 % käytöstäsi. /cost on saman komennon alias.


/clear vai /compact: kumpi ja milloin

Näistä kahdesta komennosta on eniten hyötyä, ja ne sekoitetaan usein keskenään.

/clear: uusi tehtävä, tyhjä pöytä

/clear aloittaa uuden keskustelun tyhjällä kontekstilla. Vanha keskustelu ei katoa, vaan siihen pääsee takaisin komennolla /resume. Komennolla on myös aliakset /reset ja /new.

Käytä sitä aina, kun vaihdat kokonaan eri tehtävään. Kirjautumisbugin jälkeen et tarvitse sen historiaa, kun alat kirjoittaa sähköpostipohjia. Hyvä tapa on antaa vanhalle keskustelulle nimi samalla:

/clear kirjautumisbugi

Nyt löydät sen /resume-listasta nimellä. /clear ei maksa mitään.

Toinen hyvä hetki on epäonnistunut korjaus. Jos olet korjannut samaa asiaa kahdesti ja se on yhä väärin, kolmas korjaus lisää vain keskusteluun kolmannen epäonnistuneen yrityksen. Claude Coden dokumentaatio suosittelee silloin /clear ja yhtä uutta, parempaa promptia, johon kirjoitat sen, mitä opit.

/compact: sama tehtävä, kevyempi historia

/compact tiivistää keskustelun tähänastisen osan ja jatkaa samaa keskustelua. Sille voi antaa ohjeen siitä, mitä tiivistelmän pitää säilyttää:

/compact keskity API-muutoksiin ja testikomentoihin

Ilman ohjetta Claude arvaa itse, mikä on tärkeää. Ohjeen kanssa tiivistelmä pitää sen, minkä sinä valitset. Tee näin erityisesti ennen kuin aloitat pitkän uuden vaiheen samassa tehtävässä.

Yksi asia kannattaa tietää: /compact lukee koko keskustelun tiivistääkseen sen. Pitkässä sessiossa se on siis itsessään iso pyyntö, varsinkin jos välimuisti on jo vanhentunut. Jos et tarvitse historiaa ollenkaan, /clear on halvempi.

Automaattinen tiivistys

Claude Code tiivistää keskustelun automaattisesti, kun konteksti lähestyy rajaa, joten täysi ikkuna ei lopeta sessiota. Rajan voi säätää komennolla /autocompact:

/autocompact 500k

Arvo auto palauttaa mallille viritetyn oletuksen. Asetus tallentuu käyttäjän asetuksiin.

Osittainen tiivistys /rewind-komennolla

/rewind (tai Esc kahdesti tyhjässä kehotteessa) avaa valikon, jossa voit palauttaa koodin, keskustelun tai molemmat aiempaan kohtaan. Samasta valikosta voi valita viestin ja tiivistää vain osan keskustelusta valinnoilla Summarize from here tai Summarize up to here. Se on hyvä silloin, kun keskustelun alku on yhä olennainen mutta loppu on vanhentunut.

Huomaa, että tarkistuspisteet kattavat vain tiedostot, joita Claude muokkasi omilla muokkaustyökaluillaan. Pelkällä Bash-komennolla muutettua tiedostoa ei palauteta. Git on edelleen varsinainen turvaverkko.


Mitä tiivistyksen jälkeen jää

Moni pelkää, että /compact vie ohjeet mukanaan. Osa jää, osa ei:

AsiaTiivistyksen jälkeen
Projektin juuren CLAUDE.md ja säännöt ilman paths-kenttääLuetaan uudelleen levyltä
Auto memoryLuetaan uudelleen levyltä
Plan moden suunnitelmaLuetaan uudelleen levyltä
Alikansioiden CLAUDE.md-tiedostotLatautuvat taas tarpeen mukaan
Säännöt, joissa on paths-kenttäLatautuvat taas tarpeen mukaan
Luetut ja muokatut tiedostotEnintään viisi viimeksi muokattua luetaan uudelleen
Käytettyjen skillien sisältöPalautetaan, enintään 5 000 tokenia skilliä kohden ja 25 000 yhteensä
Keskustelussa annetut ohjeetTiivistyvät muun keskustelun mukana

Viimeinen rivi on se, joka yllättää. Jos sanoit keskustelun alussa "älä koske migraatioihin" etkä kirjoittanut sitä mihinkään tiedostoon, ohje voi kadota tiivistelmässä. Pysyvät säännöt kuuluvat CLAUDE.md-tiedostoon.

Tiivistyksen voi myös ohjata pysyvästi. Lisää projektin juuren CLAUDE.md-tiedostoon oma osio:

# Compact instructions

Tiivistäessäsi säilytä testien tulokset ja koodimuutokset.

CLAUDE.md-hierarkia: mikä tiedosto latautuu mistä

CLAUDE.md on Markdown-tiedosto, jonka Claude lukee session alussa. Niitä voi olla useassa paikassa, ja jokaisella on oma laajuutensa:

TasoSijaintiKenelle
OrganisaatiomacOS: /Library/Application Support/ClaudeCode/CLAUDE.md, Linux ja WSL: /etc/claude-code/CLAUDE.mdKaikille organisaation käyttäjille
Käyttäjä~/.claude/CLAUDE.mdVain sinulle, kaikissa projekteissa
Projekti./CLAUDE.md tai ./.claude/CLAUDE.mdTiimille versionhallinnan kautta
Paikallinen./CLAUDE.local.mdVain sinulle, tässä projektissa

Tiedostot eivät korvaa toisiaan, vaan ne liitetään kontekstiin peräkkäin. Järjestys kulkee laajimmasta tarkimpaan, eli projektin ohje tulee käyttäjän ohjeen jälkeen. Hakemistopuussa sisältö järjestetään juuresta työkansioosi päin, joten käynnistyskansiota lähimpänä olevat ohjeet luetaan viimeisinä. Samassa kansiossa CLAUDE.local.md tulee CLAUDE.md:n perään.

Alikansiot toimivat eri tavalla. Työkansion alla olevat CLAUDE.md-tiedostot eivät lataudu käynnistyksessä, vaan vasta kun Claude lukee, kirjoittaa tai muokkaa jotain tiedostoa siinä alikansiossa. Monorepossa tämä on hyvä asia: frontendin ohjeet eivät vie tilaa, kun teet backendiä.

Muutama käytännön asia:

  • CLAUDE.local.md gitignoreen. Se on henkilökohtaisille asioille, kuten oman testiympäristösi osoitteille.
  • Importit @-syntaksilla. See @README for project overview tuo README:n kontekstiin. Importit auttavat järjestämään, mutta eivät säästä tilaa, koska tuotu tiedosto latautuu yhdessä CLAUDE.md:n kanssa.
  • HTML-kommentit poistetaan. Lohkotason HTML-kommentit poistetaan ennen kuin sisältö menee kontekstiin. Niihin voi jättää ihmisille tarkoitettuja huomioita ilman, että ne maksavat tokeneita.
  • /init tekee pohjan. Se analysoi koodin ja kirjoittaa CLAUDE.md:n, jossa on build- ja testikomennot ja löydetyt käytännöt. Siitä eteenpäin työ on lähinnä rivien poistamista.

Mitä tiedostoon kannattaa kirjoittaa, on käyty läpi tarkemmin oppaassa miten kirjoittaa hyvä CLAUDE.md. Lyhyt versio: kirjoita vain se, mitä Claude ei voi päätellä koodista. Esimerkiksi tällainen tiedosto riittää monelle projektille:

# Komennot
- Asennus: pnpm install
- Yksi testitiedosto: pnpm vitest run polku/tiedostoon.test.ts
- Tyyppitarkistus: pnpm tsc --noEmit

# Käytännöt
- Käytä virheapufunktioita tiedostosta src/lib/errors.ts, älä heitä pelkkiä merkkijonoja
- src/legacy/ on yhä käytössä, mutta älä kopioi sen malleja uuteen koodiin

# Sudenkuopat
- Integraatiotestit tarvitsevat DATABASE_URL-muuttujan, katso .env.example

Kuinka pitkä CLAUDE.md saa olla

Dokumentaation suositus on alle 200 riviä tiedostoa kohden. Jokainen rivi vie vähän Clauden huomiota jokaisessa tehtävässä, liittyi se tehtävään tai ei. Pitkä tiedosto vie enemmän kontekstia ja heikentää noudattamista.

Jos tiedosto on paisunut, /doctor ehdottaa poistettavaksi asioita, jotka Claude voi päätellä koodista itse, kuten kansiorakenteita ja riippuvuuslistoja. /doctor prompt-audit etsii vanhentuneita, keskenään ristiriitaisia ja olemattomiin tiedostoihin viittaavia ohjeita.


Polkukohtaiset säännöt .claude/rules-kansiossa

Kun ohje koskee vain osaa koodista, sitä ei kannata pitää CLAUDE.md:ssä. Tee siitä sääntö kansioon .claude/rules/ ja rajaa se poluilla:

---
paths:
  - "src/api/**/*.ts"
---

# API-säännöt

- Jokaisessa endpointissa on syötteen validointi
- Käytä yhteistä virhevastauksen muotoa

Tämä sääntö latautuu vasta, kun Claude lukee tai muokkaa tiedostoa, joka täsmää polkuun src/api/**/*.ts. Säännöt ilman paths-kenttää latautuvat käynnistyksessä samalla painoarvolla kuin .claude/CLAUDE.md.

Muista tiivistyksen erikoisuus: polkukohtaiset säännöt latautuvat viestihistoriaan, joten tiivistys vie ne muun mukana. Ne palaavat, kun Claude koskee taas täsmäävään tiedostoon. Jos säännön on pakko pysyä aina mukana, poista siitä paths-kenttä tai siirrä se juuren CLAUDE.md:hen.

Monivaiheiset menettelyt, kuten julkaisu tai tietokantamigraatio, sopivat paremmin skilleiksi. Skillin koko sisältö latautuu vasta, kun sitä käytetään. Lisää aiheesta skillien oppaassa.


Auto memory: muistiinpanot, jotka Claude kirjoittaa itse

CLAUDE.md on sinun kirjoittamasi. Auto memory on toinen järjestelmä, jossa Claude kirjoittaa muistiinpanot itse. Se tallentaa neljää lajia asioita:

  • user: roolisi, osaamisesi ja työtapasi
  • feedback: korjaukset, joita annat, ja tavat, jotka hyväksyt
  • project: käynnissä oleva työ, aikataulut ja päätökset, joita ei näe koodista
  • reference: mistä löytyy tietoa projektin ulkopuolelta, esimerkiksi tikettijärjestelmä

Claude ei tallenna asioita, jotka voi päätellä koodista, eikä asioita, jotka CLAUDE.md jo kertoo. Se ei myöskään tallenna jotain joka kerta, vaan vain silloin, kun tiedosta olisi hyötyä myöhemmin.

Muistiinpanot ovat kansiossa ~/.claude/projects/projekti/memory/. Kansio määräytyy git-repositorion mukaan, joten saman repositorion kaikki worktreet ja alikansiot jakavat saman muistin. Rinnakkaisista sessioista lisää worktree-oppaassa. Muisti on konekohtainen eikä siirry koneelta toiselle.

Kansiossa on sisällysluettelona toimiva MEMORY.md ja yksi tiedosto kutakin muistiinpanoa kohden. MEMORY.md:n ensimmäiset 200 riviä tai 25 kt, kumpi tahansa tulee ensin, ladataan jokaisen session alussa. Yksittäiset aihetiedostot Claude lukee vasta, kun tarvitsee niitä.

Jos haluat Clauden muistavan jotain, sano se suoraan: "muista, että tässä projektissa käytetään pnpm:ää". Se menee auto memoryyn. Jos haluat sen CLAUDE.md:hen, pyydä "lisää tämä CLAUDE.md:hen" tai muokkaa tiedostoa itse.

Auto memory on oletuksena päällä paikallisissa sessioissa. Hallinta tapahtuu /memory-komennolla. Se listaa CLAUDE.md-tiedostosi, avaa ne editoriin, näyttää muistikansion ja siinä on kytkin, jolla auto memoryn saa päälle tai pois. Yhdessä projektissa sen saa pois projektin asetuksilla:

{
  "autoMemoryEnabled": false
}

Kaikki muistiinpanot ovat tavallista Markdownia, joten voit lukea, korjata ja poistaa niitä vapaasti.


Kun Claude ei noudata CLAUDE.md:tä

Tämä on yleisin turhautuminen, ja syy on yleensä sama. Claude käsittelee CLAUDE.md:tä kontekstina, ei pakottavana asetuksena. Sisältö toimitetaan käyttäjäviestinä järjestelmäkehotteen jälkeen. Claude yrittää noudattaa sitä, mutta varmaa se ei ole, varsinkaan epämääräisten tai ristiriitaisten ohjeiden kohdalla.

Tarkistuslista:

  1. Latautuiko tiedosto? Aja /context all ja katso otsikon Memory files alla oleva lista. Alikansion CLAUDE.md ei näy siinä, koska se latautuu vasta tarpeen mukaan.
  2. Onko ohje tarkka? "Käytä kahden välilyönnin sisennystä" toimii paremmin kuin "muotoile koodi siististi".
  3. Onko ristiriitoja? Jos kaksi tiedostoa ohjeistaa samaa asiaa eri tavalla, Claude voi valita kumman tahansa.
  4. Onko tiedosto liian pitkä? Ohje voi hukkua joukkoon. IMPORTANT-sanan lisääminen ei yleensä auta.

Jos sääntö ei saa koskaan joustaa, se ei kuulu CLAUDE.md:hen ollenkaan. Esimerkiksi "aja testit ennen jokaista committia" toimii luotettavasti vain hookina, joka ajetaan joka kerta riippumatta siitä, mitä Claude päättää. Hookien teosta kertoo hookien opas.


Näin pidät session kevyenä

Kun perusteet ovat selvät, kevyt sessio on lähinnä tapoja:

  • /clear tehtävien välillä. Nimeä vanha keskustelu samalla, niin löydät sen.
  • Anna subagentin lukea isot asiat. Subagentti tekee työnsä omassa kontekstissaan, ja sinulle palaa vain yhteenveto. Testiajot, lokit ja dokumentaation haku ovat hyviä ehdokkaita.
  • Siirrä erityisohjeet skilleihin. Skill latautuu vasta käytettäessä, CLAUDE.md joka kerta.
  • Kytke käyttämättömät MCP-palvelimet pois. /mcp näyttää palvelimet. Komentorivityökalut kuten gh ovat usein kevyempiä kuin MCP-palvelin. Lisää MCP-oppaassa.
  • Kirjoita tarkka prompt. "Paranna tätä koodia" saa Clauden lukemaan laajasti. "Lisää syötteen validointi kirjautumisfunktioon tiedostossa auth.ts" pitää lukemisen pienenä.
  • Sivukysymys /btw-komennolla. Se vastaa nopeaan kysymykseen lisäämättä mitään keskusteluhistoriaan.
  • Pysäytä ajoissa. Esc keskeyttää Clauden heti, kun se lähtee väärään suuntaan, ja kaikki siihen asti tehty säilyy.

Taukojen vaikutus kannattaa tuntea. Välimuisti kestää tilauksella noin tunnin ja API-avaimella noin viisi minuuttia. Tauon jälkeinen ensimmäinen viesti lukee koko kontekstin uudelleen täydellä hinnalla. Jos lounaan jälkeen aloitat uuden tehtävän, uusi sessio on halvempi kuin vanhan jatkaminen.


Esimerkki: yksi päivä, kolme tehtävää

Näin edellä kuvatut asiat näkyvät tavallisena työpäivänä. Aamulla korjaat lomakkeen validointibugin. Annat tarkan promptin, Claude korjaa ja ajaa testit. Valmis.

/clear lomakebugi

Seuraavaksi iso tehtävä: maksuintegraation refaktorointi. Aloitat plan modessa, hyväksyt suunnitelman ja annat Clauden tehdä. Parin tunnin jälkeen /context näyttää, että historia on kasvanut isoksi ja siinä on paljon vanhoja testitulosteita. Tehtävä on kesken, joten tyhjentäminen olisi väärä valinta:

/compact säilytä refaktoroinnin suunnitelma, jäljellä olevat vaiheet ja testikomennot

Iltapäivällä huomaat, että Claude käyttää yhä vanhaa virheapufunktiota, vaikka korjasit sen aamulla. Korjaus oli pelkästään keskustelussa ja katosi /clear-komennon mukana. Pyydät Claudea lisäämään säännön CLAUDE.md:hen, jolloin se on mukana jokaisessa sessiossa tästä eteenpäin.


Yhteenveto

Konteksti on Clauden työmuisti yhden session ajan, ja CLAUDE.md sekä auto memory ovat sen pitkäkestoinen muisti. /clear vaihtaa tehtävää ilmaiseksi, /compact keventää käynnissä olevaa tehtävää, ja /context kertoo, mistä tila koostuu. Pysyvät ohjeet kirjoitetaan tiedostoon, ja ehdottomat säännöt hookeiksi.

Aloita ajamalla /context all nykyisessä projektissasi. Katso, mitkä tiedostot latautuvat ja kuinka paljon tilaa ne vievät. Siitä näet nopeasti, mitä kannattaa karsia. Lisää arjen niksejä löytyy Claude Coden käytännön vinkeistä ja koko työkalun perusteet Claude Coden oppaasta.

Kaikki Claude Code -oppaat asennuksesta laajennuksiin on aiheittain Claude Code -oppaiden sivulla.

Usein kysytyt kysymykset

Mitä eroa on /clear- ja /compact-komennoilla?

/clear aloittaa uuden keskustelun tyhjällä kontekstilla, ja vanhaan pääsee takaisin komennolla /resume. /compact taas jatkaa samaa keskustelua mutta korvaa historian tiivistelmällä. Valitse /clear, kun vaihdat kokonaan eri tehtävään, ja /compact, kun haluat jatkaa samaa työtä kevyemmällä historialla.

Häviääkö CLAUDE.md, kun keskustelu tiivistetään?

Ei häviä. Projektin juuren CLAUDE.md luetaan tiivistyksen jälkeen uudelleen levyltä. Alikansioiden CLAUDE.md-tiedostot ja polkukohtaiset säännöt latautuvat taas tarpeen mukaan. Pelkästään keskustelussa annetut ohjeet voivat kadota, joten pysyvät säännöt kuuluvat CLAUDE.md-tiedostoon.

Kuinka pitkä CLAUDE.md saa olla?

Claude Coden dokumentaatio suosittelee alle 200 riviä tiedostoa kohden. Pidempi tiedosto vie enemmän kontekstia ja heikentää ohjeiden noudattamista. Vain tiettyä osaa koodista koskevat ohjeet kannattaa siirtää .claude/rules-kansion polkukohtaisiin sääntöihin ja monivaiheiset menettelyt skilleihin.

Mikä on Claude Coden auto memory?

Auto memory on Clauden itse kirjoittamia muistiinpanoja, esimerkiksi korjauksistasi ja mieltymyksistäsi. Ne tallentuvat kansioon ~/.claude/projects/projekti/memory/, ja sisällysluettelon MEMORY.md ensimmäiset 200 riviä tai 25 kt ladataan jokaisen session alussa. Auto memory on oletuksena päällä, ja sen saa pois /memory-komennosta.

Miten näen, mikä vie kontekstia?

Aja session aikana /context. Se näyttää kontekstin käytön värillisenä ruudukkona luokittain ja antaa ehdotuksia. /context all listaa myös ladatut CLAUDE.md- ja muistitiedostot. Kulut ja käyttörajat näet komennolla /usage.

Claude Code konteksti ja muisti: /compact, /clear ja CLAUDE.md käytännössä