Ρύθμιση hooks πράκτορα
Αν ο βοηθός προγραμματισμού AI που χρησιμοποιείτε υποστηρίζει hooks κύκλου ζωής, ρυθμίστε τα παρακάτω για αυτό το αποθετήριο.
Προτεινόμενα hooks
| Hook | Εντολή | Σκοπός |
|---|---|---|
afterFileEdit | scripts/agent-hooks/format.sh | Αυτόματη μορφοποίηση αρχείων μετά από επεξεργασίες AI |
afterFileEdit | scripts/agent-hooks/yarn-install.sh | Εκτέλεση του corepack yarn install όταν αλλάζει το package.json |
afterFileEdit | scripts/agent-hooks/react-pattern-review.sh | Όταν ένα diff προσθέτει primitives useEffect/memo στο about/src/, υπενθυμίζει στον πράκτορα να τα επανεξετάσει με τα skills ελέγχου React |
stop | scripts/agent-hooks/sync-git-branches.sh | Καθαρισμός ξεπερασμένων refs και διαγραφή ενσωματωμένων προσωρινών κλάδων εργασίας |
stop | scripts/agent-hooks/react-pattern-review.sh | Επανασάρωση του τρέχοντος diff για νέα effects/memos της React στο about/src/ πριν από την τελική πύλη επαλήθευσης |
stop | scripts/agent-hooks/verify.sh | Αυστηρή πύλη για στοχευμένη επαλήθευση build, lint, typecheck και ελέγχους μορφοποίησης· κρατήστε το yarn npm audit ενημερωτικό και εκτελέστε το yarn knip ξεχωριστά ως συμβουλευτικό έλεγχο όταν αλλάζουν εξαρτήσεις ή εισαγωγές |
Γιατί
- Συνεπής μορφοποίηση
- Το lockfile παραμένει συγχρονισμένο
- Κάθε νέα προσθήκη
useEffect/memo στο site about περνά από έναν ρητό δεύτερο έλεγχο πριν ολοκληρώσει ο πράκτορας - Τα ζητήματα build, lint και τύπων που αφορούν το συγκεκριμένο workspace εντοπίζονται νωρίς, χωρίς να επιβάλλεται το πλήρες πολυγλωσσικό build της τεκμηρίωσης σε κάθε εργασία
- Ορατότητα σε θέματα ασφάλειας μέσω
yarn npm audit - Η απόκλιση εξαρτήσεων και εισαγωγών μπορεί να ελεγχθεί με
yarn knipχωρίς να μετατραπεί σε θορυβώδες καθολικό hook τερματισμού - Μία κοινή υλοποίηση hook τόσο για το Codex όσο και για το Cursor
- Οι προσωρινοί κλάδοι εργασίας παραμένουν ευθυγραμμισμένοι με τη ροή εργασίας worktree του αποθετηρίου
Παραδείγματα scripts για hooks
Hook μορφοποίησης
#!/bin/bash
# Auto-format JS/TS files after AI edits
# Hook receives JSON via stdin with file_path
input=$(cat)
file_path=$(echo "$input" | grep -o '"file_path"[[:space:]]*:[[:space:]]*"[^"]*"' | sed 's/.*:.*"\([^"]*\)"/\1/')
case "$file_path" in
*.js|*.jsx|*.ts|*.tsx|*.mjs|*.cjs|*.json|*.css) corepack yarn exec oxfmt "$file_path" 2>/dev/null ;;
esac
exit 0
Hook επαλήθευσης
#!/bin/bash
# Run targeted build verification, lint, typecheck, format check, and security audit when agent finishes
cat > /dev/null # consume stdin
status=0
corepack yarn build:verify || status=1
corepack yarn lint || status=1
corepack yarn typecheck || status=1
corepack yarn format:check || status=1
echo "=== yarn npm audit ===" && (corepack yarn npm audit || true) # informational
exit $status
Από προεπιλογή, το scripts/agent-hooks/verify.sh τερματίζει με μη μηδενικό κωδικό όταν αποτύχει ένας απαιτούμενος έλεγχος. Ορίστε AGENT_VERIFY_MODE=advisory μόνο όταν χρειάζεστε σκόπιμα ενδείξεις από ένα χαλασμένο δέντρο χωρίς να μπλοκάρετε το hook. Κρατήστε το yarn knip εκτός της αυστηρής πύλης, εκτός αν το αποθετήριο αποφασίσει ρητά να αποτυγχάνει σε συμβουλευτικά ζητήματα εισαγωγών και εξαρτήσεων.
Τα hooks κύκλου ζωής δεν αντικαθιστούν τη χειροκίνητη επαλήθευση στο πρόγραμμα περιήγησης. Για αλλαγές στο UI ή στην οπτική συμπεριφορά, εκτελείτε πάντα ελέγχους με playwright-cli σε chrome, firefox και webkit, καθώς και μια ροή σε mobile viewport σε κάθε μηχανή όταν έχει αλλάξει η απόκριση ή η συμπεριφορά αφής.
Hook εγκατάστασης Yarn
#!/bin/bash
# Run corepack yarn install when package.json is changed
# Hook receives JSON via stdin with file_path
input=$(cat)
file_path=$(echo "$input" | grep -o '"file_path"[[:space:]]*:[[:space:]]*"[^"]*"' | sed 's/.*:.*"\([^"]*\)"/\1/')
if [ -z "$file_path" ]; then
exit 0
fi
if [ "$file_path" = "package.json" ]; then
cd "$(dirname "$0")/../.." || exit 0
echo "package.json changed - running corepack yarn install to update yarn.lock..."
corepack yarn install
fi
exit 0
Ρυθμίστε τη σύνδεση των hooks σύμφωνα με την τεκμηρίωση του εργαλείου πράκτορα που χρησιμοποιείτε (hooks.json, αντίστοιχο αρχείο κ.λπ.).
Σε αυτό το αποθετήριο, τα .codex/hooks/*.sh και .cursor/hooks/*.sh πρέπει να παραμείνουν λεπτά wrappers που αναθέτουν τη δουλειά στις κοινές υλοποιήσεις κάτω από το scripts/agent-hooks/.