Skip to content

Commit 7b11193

Browse files
chore: add PR auto-review hook and update CLAUDE.md
- Add PostToolUse hook that triggers Claude review after gh pr create - Add review-pr.sh script with checklist based on CLAUDE.md rules - Add PR review section to CLAUDE.md with review guidelines Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent 4023767 commit 7b11193

3 files changed

Lines changed: 56 additions & 0 deletions

File tree

.claude/scripts/review-pr.sh

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
#!/bin/bash
2+
# Hook: auto-review PR after gh pr create
3+
# Reads tool output from stdin (JSON), extracts PR URL and triggers Claude review
4+
5+
INPUT=$(cat)
6+
7+
COMMAND=$(echo "$INPUT" | python3 -c "import json,sys; d=json.load(sys.stdin); print(d.get('tool_input',{}).get('command',''))" 2>/dev/null)
8+
9+
# Only trigger on gh pr create
10+
if ! echo "$COMMAND" | grep -q "gh pr create"; then
11+
exit 0
12+
fi
13+
14+
OUTPUT=$(echo "$INPUT" | python3 -c "import json,sys; d=json.load(sys.stdin); print(d.get('tool_response',''))" 2>/dev/null)
15+
16+
PR_URL=$(echo "$OUTPUT" | grep -oE 'https://github\.com/[^ ]+/pull/[0-9]+')
17+
PR_NUMBER=$(echo "$PR_URL" | grep -oE '[0-9]+$')
18+
19+
if [ -z "$PR_NUMBER" ]; then
20+
exit 0
21+
fi
22+
23+
echo "Iniciando review do PR #$PR_NUMBER..."
24+
25+
claude -p "Review PR #$PR_NUMBER do repositório CraftD seguindo as regras de review do CLAUDE.md. Use 'gh pr view $PR_NUMBER --json files,body,title' para ver o PR, leia os arquivos modificados, e poste um review com 'gh pr review $PR_NUMBER --comment -b \"<seu comentário>\"' cobrindo: regras arquiteturais, completude (builder registrado, onAction coberto), testes e docs." \
26+
--allowedTools "Bash(gh pr view:*),Bash(gh pr review:*),Bash(gh api:*),Read,Glob,Grep" \
27+
2>/dev/null &
28+
29+
echo "Review do PR #$PR_NUMBER iniciado em background."

.claude/settings.json

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
{
2+
"hooks": {
3+
"PostToolUse": [
4+
{
5+
"matcher": "Bash",
6+
"hooks": [
7+
{
8+
"type": "command",
9+
"command": ".claude/scripts/review-pr.sh"
10+
}
11+
]
12+
}
13+
]
14+
}
15+
}

CLAUDE.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,18 @@ commonMain/
160160
- **`pr.yml`** — build e testes, dispara em todo PR
161161
- **`generate-tests.yml`** — gera testes unitários automaticamente via Claude API para `.kt` modificados, abre PR separado. Só roda após `pr.yml` passar. Não roda em PRs de bots.
162162

163+
## Review de PRs
164+
165+
Quando um PR for publicado ou quando solicitado, revisar usando `gh pr review` verificando:
166+
167+
1. **Regras arquiteturais** — componente implementa `CraftDBuilder` (ou equivalente), sem dependência entre módulos de plataforma, `commonMain` sem deps de plataforma
168+
2. **Completude** — builder registrado no `CraftDBuilderManager`, `onAction`/fallback coberto, `ImageProperties` (ou equivalente) no `craftd-core`
169+
3. **Testes** — testes unitários presentes e com nomenclatura correta em backtick
170+
4. **Docs**`docs/how-to-use/` atualizado para a plataforma afetada
171+
5. **Padrão de código** — prefixo `CraftD`, `Modifier` exposto, sem valores hardcoded de cor/tipografia
172+
173+
Usar `gh pr review <número> --comment -b "<comentário>"` para comentários gerais e `gh api` para comentários em linha específicos.
174+
163175
---
164176

165177
## O que não fazer

0 commit comments

Comments
 (0)