← Πίσω στο Blog

Claude Code: έξι μαθήματα στησίματος που πληρώσαμε ακριβά

claude-code ai εργαλεία-ανάπτυξης παραγωγικότητα agents αυτοματισμός
Claude Code: έξι μαθήματα στησίματος που πληρώσαμε ακριβά

Το Claude Code σχεδόν πάντα θα φέρει την εργασία εις πέρας. Το μοντέλο σπάνια είναι το στενό σημείο. Αυτό που αλλάζει είναι το κόστος: πόσο θα κρατήσει, πόση χειροκίνητη καθοδήγηση θα χρειαστεί και πόσες φορές θα πρέπει να το σταματήσετε και να το επαναφέρετε στην πορεία. Αυτό το κόστος είναι το κομμάτι που πραγματικά ελέγχετε εσείς — και το μεγαλύτερο μέρος του εξαρτάται από το περιβάλλον μέσα στο οποίο βάζετε το μοντέλο, όχι από το prompt που γράφετε.

Το μάθαμε με τον δύσκολο τρόπο. Οι αποτυχίες μας σπάνια οφείλονταν στις δυνατότητες του μοντέλου· οφείλονταν στο πώς είχαμε στήσει τα πράγματα γύρω του. Αυτό το στήσιμο μπερδεύει, γιατί σχεδόν ό,τι ρυθμίζετε είναι ένα αρχείο Markdown, και με μια πρώτη ματιά μοιάζουν όλα ίδια. Δεν είναι. Αυτά είναι τα λάθη που κάναμε, και το τι κάνει στ’ αλήθεια το καθένα από αυτά τα αρχεία.

Όλα είναι ένα αρχείο Markdown, αλλά δεν είναι εναλλάξιμα

CLAUDE.md, rules, skills, agents, commands. Απλό κείμενο, ίδια κατάληξη, όλα μέσα σε έναν φάκελο .claude/, όλα μοιάζουν εναλλάξιμα. Δεν είναι. Καθένα ενεργεί σε διαφορετική στιγμή και λογοδοτεί σε διαφορετικό αφέντη:

ΑρχείοΤι είναι στ’ αλήθειαΠότε ενεργεί
CLAUDE.mdΜόνιμη μνήμη, φορτώνεται στην εκκίνησηΚάθε συνεδρία, από πάνω ως κάτω
.claude/rules/*.mdΟριοθετημένες οδηγίες, ενεργοποίηση βάσει διαδρομήςΌταν μια εργασία αγγίζει αρχεία που ταιριάζουν
.claude/skills/Γνώση κατ’ απαίτησηΌταν ταιριάζει ένας κανόνας ενεργοποίησης
.claude/agents/*.mdΟριοθετημένοι βοηθοί, με δικό τους contextΌταν αναθέτετε εσείς ή το Claude
.claude/commands/Αποθηκευμένα promptsΌταν πληκτρολογείτε /name
settings.json (hooks, sandbox, δικαιώματα)Ντετερμινιστικοί κανόνες του harnessΜηχανικά, σε κάθε σχετικό συμβάν

Το νοητικό μοντέλο που το ξεκαθάρισε για εμάς: αυτά χωρίζονται σε δύο οικογένειες. Κάποια είναι πιθανοτικά — το μοντέλο τα διαβάζει και αποφασίζει τι θα κάνει (CLAUDE.md, rules, skills). Άλλα είναι ντετερμινιστικά — το harness τα επιβάλλει, είτε αρέσει στο μοντέλο είτε όχι (hooks, το sandbox, τα δικαιώματα). Σταματήστε να τα αντιμετωπίζετε ως έναν ενιαίο σωρό οδηγιών, και η περισσότερη σύγχυση εξατμίζεται.

1. Τα rules είναι το πιο υποτιμημένο αρχείο στο repo σας

Η παρανόηση που κρατήσαμε περισσότερο: ότι τα rules είναι απλώς ένα CLAUDE.md κομμένο σε περισσότερα αρχεία. Δεν είναι, και η διαφορά είναι ακριβώς το ζητούμενο.

Ένα rule φέρει ένα glob paths στο frontmatter του. Παραμένει σε νάρκη μέχρι μια εργασία να αγγίξει ένα αρχείο που ταιριάζει — τότε φορτώνει. Είναι γνώση που φτάνει ακριβώς τη στιγμή που είναι σχετική και μένει στην άκρη όλη την υπόλοιπη ώρα:

---
description: Συμβάσεις για σελίδες Astro
paths:
  - "src/pages/**"
---
Κάθε σελίδα εισάγει το BaseLayout και ορίζει έναν τοπικοποιημένο <title>.
Όταν επεξεργάζεστε σελίδες, χρησιμοποιήστε το skill `i18n-keys` για να κρατάτε το ui.ts συγχρονισμένο.

Αυτή η τελευταία γραμμή είναι ο πραγματικός μοχλός. Τα skills ενεργοποιούνται κατά την κρίση του μοντέλου, που στην πράξη σημαίνει μερικές φορές — ποτέ ακριβώς όταν θα το περιμένατε. Το να ονοματίσετε ένα skill μέσα σε ένα rule δεμένο σε διαδρομή μετατρέπει το “μερικές φορές” σε “κάθε φορά που δουλεύω σε αυτή τη γωνιά της βάσης κώδικα”. Ένα rule δεν μπορεί να εκτελέσει ένα skill για εσάς, αλλά μέσα σε ένα στενό εύρος διαδρομών η οδηγία προς το Claude να χρησιμοποιήσει ένα είναι αρκετά αξιόπιστη ώστε η διάκριση να πάψει να μετράει.

«Γιατί όχι ένα CLAUDE.md στον υποφάκελο;» — επειδή ένα ένθετο CLAUDE.md καλύπτει μόνο το δικό του δέντρο καταλόγων και μπορεί να βρίσκεται σε ένα μόνο σημείο. Ένα rule για **/*.ts ή **/*.spec.ts ενεργοποιείται όπου κι αν βρίσκονται αυτά τα αρχεία, και τα αρχεία δοκιμών βρίσκονται παντού. Τα rules ακολουθούν τον τύπο του αρχείου· τα ένθετα αρχεία μνήμης ακολουθούν τον φάκελο. Όταν το ζήτημα είναι διάσπαρτο σε όλο το repo, μόνο το rule προλαβαίνει.

2. Κρατήστε πατημένο το space και μιλήστε του

Στο τερματικό του Claude Code, κρατήστε πατημένο το πλήκτρο space για να υπαγορεύσετε. Κρατήστε το, μιλήστε, αφήστε το — μεταγράφεται κατευθείαν μέσα στο prompt. Είναι φτιαγμένο για τα μακροσκελή prompts όπου στήνετε το πλαίσιο και το στενό σημείο είναι η ταχύτητα πληκτρολόγησής σας, όχι το μοντέλο.

Οι ειλικρινείς περιορισμοί: λειτουργεί μόνο στο CLI (όχι στο VS Code, όχι μέσω SSH, όχι σε απομακρυσμένα containers) και χρειάζεται λογαριασμό Claude.ai, καθώς ο ήχος μεταγράφεται στην πλευρά του διακομιστή. Μέσα σε αυτά τα όρια, αλλάζει τον τρόπο που ενημερώνετε το μοντέλο — παύετε να γράφετε λακωνικά prompts επειδή η πληκτρολόγηση κουράζει, και αρχίζετε στ’ αλήθεια να εξηγείτε τι θέλετε.

3. Οι agents αφορούν τα όρια, όχι την ιπποδύναμη

Αν ένα μοντέλο με ένα εκατομμύριο tokens context μπορεί να κάνει τα πάντα, γρήγορα, τότε γιατί να μοιράζεις τη δουλειά σε agents; Επειδή το μέγεθος του context δεν είναι αυτό που σας προσφέρουν οι agents. Σας προσφέρουν τρία πράγματα που το μέγεθος του context δεν μπορεί:

  • Απομόνωση. Κάθε agent τρέχει σε ένα φρέσκο, ξεχωριστό παράθυρο context. Μια θορυβώδης παράπλευρη αποστολή — να διαβάσεις σαράντα αρχεία για να απαντήσεις σε μία ερώτηση — συμβαίνει εκεί πέρα και δεν μολύνει ποτέ το κύριο νήμα σας. Το συμπέρασμα επιστρέφει· η ακαταστασία όχι.
  • Όρια. Ένα στενά οριοθετημένο σύνολο εργαλείων και μια εντολή μίας δουλειάς. Ένας agent που μπορεί μόνο να διαβάζει και να ελέγχει, ποτέ να γράφει. Ένας agent του οποίου η μόνη δουλειά είναι να αναθέτει σε άλλους agents. Η στενότητα είναι το χαρακτηριστικό: ένας εργάτης που δεν μπορεί να βγει εκτός σεναρίου, δεν βγαίνει.
  • Κόστος. Καθορίστε το μοντέλο ανά agent. Opus για την απόφαση αρχιτεκτονικής, όπου η κρίση αξίζει τον κόπο· Haiku για τον φθηνό μηχανικό βρόχο — κλικ μέσα σε έναν browser, αναζήτηση σε logs, μεταφορά δεδομένων. Πληρώνετε τιμές senior μόνο εκεί όπου χρειάζεται σκέψη senior.

Ο κανόνας που σπάσαμε πρώτο: οι agents δεν πρέπει να κουβαλούν γνώση. Η γνώση του πεδίου ανήκει στα rules και τα skills, που κάθε agent μπορεί να φορτώσει κατ’ απαίτηση. Ένας agent που μαζεύει τη δική του γνώση είναι ένα ακόμη πράγμα που πρέπει να συντηρείτε, σε ένα ακόμη σημείο, που ξεσυγχρονίζεται από όλα τα υπόλοιπα. Κρατήστε τους agents λιτούς — αρμοδιότητες και όρια, τίποτε άλλο. Μπορείτε επίσης να εξαπολύσετε αρκετούς ταυτόχρονα για πραγματικά ανεξάρτητη δουλειά, αλλά αντιμετωπίστε το ως μπόνους, όχι ως τον λόγο ύπαρξής τους.

4. Το sandbox είναι λειτουργία, όχι γκρίνια

Παλιά νιώθαμε τον πόνο να εγκρίνουμε άλλη μία εντολή bash, μόνο και μόνο για να πάει το Claude να βρει κάποιο στοιχείο. Είναι εκνευριστικό. Έχει όμως τον λόγο του: το Claude δεν μπορεί τεχνικά να εγγυηθεί ότι μια εντολή είναι ασφαλής πριν τρέξει.

Φανταστείτε μια μακρόχρονη εργασία που κάνει web-fetch μια σελίδα, και αυτή η σελίδα κρύβει ένα prompt injection. Η εργασία αλλάζει σιωπηλά κατεύθυνση — αρχίζει να εκτελεί εντολές που ποτέ δεν ζητήσατε και να αναφέρει τα δεδομένα σας σε έναν απομακρυσμένο διακομιστή, χωρίς να ζητήσει επιβεβαίωση. Η ερώτηση έγκρισης είναι η ραφή όπου θα πιάνατε ακριβώς αυτό.

Η λύση δεν είναι να απενεργοποιήσετε το δίχτυ ασφαλείας. Είναι το sandboxed περιβάλλον εκτέλεσης. Ένα sandbox επιβάλλει allowlists για το σύστημα αρχείων και το δίκτυο σε επίπεδο λειτουργικού συστήματος. Μέσα σε αυτό, το Claude τρέχει ελεύθερα· το όριο κρατάει, ακόμη κι αν το μοντέλο πειστεί να κάνει κάτι ανόητο. Πρέπει να ρυθμιστεί μία φορά, συνειδητά — κάθε host δικτύου και κάθε εγγράψιμη διαδρομή είναι κάτι που παραχωρείτε επίτηδες. Θέλετε να δουλεύει το npm install; Βάλτε το registry στην allowlist:

{
  "sandbox": {
    "enabled": true,
    "network": { "allowedDomains": ["registry.npmjs.org", "github.com"] },
    "filesystem": { "allowWrite": ["./", "/tmp"], "denyRead": ["~/.ssh", "~/.aws"] }
  }
}

Τώρα οι βαρετές, ασφαλείς εντολές τρέχουν χωρίς καμία ερώτηση, οι επικίνδυνες εξακολουθούν να μην μπορούν να φτάσουν στα μυστικά σας, και το Claude δουλεύει αυτόνομα χωρίς να σταματά να σας ενοχλεί κάθε τριάντα δευτερόλεπτα.

5. Αφήστε το να σχεδιάσει πριν γράψει μία γραμμή

Ο φαινομενικά γρηγορότερος δρόμος είναι να εκτοξεύσετε ένα prompt και να αφήσετε το μοντέλο να τρέξει. Είναι και το σημείο όπου γεννιούνται οι περισσότερες διακοπές που μισείτε — το μοντέλο δεσμεύεται νωρίς στη λάθος προσέγγιση, και περνάτε την επόμενη ώρα τραβώντας το πίσω.

Η λειτουργία σχεδίασης (plan mode) είναι το αντίδοτο. Μπείτε σε αυτή με Shift+Tab, και το Claude εξερευνά μόνο για ανάγνωση και σας παραδίδει ένα σχέδιο πριν επεξεργαστεί οτιδήποτε. Διορθώνετε την προσέγγιση όσο η διόρθωση είναι ακόμη φθηνή — στο χαρτί, σε τριάντα δευτερόλεπτα — αντί αφού έχουν γραφτεί διακόσιες γραμμές με λάθος τρόπο. Αυτός είναι ο μεγαλύτερος μοχλός στο κόστος του «πόση χειροκίνητη καθοδήγηση» από την αρχή αυτού του άρθρου. Πέντε λεπτά να διαβάσετε ένα σχέδιο γλιτώνουν τακτικά ένα ολόκληρο απόγευμα διορθώσεων.

6. Ένα μεγαλύτερο παράθυρο context δεν είναι ένα εξυπνότερο

Ένα εκατομμύριο tokens context σας δελεάζουν να τα ρίξετε όλα μέσα και να αφήσετε το μοντέλο να τα ξεδιαλύνει. Αντισταθείτε. Το context είναι λόγος σήματος προς θόρυβο, όχι ένας μεγαλύτερος κουβάς. Όσο περισσότερο άσχετο ιστορικό κουβαλάτε, τόσο λιγότερο αξιόπιστα ακολουθεί το Claude τις οδηγίες που πράγματι μετράνε — ένα παραφορτωμένο παράθυρο δεν το κάνει να σκέφτεται πιο σκληρά, κάνει τους κανόνες σας πιο εύκολο να χαθούν μέσα στον θόρυβο.

Γι’ αυτό το κρατάμε καθαρό. /clear ανάμεσα σε άσχετες εργασίες — μην κάνετε debug σε CSS στο ίδιο νήμα που μόλις χρησιμοποιήσατε για να σχεδιάσετε ένα σχήμα βάσης δεδομένων. Αφήστε την αυτόματη συμπύκνωση να κουρέψει τις παλιές εξόδους εργαλείων, ή τρέξτε /compact με μια εστίαση όταν θέλετε να ελέγξετε τι θα επιβιώσει. Και κρατήστε το CLAUDE.md λιτό, κάτω από περίπου διακόσιες γραμμές — σπρώξτε ό,τι αφορά συγκεκριμένες διαδρομές κάτω στα rules (δείτε το μάθημα 1), ώστε να φορτώνει μόνο όταν είναι σχετικό. Το αντιδιαισθητικό κομμάτι, μόλις το ζήσετε: ένα μικρότερο, καθαρότερο context συνήθως δίνει καλύτερη απάντηση από ένα τεράστιο.

Ο κοινός άξονας

Κανένα από αυτά τα έξι μαθήματα δεν αφορά έξυπνο prompting. Αφορούν το περιβάλλον: πού επιτρέπεται να πάει το μοντέλο, ποια γνώση φορτώνει πότε, και πόσο θόρυβο πρέπει να διασχίσει για να φτάσει στην ουσία. Το Claude Code θα φέρει την εργασία εις πέρας — το στήσιμο καθορίζει πόσο θα σας κοστίσει να φτάσετε εκεί.

Έτσι δουλεύουμε και στα έργα των πελατών: agentic παράδοση καθοδηγούμενη από προδιαγραφές και δεμένη με έλεγχο. Αν σας φαίνεται χρήσιμο, επικοινωνήστε μαζί μας.