Skip to content
Claude

Claude Code piirid ja reeglid: kuidas seadistada turvaline vaibkodeerimine

Claude Code piirid ja reeglid: kuidas seadistada turvaline vaibkodeerimine

Claude Code on võimas tööriist — AI-agent, mis loeb ja kirjutab faile, käivitab käske ja haldab terveid projekte. Aga just see võimsus on ka risk: ilma selgete piirideta võib agent kustutada vale kausta, lekitada saladusi või “parandada” koodi, mida poleks tohtinud puutuda. See juhend õpetab, kuidas seada targad piirid enne kui midagi katki läheb.

Põhimõte: usalda, aga piiritle

AI-agendiga töötamine on nagu uue arendaja palkamine: esimesel päeval ei anna sa talle prod-andmebaasi parooli ega õigust otse main-harusse push’ida. Sama loogika kehtib Claude Code’iga:

  • Alusta kitsalt — luba ainult see, mida konkreetne ülesanne vajab
  • Laienda järk-järgult — kui agent on end tõestanud, anna rohkem autonoomiat
  • Pöördumatud tegevused jäävad alati sinu kätte — deploy, kustutamine, makse, e-kirja saatmine

CLAUDE.md — projekti põhiseadus

Iga projekti juurkausta käib fail CLAUDE.md — Claude Code loeb selle automaatselt iga sessiooni alguses. See on sinu võimalus öelda reeglid üks kord, mitte igas vestluses uuesti. Hea CLAUDE.md sisaldab:

# Projekt: minu-epood

## Stack
- Next.js 15 + TypeScript, Tailwind 4
- PostgreSQL (Supabase), Stripe maksed

## Käsud
- Arendus: npm run dev
- Testid: npm test (KÄIVITA enne iga commit'i!)
- Build: npm run build

## REEGLID — mida EI TOHI teha
- ÄRA puutu kausta /legacy — vana kood, töötab, ära refaktoori
- ÄRA muuda .env faile ega logi nende sisu
- ÄRA tee git push'i — ainult mina push'in
- ÄRA muuda Stripe'i webhook-loogikat ilma küsimata
- ÄRA installi uusi sõltuvusi ilma põhjenduseta

## Stiil
- Eestikeelsed kommentaarid kasutajaliidese tekstides
- Komponentides named export, mitte default
- Iga uus funktsioon vajab testi

Mida konkreetsem, seda parem. “Kirjuta puhast koodi” ei ütle midagi; “iga API-endpoint vajab zod-valideerimist” on reegel, mida agent suudab järgida ja mida sa saad kontrollida.

Õiguste süsteem: luba- ja keelunimekirjad

Claude Code küsib vaikimisi luba iga potentsiaalselt ohtliku tegevuse jaoks. Faili .claude/settings.json kaudu saad selle peenhäälestada:

{
  "permissions": {
    "allow": [
      "Bash(npm test)",
      "Bash(npm run dev)",
      "Bash(npm run build)",
      "Bash(git status)",
      "Bash(git diff *)",
      "Bash(git log *)"
    ],
    "deny": [
      "Bash(rm -rf *)",
      "Bash(git push *)",
      "Bash(git reset --hard *)",
      "Read(.env*)",
      "Read(**/secrets/**)",
      "Bash(curl * | bash)",
      "Bash(npm publish *)"
    ]
  }
}

Loogika on lihtne:

  • allow — turvalised rutiinsed käsud, mille kohta agent ei pea enam küsima (testid, lugemiskäsud, dev-server)
  • deny — “lapselukk”: käsud, mida agent ei tohi kunagi käivitada, isegi kui sa kogemata loa annad. Kustutamine, force-push, saladuste lugemine, võõra koodi torust käivitamine

Deny-nimekiri on olulisem kui allow. Koosta see enne esimest sessiooni, mitte pärast esimest õnnetust.

Millal lubada autonoomset töörežiimi?

Claude Code’il on režiimid, kus ta töötab ilma iga sammu kinnitamata (auto-accept, headless-režiim). Mugav — aga millal see on ohutu? Kontrollnimekiri:

  • Git on puhas ja commit’itud — iga muudatuse saab tagasi keerata
  • Testid on olemas — agent saab ise kontrollida, kas ta midagi lõhkus
  • Töö on isoleeritud — eraldi haru või worktree, mitte main
  • Deny-nimekiri on paigas — pöördumatud käsud blokeeritud
  • Ülesanne on selgelt piiritletud — “paranda see konkreetne bug”, mitte “tee parem”

Kui kasvõi üks punkt ei kehti — jää küsimise-režiimi. Rusikareegel: autonoomia sobib siis, kui halvim võimalik tulemus on “kustutan haru ja alustan otsast”. Kui halvim tulemus on katkine prod või lekkinud andmed, peab inimene jääma ahelasse.

Suur TZ enne vaibkodeerimist

Suurim viga, mida algajad teevad: “tee mulle e-pood” ja imestamine, miks tulemus on vale. Agent ei loe mõtteid — ta täidab teksti. Enne suurema töö alustamist kirjuta lähteülesanne (TZ), mis vastab neljale küsimusele:

1. Mida ehitame? (eesmärk)

EESMÄRK: broneerimisvorm juuksurisalongile.
Klient valib teenuse, juuksuri, aja → saab kinnituse e-mailiga.
EI ehita: makseid, kasutajakontosid, adminpaneeli (tuleb hiljem).

“EI ehita” osa on sama tähtis kui eesmärk — see hoiab agendi fookuses ega lase tal ehitada asju, mida sa ei palunud.

2. Millega ehitame? (tehnilised raamid)

STACK: Astro 5 + Tailwind, vorm saadab PHP-endpointi.
Andmebaas: olemasolev MySQL tabel `bookings` (ÄRA muuda struktuuri).
E-mail: olemasolev saatja api/send-mail.php kaudu (kasuta seda, ära tee uut).

3. Mis on keelatud? (piirid)

PIIRID:
- Ära muuda olemasolevaid lehti peale /broneeri
- Ära lisa JavaScripti raamistikke (React jms) — ainult vanilla
- Ära muuda andmebaasi skeemi
- Kõik kasutajale nähtavad tekstid eesti keeles

4. Kuidas tean, et valmis? (vastuvõtukriteeriumid)

VALMIS, KUI:
- Vorm valideerib: nimi, telefon, e-mail kohustuslikud
- Topeltbroneering samale ajale on võimatu
- Kinnitus jõuab kliendi e-mailile 30 sekundiga
- Töötab mobiilis (375px) ja desktopis
- npm run build läheb läbi ilma vigadeta

Selline TZ võtab 15 minutit kirjutada ja säästab tunde edasi-tagasi parandamist. Boonus: sama TZ sobib hiljem testimise kontrollnimekirjaks.

Koodi ülekontrollimine — alati

Vaibkodeerimise kuldreegel: sina vastutad, mitte AI. Kontrolli alati:

  • git diff enne commit’i — loe läbi, mida agent tegelikult muutis. Kui muudatus on suurem kui ootasid — küsi, miks
  • Käivita testid ise — ära usu sõnu “testid läbisid”, vaata oma silmaga
  • Otsi varjatud muudatusi — kas agent puutus faile, mida poleks tohtinud? git status näitab
  • Turvatundlik kood vajab inimese pilku — autentimine, maksed, isikuandmed, SQL-päringud. Siin ära kiirusta kunagi
  • Küsi agendilt endalt ülevaadet — “selgita, mida sa muutsid ja miks” on hea harjumus iga suurema sammu järel

Tüüpilised vead, mida vältida

  • Kõik-lubatud režiim esimesest päevast — autonoomia tuleb teenida, mitte kinkida
  • CLAUDE.md puudub — iga sessioon alustab nullist ja kordab samu vigu
  • Hiigelülesanne ühe promptiga — “ehita kogu rakendus” asemel tükelda: skeem → vorm → valideerimine → e-mail. Iga tükk eraldi kontrollitav
  • Saladused repos — .env failid, API-võtmed ja paroolid hoia git’ist väljas, siis ei saa agent neid kogemata lekitada
  • Prod-andmebaas arenduses — agent + päris andmed = õnnetus ootab juhust. Alati koopia või test-baas
  • Diff’i pimesi kinnitamine — kui sa ei viitsi lugeda, mida agent muutis, avastad probleemid prod’is

Kokkuvõte: kolm kihti kaitset

  1. CLAUDE.md — reeglid, mida agent loeb iga kord (mida teha, mida mitte)
  2. Õiguste seaded — tehniline lapselukk, mis blokeerib ohtlikud käsud ka siis, kui reeglid ununevad
  3. Sinu silmad — git diff, testid ja terve mõistus enne iga commit’i

Nende kolme kihiga muutub vaibkodeerimine hasartmängust inseneritööks: agent teeb kiire töö, sina hoiad kontrolli.

Vaata ka: Claude Code paigaldamine Windowsis · Claude’i arvustus · Mis on AI agent?