Saltar al contingut principal

Configuració de ganxos d'agent

Si el vostre assistent de codificació d'IA admet ganxos de cicle de vida, configureu-los per a aquest dipòsit.

Ganxos recomanats

GanxoComandamentFinalitat
afterFileEditscripts/agent-hooks/format.shFormateu automàticament els fitxers després de les edicions d'AI
afterFileEditscripts/agent-hooks/yarn-install.shExecuteu corepack yarn install quan canviï package.json
stopscripts/agent-hooks/sync-git-branches.shElimina les refs obsoletes i elimina les branques de tasques temporals integrades
stopscripts/agent-hooks/verify.shComprovacions de construcció, pelusa, tipus i format de la porta dura; mantenir yarn npm audit informatiu i executar yarn knip per separat com a auditoria d'assessorament quan canvien les dependències/importacions

Per què

  • Format coherent
  • El fitxer de bloqueig es manté sincronitzat
  • S'han detectat problemes de construcció/pelusa/tip d'hora
  • Visibilitat de seguretat mitjançant yarn npm audit
  • La deriva de dependència/importació es pot comprovar amb yarn knip sense convertir-la en un ganxo d'aturada global sorollós
  • Una implementació de ganxo compartida tant per a Codex com per a Cursor
  • Les branques de tasques temporals es mantenen alineades amb el flux de treball de l'arbre de treball del repo

Exemple de scripts de ganxo

Format Ganxo

#!/bin/bash
# Formateu automàticament els fitxers JS/TS després de les edicions d'AI
# Hook rep JSON mitjançant stdin amb 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

Verifiqueu el ganxo

#!/bin/bash
# Executeu la compilació, la pelusa, la comprovació de tipus, la comprovació de format i l'auditoria de seguretat quan acabi l'agent

cat > /dev/null # consume stdin
status=0
corepack yarn build || 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

Per defecte, scripts/agent-hooks/verify.sh surt diferent de zero quan falla una comprovació necessària. Configureu AGENT_VERIFY_MODE=advisory només quan necessiteu intencionadament el senyal d'un arbre trencat sense bloquejar el ganxo. Manteniu yarn knip fora de la porta dura tret que el repo decideixi explícitament fallar en problemes d'importació/dependència d'assessorament.

Ganxo d'instal·lació de fil

#!/bin/bash
# Executeu corepack yarn install quan es canviï package.json
# Hook rep JSON mitjançant stdin amb 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

Configureu el cablejat del ganxo segons els documents de l'eina de l'agent (hooks.json, equivalent, etc.).

En aquest repo, .codex/hooks/*.sh i .cursor/hooks/*.sh haurien de romandre com a embolcalls prims que deleguen a les implementacions compartides sota scripts/agent-hooks/.