mirror of
https://github.com/bitsocialnet/5chan.git
synced 2026-08-03 07:41:04 +02:00
docs: split AGENTS.md into core policy and on-demand playbooks
2602.12670 and 2602.11988 findings favoring curated, minimal, modular guidance over comprehensive always-on context
This commit is contained in:
@@ -0,0 +1,75 @@
|
||||
# Agent Hooks Setup
|
||||
|
||||
If your AI coding assistant supports lifecycle hooks, configure these for this repo.
|
||||
|
||||
## Recommended Hooks
|
||||
|
||||
| Hook | Command | Purpose |
|
||||
|---|---|---|
|
||||
| `afterFileEdit` | `npx oxfmt <file>` | Auto-format files after AI edits |
|
||||
| `afterFileEdit` | `.cursor/hooks/yarn-install.sh` | Run `yarn install` when `package.json` changes |
|
||||
| `stop` | `yarn build && yarn lint && yarn type-check && (yarn audit || true)` | Build, lint, type-check, and security audit at end |
|
||||
|
||||
## Why
|
||||
|
||||
- Consistent formatting
|
||||
- Lockfile stays in sync
|
||||
- Build/lint/type issues caught early
|
||||
- Security visibility via `yarn audit`
|
||||
|
||||
## Example Hook Scripts
|
||||
|
||||
### Format Hook
|
||||
|
||||
```bash
|
||||
#!/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|*.ts|*.tsx|*.mjs) npx oxfmt "$file_path" 2>/dev/null ;;
|
||||
esac
|
||||
exit 0
|
||||
```
|
||||
|
||||
### Verify Hook
|
||||
|
||||
```bash
|
||||
#!/bin/bash
|
||||
# Run build, lint, type-check, and security audit when agent finishes
|
||||
|
||||
cat > /dev/null # consume stdin
|
||||
echo "=== yarn build ===" && yarn build
|
||||
echo "=== yarn lint ===" && yarn lint
|
||||
echo "=== yarn type-check ===" && yarn type-check
|
||||
echo "=== yarn audit ===" && (yarn audit || true) # informational
|
||||
exit 0
|
||||
```
|
||||
|
||||
### Yarn Install Hook
|
||||
|
||||
```bash
|
||||
#!/bin/bash
|
||||
# Run 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 yarn install to update yarn.lock..."
|
||||
yarn install
|
||||
fi
|
||||
|
||||
exit 0
|
||||
```
|
||||
|
||||
Configure hook wiring according to your agent tool docs (`hooks.json`, equivalent, etc.).
|
||||
Reference in New Issue
Block a user