Přeskočit na hlavní obsah

Nastavení hooků pro agenty

Pokud váš AI asistent pro psaní kódu podporuje hooky životního cyklu, nastavte si pro tento repozitář ty následující.

Doporučené hooky

HookPříkazÚčel
afterFileEditscripts/agent-hooks/format.shAutomatické formátování souborů po úpravách AI
afterFileEditscripts/agent-hooks/yarn-install.shSpustí corepack yarn install, když se změní package.json
afterFileEditscripts/agent-hooks/react-pattern-review.shKdyž diff přidá primitiva useEffect nebo memo v about/src/, připomene agentovi, aby změnu znovu zvážil pomocí dovedností pro kontrolu Reactu
stopscripts/agent-hooks/sync-git-branches.shOřeže zastaralé reference a smaže začleněné dočasné větve úloh
stopscripts/agent-hooks/react-pattern-review.shPřed závěrečnou ověřovací branou znovu prohledá aktuální diff na nové React efekty a memo v about/src/
stopscripts/agent-hooks/verify.shTvrdá brána pro cílené ověření buildu, lint, typovou kontrolu a kontrolu formátu; yarn npm audit zůstává informativní a yarn knip se při změně závislostí nebo importů spouští zvlášť jako poradní audit

Proč

  • Konzistentní formátování
  • Lockfile zůstává synchronizovaný
  • Každé nové přidání useEffect nebo memo na webu about projde před dokončením agenta výslovnou druhou kontrolou
  • Problémy s buildem, lintem a typy relevantní pro daný workspace se odhalí včas, aniž by se u každé úlohy vynucoval plný vícejazyčný build dokumentace
  • Přehled o bezpečnosti díky yarn npm audit
  • Odchylky v závislostech a importech lze kontrolovat pomocí yarn knip, aniž by se z toho stal hlučný globální stop hook
  • Jedna sdílená implementace hooků pro Codex i Cursor
  • Dočasné větve úloh zůstávají v souladu s pracovním postupem worktree v tomto repozitáři

Ukázkové skripty hooků

Formátovací 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

Ověřovací 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

Ve výchozím stavu scripts/agent-hooks/verify.sh skončí nenulovým kódem, když některá povinná kontrola selže. AGENT_VERIFY_MODE=advisory nastavte jen tehdy, když záměrně potřebujete signál z rozbitého stromu, aniž by hook blokoval. yarn knip držte mimo tvrdou bránu, dokud se v repozitáři výslovně nerozhodne, že poradní problémy s importy a závislostmi mají být důvodem k selhání.

Hooky životního cyklu nenahrazují ruční ověření v prohlížeči. U změn v uživatelském rozhraní nebo ve vzhledu i nadále spouštějte kontroly přes playwright-cli v enginech chrome, firefox a webkit a v každém z nich projděte také mobilní viewport, pokud se změnila responzivita nebo chování dotyku.

Hook pro instalaci 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

Zapojení hooků nastavte podle dokumentace svého agentního nástroje (hooks.json a podobně).

V tomto repozitáři mají .codex/hooks/*.sh a .cursor/hooks/*.sh zůstat tenkými obaly, které delegují na sdílené implementace pod scripts/agent-hooks/.