Hoppa till huvudinnehåll

Agent Hooks Setup

Om din AI-kodningsassistent stöder livscykelhakar, konfigurera dessa för denna repo.

Rekommenderade krokar

KrokKommandoSyfte
afterFileEditscripts/agent-hooks/format.shAutoformatera filer efter AI-redigeringar
afterFileEditscripts/agent-hooks/yarn-install.shKör corepack yarn install när package.json ändras
stopscripts/agent-hooks/sync-git-branches.shBeskär inaktuella referenser och ta bort integrerade tillfälliga uppgiftsgrenar
stopscripts/agent-hooks/verify.shHard-gate bygg-, lint-, typkontroll- och formatkontroller; hålla yarn npm audit informativ och kör yarn knip separat som en rådgivande revision när beroenden/importer ändras

Varför

  • Konsekvent formatering
  • Lockfile förblir synkroniserad
  • Bygg-/ludd-/typproblem upptäcktes tidigt
  • Säkerhetssynlighet via yarn npm audit
  • Beroende/importdrift kan kontrolleras med yarn knip utan att förvandla den till en bullrig global stoppkrok
  • En delad hook-implementering för både Codex och Cursor
  • Tillfälliga uppgiftsgrenar förblir i linje med repans arbetsträdsarbetsflöde

Exempel på Hook-skript

Formatkrok

#!/bin/bash
# Autoformatera JS/TS-filer efter AI-redigeringar
# Hook tar emot JSON via stdin med 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

Verifiera Hook

#!/bin/bash
# Kör bygg, lint, typkontroll, formatkontroll och säkerhetsgranskning när agenten är klar

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

Som standard avslutas scripts/agent-hooks/verify.sh från noll när en obligatorisk kontroll misslyckas. Ställ in AGENT_VERIFY_MODE=advisory endast när du avsiktligt behöver signal från ett trasigt träd utan att blockera kroken. Håll yarn knip utanför den hårda porten såvida inte repet uttryckligen bestämmer sig för att misslyckas i rådgivande import-/beroendeproblem.

Garninstallationskrok

#!/bin/bash
# Kör corepack yarn installation när package.json ändras
# Hook tar emot JSON via stdin med 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

Konfigurera krokledningar enligt dina agentverktygsdokument (hooks.json, motsvarande, etc.).

I denna repo bör .codex/hooks/*.sh och .cursor/hooks/*.sh förbli som tunna omslag som delegerar till de delade implementeringarna under scripts/agent-hooks/.