Μετάβαση στο κύριο περιεχόμενο

Ρύθμιση hooks πράκτορα

Αν ο βοηθός προγραμματισμού AI που χρησιμοποιείτε υποστηρίζει hooks κύκλου ζωής, ρυθμίστε τα παρακάτω για αυτό το αποθετήριο.

Προτεινόμενα hooks

HookΕντολήΣκοπός
afterFileEditscripts/agent-hooks/format.shΑυτόματη μορφοποίηση αρχείων μετά από επεξεργασίες AI
afterFileEditscripts/agent-hooks/yarn-install.shΕκτέλεση του corepack yarn install όταν αλλάζει το package.json
afterFileEditscripts/agent-hooks/react-pattern-review.shΌταν ένα diff προσθέτει primitives useEffect/memo στο about/src/, υπενθυμίζει στον πράκτορα να τα επανεξετάσει με τα skills ελέγχου React
stopscripts/agent-hooks/sync-git-branches.shΚαθαρισμός ξεπερασμένων refs και διαγραφή ενσωματωμένων προσωρινών κλάδων εργασίας
stopscripts/agent-hooks/react-pattern-review.shΕπανασάρωση του τρέχοντος diff για νέα effects/memos της React στο about/src/ πριν από την τελική πύλη επαλήθευσης
stopscripts/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/.