Claude Code plan mode: näin suunnittelet ennen kuin koodia muutetaan

Plan mode eli suunnittelutila saa Clauden tutkimaan koodin ja tekemään suunnitelman ennen yhtäkään muutosta. Näin laitat sen päälle, hyväksyt suunnitelman ja teet siitä oletuksen.

VVibekoodaus10 min

Tuttu tilanne: pyydät Claude Codelta isoa muutosta, ja se lähtee heti töihin. Kymmenen tiedostoa myöhemmin huomaat, että se ymmärsi tehtävän eri tavalla kuin tarkoitit. Nyt edessä on joko perääntyminen tai pitkä korjauskierros.

Plan mode eli suunnittelutila on tehty juuri tähän. Siinä Claude ensin tutkii koodin ja kirjoittaa suunnitelman, ja vasta sinun hyväksyntäsi jälkeen se alkaa muuttaa tiedostoja. Väärän oletuksen huomaaminen maksaa silloin yhden viestin, ei puolta tuntia.

Tässä oppaassa käydään läpi, miten suunnittelutila laitetaan päälle, mitä siinä tapahtuu, miten suunnitelma hyväksytään ja milloin sitä kannattaa käyttää.


Mikä on Claude Coden plan mode?

Plan mode on yksi Claude Coden oikeustiloista. Oikeustila määrää, mitä Claude saa tehdä kysymättä sinulta. Muita tiloja ovat esimerkiksi Manual eli default, jossa Claude kysyy luvan muokkauksiin ja komentoihin, ja acceptEdits, jossa tiedostomuokkaukset hyväksytään automaattisesti. Kaikista tiloista kerrotaan artikkelissa Claude Code oikeudet ja asetukset.

Alla tilat rinnakkain sen mukaan, mitä Claude saa tehdä kysymättä. Taulukko on koottu Clauden dokumentaation tilasivulta:

TilaMitä menee läpi kysymättäMihin se sopii
Manual (default)Vain lukeminenKun haluat hyväksyä jokaisen toimenpiteen itse
acceptEditsLukeminen, tiedostomuokkaukset ja tavalliset tiedostokomennotKun katsot muutokset jälkikäteen
planLukeminen, ja auto moden ollessa käytettävissä luokittelijan hyväksymät komennotKoodipohjan tutkiminen ennen muutoksia
autoKaikki, taustalla tehtävin turvatarkistuksinPitkät tehtävät, vähemmän lupakyselyjä

Suunnittelutilassa Claude:

  • lukee tiedostoja
  • ajaa komentoja, joilla se tutkii projektia
  • kirjoittaa suunnitelman siitä, mitä aikoo muuttaa

Lähdekoodiin se ei koske. Dokumentaation mukaan muokkaukset pysyvät estettyinä, kunnes hyväksyt suunnitelman. Ainoa poikkeus on interaktiivinen terminaali-istunto, jossa tila bypassPermissions on käytettävissä.

Mitä komennoille tapahtuu suunnittelun aikana

Claude saa ajaa komentoja myös suunnittelutilassa, ja se, kysytäänkö sinulta lupaa, riippuu istunnosta:

  • Auto mode on käytettävissä: oletuksena erillinen tarkistusmalli eli luokittelija arvioi komennot puolestasi. Hyväksytyt ajetaan, hylätyt estetään. Tätä ohjaa asetus useAutoModeDuringPlan, joka on oletuksena päällä.
  • Auto mode ei ole käytettävissä tai asetus on pois päältä: luvan kysyvät kaikki komennot, jotka eivät ole Claude Coden sisäänrakennetulla listalla pelkästään lukevista komennoista.

Jos haluat nähdä ja hyväksyä jokaisen komennon itse myös suunnittelun aikana, laita käyttäjäasetuksiin tämä:

{
  "useAutoModeDuringPlan": false
}

Näin laitat plan moden päälle

Tapoja on kolme, ja kaikki ovat dokumentaatiossa.

1. Shift+Tab kesken istunnon

Paina Shift+Tab, kunnes tilarivillä lukee ⏸ plan mode on. Näppäin kiertää tilojen läpi järjestyksessä Manual, accept edits ja plan. Jos istunto on auto modessa, ensimmäinen painallus vie Manual-tilaan, ja siitä kierto jatkuu.

Windowsilla näppäin voi olla Alt+M, jos käytössä oleva ajoympäristö ei tue VT-syötettä.

Kun haluat pois suunnittelutilasta hyväksymättä suunnitelmaa, paina Shift+Tab uudelleen.

2. Komento /plan

Aloita viesti komennolla /plan. Sen perään voi kirjoittaa tehtävän, jolloin Claude aloittaa suunnittelun suoraan:

/plan lisää kirjautumisrajapintaan kirjautumisyritysten määrälle rajoitus

Tämä on usein kätevin tapa, koska tehtävä ja tila menevät samalla viestillä. Muista slash-komennoista on oma artikkelinsa: Claude Code slash-komennot.

3. Käynnistys suoraan suunnittelutilassa

claude --permission-mode plan

Sama lippu toimii myös ei-interaktiivisissa ajoissa komennon claude -p kanssa.

VS Code, JetBrains ja työpöytäsovellus

  • VS Code: klikkaa kehotekentän alareunan tilavalitsinta ja valitse Plan.
  • JetBrains: plugin ajaa Claude Codea IDE:n terminaalissa, joten Shift+Tab toimii samoin kuin terminaalissa.
  • Työpöytäsovellus: Code-välilehden tilavalitsin kehotekentän alla. Siellä valittu Plan koskee vain kyseistä istuntoa.
  • Selain: claude.ai/code-istunnoissa Plan löytyy kehotekentän alapuolisesta tilavalikosta.

Eri ympäristöjen eroista kerrotaan tarkemmin artikkelissa Claude Code VS Codessa, JetBrainsissa ja työpöydällä.


Suunnitelman hyväksyminen

Kun suunnitelma on valmis, Claude näyttää sen ja kysyy, miten jatketaan. Vaihtoehdot ovat:

  • Yes, and use auto mode: hyväksyy suunnitelman ja jatkaa auto modessa. Jos auto mode ei ole käytettävissä, kohta on nimeltään Yes, auto-accept edits.
  • Yes, manually approve edits: hyväksyy suunnitelman, mutta jokainen muokkaus tulee sinulle erikseen hyväksyttäväksi.
  • No, keep planning: pysyy suunnittelutilassa, ja kerrot Claudelle, mitä pitää muuttaa.

Hyväksyminen poistuu suunnittelutilasta ja vaihtaa istunnon siihen tilaan, jonka valitsit. Kun haluat suunnitella uudelleen, palaa Shift+Tab:llä tai aloita seuraava viesti komennolla /plan.

Muokkaa suunnitelmaa itse

Painamalla Ctrl+G suunnitelma aukeaa oletustekstieditoriisi, ja voit muokata sitä suoraan ennen kuin Claude jatkaa. Tämä on usein nopeampaa kuin selittää muutosta viestillä: poistat turhan vaiheen, lisäät puuttuvan testin ja tallennat.

Tyhjennä konteksti hyväksymisen yhteydessä

Suunnittelu voi kuluttaa paljon kontekstia, koska Claude lukee tiedostoja. Asetus showClearContextOnPlanAccept lisää hyväksymisvalikkoon ensimmäiseksi kohdan Yes, clear context and …, joka hyväksyy suunnitelman, tyhjentää keskustelun kontekstin ja aloittaa toteutuksen pelkän suunnitelman pohjalta. Kohta näyttää myös, kuinka paljon kontekstia suunnittelu käytti.

{
  "showClearContextOnPlanAccept": true
}

Isoissa tehtävissä tämä kannattaa pitää päällä. Toteutusvaihe alkaa puhtaalta pöydältä, eikä puolen tunnin tutkimushistoria vie tilaa. Kontekstin hallinnasta enemmän artikkelissa Claude Code konteksti ja muisti.

Mihin suunnitelma tallentuu

Claude Code kirjoittaa suunnitelmat tiedostoiksi. Oletuksena ne menevät kansioon ~/.claude/plans. Asetuksella plansDirectory ne saa projektiin, jolloin suunnitelmat voi vaikka commitoida muutoksen rinnalle:

{
  "plansDirectory": "./plans"
}

Polku lasketaan projektin juuresta. Jos polku osoittaa projektin ulkopuolelle, kuten ../plans, Claude Code käyttää oletuskansiota.


Esimerkki: rajoitus kirjautumisrajapintaan

Katsotaan, miltä suunnittelu näyttää tavallisessa tehtävässä. Projekti on kuvitteellinen Next.js-sovellus, jossa on kirjautumisrajapinta ja Postgres-tietokanta. Haluat estää salasanojen arvailun rajoittamalla kirjautumisyritysten määrää.

Kirjoitat:

/plan Lisää kirjautumisrajapintaan rajoitus: enintään viisi epäonnistunutta
yritystä samasta IP-osoitteesta 15 minuutin aikana. Tutki ensin, miten
kirjautuminen on nyt toteutettu ja onko projektissa jo jotain rajoituksia.
Älä lisää uusia riippuvuuksia ilman että kysyt.

Claude lukee nyt kirjautumisreitin, tietokantamallit ja mahdolliset middleware-tiedostot. Lopuksi se esittää suunnitelman. Alla on esimerkki siitä, miltä hyvä suunnitelma tällaiseen tehtävään voisi näyttää. Se ei ole oikean istunnon tuloste, vaan malli siitä, mitä suunnitelmasta kannattaa etsiä:

## Suunnitelma

1. Uusi taulu login_attempts (ip, created_at), migraatio tiedostoon
   db/migrations/
2. Uusi apufunktio lib/rate-limit.ts: laskee yritykset 15 min ikkunasta
3. Kirjautumisreitti: tarkistus ennen salasanan vertailua, vastaus 429
   kun raja ylittyy
4. Onnistunut kirjautuminen ei nollaa laskuria (kysymys sinulle: pitäisikö?)
5. Testit: raja ylittyy, raja ei ylity, eri IP:t eivät vaikuta toisiinsa

Tässä kohdassa työsi on lukea suunnitelma kriittisesti. Kysy itseltäsi:

  • Ymmärsikö Claude tehtävän? Vertaa suunnitelmaa siihen, mitä oikeasti halusit.
  • Koskeeko se oikeisiin tiedostoihin? Jos lista sisältää tiedoston, jota et odottanut, kysy miksi.
  • Puuttuuko jotain? Esimerkissä vanhojen rivien siivous puuttuu kokonaan, joten taulu kasvaisi loputtomiin.
  • Onko avoimia kysymyksiä? Hyvä suunnitelma nostaa ne esiin, kuten kohta 4.

Valitset No, keep planning ja vastaat:

Kohta 4: onnistunut kirjautuminen saa nollata laskurin. Lisää myös
vanhojen rivien poisto, yli vuorokauden vanhat voi poistaa.

Claude päivittää suunnitelman. Kun se näyttää oikealta, hyväksyt. Jos koodipohja on sinulle uusi, valitse Yes, manually approve edits, jolloin näet jokaisen muutoksen erikseen. Jos luotat suunnitelmaan ja haluat tehdä muuta sillä aikaa, valitse automaattinen vaihtoehto ja katso muutokset lopuksi komennolla /diff.


Milloin plan modea kannattaa käyttää?

Suunnittelutila ei ole jokaisen tehtävän työkalu. Se sopii näihin tilanteisiin:

Muutos koskee useaa tiedostoa. Kun muutos leviää reitteihin, tietokantaan ja käyttöliittymään, pieni väärinkäsitys alussa monistuu joka tiedostoon. Suunnitelmasta sen huomaa ennen kuin mitään on tehty.

Koodipohja on vieras. Kun avaat ensimmäistä kertaa jonkun toisen projektin, suunnittelutila on turvallinen tapa antaa Clauden tutustua siihen. Dokumentaatio suosittelee sitä juuri koodipohjan tutkimiseen ennen muutoksia. Voit pyytää pelkkää selitystä, esimerkiksi "kerro, miten tässä projektissa käsitellään maksut", ilman että mitään muuttuu.

Lähestymistapoja on useita. Jos et itse tiedä, kannattaako tehdä A vai B, pyydä suunnitelmaan molemmat vaihtoehdot perusteluineen ja valitse niistä.

Muutos on vaikea perua. Tietokantamigraatiot, julkiset rajapinnat ja kaikki, mikä vaikuttaa tuotantodataan. Näissä haluat nähdä suunnitelman joka tapauksessa.

Milloin sitten ei? Kun korjaat kirjoitusvirheen, vaihdat napin värin tai lisäät yhden lokirivin, suunnitelma on turha välivaihe. Jos pystyt kuvaamaan muutoksen yhdellä lauseella ja tiedät tarkalleen, mihin tiedostoon se tulee, tee se suoraan.


Plan mode oletukseksi

Jos haluat, että projektin istunnot alkavat aina suunnittelutilassa, lisää projektin .claude/settings.json-tiedostoon:

{
  "permissions": {
    "defaultMode": "plan"
  }
}

Terminaalissa aloitettu istunto noudattaa tätä. VS Coden laajennus ei kuitenkaan lue projektin asetuksia aloitustilaa varten. Siellä aseta VS Coden käyttäjäasetuksiin claudeCode.initialPermissionMode arvoksi plan.

Tämä sopii hyvin projekteihin, joissa haluat aina katsoa ensin ja toimia vasta sitten. Vaikkapa tuotantokoodiin, jota muokkaat harvoin.


opusplan: eri malli suunnitteluun ja toteutukseen

Claude Codessa on malliasetus opusplan. Dokumentaation mukaan se käyttää suunnittelutilassa Opus-mallia ja vaihtaa toteutusvaiheessa automaattisesti Sonnetiin. Ajatus on, että raskaampi päättely käytetään suunnitelmaan ja kevyempi malli tekee varsinaisen kirjoitustyön.

/model opusplan

Kannattaako se? Riippuu siitä, miten paljon käytät suunnittelutilaa ja mitä mallien käyttö sinulle maksaa. Hinnoittelusta lisää artikkelissa Claude Code hinta ja hinnoittelu.


Voiko Claude siirtyä suunnittelutilaan itse?

Voi. Claude Coden työkaluihin kuuluu EnterPlanMode, jolla Claude voi siirtyä suunnittelutilaan suunnitellakseen lähestymistavan ennen koodaamista, ja ExitPlanMode, jolla se esittää suunnitelman hyväksyttäväksi. Dokumentaation työkalulistan mukaan suunnittelutilaan siirtyminen ei vaadi lupaa, mutta suunnitelman esittäminen ja tilasta poistuminen vaatii. Hyväksyntä jää siis aina sinulle.


Miksi ei vain pyytää "tee ensin suunnitelma"?

Voit toki kirjoittaa tavalliseen viestiin "tee ensin suunnitelma, älä muuta mitään". Usein se toimiikin. Ero on siinä, kuka pitää lupauksen.

Tavallisessa tilassa pyyntö on ohje, jonka varassa kaikki on. Jos Claude tulkitsee tehtävän toisin tai innostuu, muokkausta ei estä mikään muu kuin lupakysely, ja auto modessa sitäkään ei yleensä tule, koska luokittelija arvioi toimenpiteet puolestasi. Suunnittelutilassa Claude Code itse estää lähdekoodin muokkaukset siihen asti, kunnes hyväksyt suunnitelman. Rajan pitää siis ohjelma eikä pelkkä kehote.

Toinen ero on hyväksymisvaihe. Kun suunnitelma on valmis, Claude näyttää sen valikossa, jossa päätät jatkosta: hyväksytkö, millä oikeustilalla ja tyhjennetäänkö konteksti. Tavallisessa keskustelussa tätä kohtaa ei ole, vaan jatko riippuu siitä, mitä satut kirjoittamaan seuraavaksi.


Kun et vielä tiedä, mitä haluat

Joskus suunnitelmaa on vaikea pyytää, koska et ole itsekään miettinyt asiaa loppuun. Clauden dokumentaation parhaiden käytäntöjen sivu neuvoo silloin pyytämään Claudea haastattelemaan sinua:

Haluan lisätä julkiseen rajapintaan pyyntöjen rajoituksen, mutta en ole
miettinyt sitä loppuun. Haastattele minua, kunnes pystyisit kirjoittamaan
määrittelyn, ja kirjoita se sitten tiedostoon SPEC.md.

Dokumentaation mukaan Claude palaa tällöin monivalintakysymyksillä niistä asioista, joita et ole vielä lyönyt lukkoon: rajoitetaanko käyttäjän vai avaimen mukaan, mitä rajan ylittäville pyynnöille tapahtuu ja mikä jää rajauksen ulkopuolelle. Kun SPEC.md on valmis, dokumentaatio suosittelee aloittamaan uuden istunnon ja rakentamaan sen pohjalta, jolloin työ alkaa puhtaalla kontekstilla ja kirjallisella määritelmällä siitä, milloin työ on valmis.

Tämä sopii suunnittelutilan kanssa hyvin yhteen. Ensin haastattelu ja määrittely, sitten uudessa istunnossa /plan toteuta SPEC.md ja suunnitelman tarkistus.


Tarkista toteutus suunnitelmaa vasten

Hyväksytty suunnitelma ei vielä tarkoita, että toteutus noudattaa sitä. Kun Claude sanoo olevansa valmis, aja ensin /diff ja katso, mitä oikeasti muuttui.

/code-review katselmoi muutokset erillisessä subagentissa, joka ei ole nähnyt keskusteluanne, joten keskustelussa syntynyt päättely ei vaikuta siihen. Jos haluat katselmoinnin nimenomaan suunnitelmaa tai määrittelyä vasten, dokumentaatio neuvoo kirjoittamaan pyynnön itse, suunnilleen näin:

Käytä subagenttia ja katselmoi rajoituksen diff tiedostoa SPEC.md vasten.
Tarkista, että jokainen vaatimus on toteutettu ja listatuille reunatapauksille
on testit. Raportoi oikeellisuuteen vaikuttavat puutteet ja ohita tyyli.

Lopun "ohita tyyli" kannattaa pitää mukana. Dokumentaatio huomauttaa, että ongelmia etsimään pyydetty katselmoija löytää aina jotain, ja jos korjaat jokaisen löydöksen, koodiin kertyy turhia abstraktiokerroksia. Subagenteista kerrotaan lisää artikkelissa Claude Code subagentit.


Tavallisimmat virheet suunnittelutilassa

Nämä eivät ole dokumentaation sääntöjä vaan yleisiä kompastuskiviä.

Suunnitelma hyväksytään lukematta. Jos painat hyväksy heti, kun teksti ilmestyy, sait saman tuloksen kuin ilman suunnittelua, vain hitaammin. Suunnittelun koko arvo on siinä minuutissa, jonka käytät lukemiseen.

Tehtävä on liian iso yhteen suunnitelmaan. Kun suunnitelmassa on kaksikymmentä kohtaa kymmeneen eri osaan sovellusta, sitä on vaikea arvioida. Pilko tehtävä: ensin tietokanta, sitten rajapinta, sitten käyttöliittymä. Jokaiselle oma suunnitelma ja oma hyväksyntä.

Korjaukset annetaan liian ylimalkaisesti. "Tee parempi" ei auta. Kerro, mikä kohta on väärin ja miksi: "kohta 3 rikkoo mobiilisovelluksen, koska se käyttää vanhaa rajapintaa".

Suunnittelutila jää päälle pieniin asioihin. Jos olet asettanut plan moden oletukseksi, muista, että Shift+Tab vie siitä pois. Yhden rivin korjaukseen ei tarvita suunnitelmaa.


Vinkkejä parempiin suunnitelmiin

Muutama asia, jotka tekevät suunnitelmista parempia:

  1. Kerro rajoitteet heti. "Älä lisää riippuvuuksia", "älä muuta tietokantaskeemaa", "säilytä nykyinen API". Rajoitteet kuuluvat ensimmäiseen viestiin, ei kolmanteen korjaukseen.
  2. Pyydä tutkimaan ennen ehdottamista. "Tutki ensin, miten X on nyt tehty" tuottaa suunnitelman, joka sopii olemassa olevaan koodiin.
  3. Pyydä avoimet kysymykset näkyviin. "Jos jokin on epäselvää, kysy ennen kuin teet suunnitelman valmiiksi."
  4. Pyydä testit mukaan suunnitelmaan. Kun testit ovat suunnitelmassa, ne myös tehdään.
  5. Pidä projektin säännöt CLAUDE.md-tiedostossa. Jos joka suunnitelmaan pitää lisätä samat ohjeet, ne kuuluvat sinne. Ohjeet löytyvät oppaasta Miten kirjoittaa hyvä CLAUDE.md.

Jos ajat useaa suunniteltua muutosta rinnakkain, jokainen kannattaa tehdä omassa työpuussaan. Siitä kerrotaan artikkelissa Claude Code ja git worktree.


Mistä aloittaa

Kokeile seuraavassa isommassa tehtävässä näin: kirjoita /plan ja tehtävä, lue suunnitelma rauhassa ja korjaa ainakin yksi kohta ennen hyväksymistä. Huomaat nopeasti, kuinka usein ensimmäinen versio on lähellä mutta ei ihan sitä, mitä tarkoitit.

Laajemmin agenttisesta työskentelystä kerrotaan oppaassa agenttinen koodaus, ja perusteet löytyvät Claude Coden perusoppaasta.

Plan moden rinnalla kannattaa opetella slash-komennot ja kontekstin hallinta. Ne on listattu Claude Code -oppaiden sivulla.

Usein kysytyt kysymykset

Mikä on Claude Coden plan mode?

Plan mode eli suunnittelutila on Claude Coden oikeustila, jossa Claude lukee tiedostoja, tutkii koodia ja kirjoittaa suunnitelman, mutta ei muokkaa lähdekoodia. Muokkaukset pysyvät estettyinä, kunnes hyväksyt suunnitelman.

Miten plan mode laitetaan päälle?

Terminaalissa paina Shift+Tab, kunnes tilarivillä lukee plan mode on. Voit myös aloittaa viestin komennolla /plan tai käynnistää Claude Coden komennolla claude --permission-mode plan. VS Codessa tila valitaan kehotekentän alareunan tilavalitsimesta.

Voiko Claude muokata tiedostoja plan modessa?

Ei lähdekoodia. Claude voi lukea tiedostoja ja ajaa tutkivia komentoja, mutta muokkaukset ovat estettyinä, kunnes hyväksyt suunnitelman. Ainoa dokumentoitu poikkeus on interaktiivinen terminaali-istunto, jossa tila bypassPermissions on käytettävissä.

Milloin plan modea kannattaa käyttää?

Kun muutos koskee useaa tiedostoa, kun koodipohja on sinulle vieras tai kun haluat sopia lähestymistavasta ennen kuin mitään tehdään. Pieniin yhden rivin korjauksiin se on turha välivaihe.

Miten plan mode asetetaan oletukseksi?

Lisää projektin .claude/settings.json-tiedostoon permissions-kohtaan defaultMode-arvoksi plan. VS Coden laajennus ei lue projektin asetuksia aloitustilaa varten, joten siellä aseta käyttäjäasetuksiin claudeCode.initialPermissionMode arvoksi plan.

Claude Code plan mode: näin suunnittelet ennen kuin koodia muutetaan