Files
Vitor PamplonaandClaude Opus 5.5 d6a5382e58 chore(agents): share rules, skills and push checks between Claude Code and Codex
Codex (run locally) added AGENTS.md, .agents/skills symlinks and a .codex push
hook; this makes both agents read one copy of everything:

- AGENTS.md is now the single source of the project rules. .claude/CLAUDE.md
  imports it with @../AGENTS.md and keeps only Claude-specific notes; the res/
  guide moves to amethyst/src/main/res/AGENTS.md the same way.
- .agents/skills/<name> are symlinks to .claude/skills/<name>, never copies.
- The push checks move to tools/agent-hooks/, run by .claude/settings.json,
  .codex/hooks.json (matched to Bash and the PR tool) and CI. The Codex hook
  now also runs spotless. The shared gate accepts Codex's payloads.
- New agent_config_check.py (pre-push and CI) enforces the layout: symlinks,
  CLAUDE.md imports, AGENTS.md under Codex's 32 KiB doc limit, description
  length, the combined skill-list budget, and that every path a skill cites
  exists.
- Fixes the Compose-escaping pre-push hook, which exited 1 on a hit and so
  never blocked a push (PreToolUse blocks only on exit 2).
- Live docs point at AGENTS.md instead of .claude/CLAUDE.md.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 12:20:49 -04:00

37 lines
1.4 KiB
JSON

{
"description": "Push-boundary checks shared with Claude Code (.claude/settings.json). The scripts live in tools/agent-hooks/ and decide for themselves whether a call is a git push.",
"hooks": {
"PreToolUse": [
{
"matcher": "^Bash$|create_pull_request$",
"hooks": [
{
"type": "command",
"command": "\"$(git rev-parse --show-toplevel)/tools/agent-hooks/pre-push-spotless.sh\"",
"timeout": 180,
"statusMessage": "Checking Kotlin formatting before push"
},
{
"type": "command",
"command": "\"$(git rev-parse --show-toplevel)/tools/agent-hooks/pre-push-orphan-strings.sh\"",
"timeout": 30,
"statusMessage": "Checking orphaned translations before push"
},
{
"type": "command",
"command": "\"$(git rev-parse --show-toplevel)/tools/agent-hooks/pre-push-compose-escaping.sh\"",
"timeout": 30,
"statusMessage": "Checking Compose string escaping before push"
},
{
"type": "command",
"command": "\"$(git rev-parse --show-toplevel)/tools/agent-hooks/pre-push-agent-config.sh\"",
"timeout": 30,
"statusMessage": "Checking Claude/Codex agent config before push"
}
]
}
]
}
}