Hoppa till huvudinnehåll

Uppsättning av agent-hooks

Om din AI-kodassistent stöder livscykel-hooks bör du konfigurera följande för det här repot.

Rekommenderade hooks

HookKommandoSyfte
afterFileEditscripts/agent-hooks/format.shFormatera filer automatiskt efter AI-redigeringar
afterFileEditscripts/agent-hooks/yarn-install.shKör corepack yarn install när package.json ändras
afterFileEditscripts/agent-hooks/react-pattern-review.shNär en diff lägger till useEffect- eller memo-primitiver i about/src/, påminn agenten om att ompröva ändringen med skills för React-granskning
stopscripts/agent-hooks/sync-git-branches.shRensa bort inaktuella refs och ta bort integrerade tillfälliga uppgiftsgrenar
stopscripts/agent-hooks/react-pattern-review.shSkanna om den aktuella diffen efter nya React-effekter och memos i about/src/ innan den avslutande verifieringsgrinden
stopscripts/agent-hooks/verify.shBlockerande grind för riktad byggverifiering, lint, typkontroll och formatkontroll; håll yarn npm audit informativt och kör yarn knip separat som en rådgivande granskning när beroenden eller importer ändras

Varför

  • Konsekvent formatering
  • Låsfilen hålls synkroniserad
  • Nya useEffect- och memo-tillägg i about-sajten får en uttrycklig extra genomgång innan agenten avslutar
  • Bygg-, lint- och typproblem som rör den berörda arbetsytan fångas tidigt, utan att varje uppgift tvingar fram hela det flerspråkiga dokumentationsbygget
  • Säkerhetsinsyn via yarn npm audit
  • Avvikelser i beroenden och importer kan kontrolleras med yarn knip utan att det blir en brusig global stop-hook
  • En gemensam hook-implementation för både Codex och Cursor
  • Tillfälliga uppgiftsgrenar hålls i linje med repots worktree-arbetsflöde

Exempel på hook-skript

Formateringshook

#!/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

Verifieringshook

#!/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

Som standard avslutas scripts/agent-hooks/verify.sh med en nollskild kod när en obligatorisk kontroll misslyckas. Sätt AGENT_VERIFY_MODE=advisory bara när du medvetet behöver signal från ett trasigt träd utan att blockera hooken. Håll yarn knip utanför den blockerande grinden om inte repot uttryckligen bestämmer sig för att låta rådgivande import- och beroendeproblem ge fel.

Livscykel-hooks ersätter inte manuell verifiering i webbläsare. Vid UI-ändringar eller visuella ändringar ska du fortfarande köra playwright-cli-kontroller i chrome, firefox och webkit, plus ett flöde i mobilstorlek i varje motor när responsivitet eller pekbeteende har ändrats.

Yarn install-hook

#!/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

Koppla in hookarna enligt dokumentationen för ditt agentverktyg (hooks.json eller motsvarande).

I det här repot ska .codex/hooks/*.sh och .cursor/hooks/*.sh förbli tunna omslag som delegerar till de delade implementationerna under scripts/agent-hooks/.