Overview
Paste a PR link in a Slack channel; rousseau checks out the branch (read-only worktree), reads the diff, cross-references the codebase, and posts a structured review with a "must-fix / nice-to-have / questions" breakdown. Cross-session recall means it remembers your team's review patterns.
Prerequisites
- Slack app with Socket Mode (as in on-call Slack triage).
ghCLI installed and authenticated.- A workspace bind mount containing a shallow clone of each repo you want reviewed.
anthropicprovider recommended for tool-use fidelity.
Config
provider: anthropic
anthropic:
model: claude-sonnet-4-6
max_tokens: 8192
agent:
system_prompt: |
You are a careful code reviewer. Given a PR URL:
1. Use `gh pr diff` (read-only) to fetch the diff.
2. `grep`/`read` the touched files for context.
3. Produce a review with three sections: must-fix, nice-to-have, questions.
4. Cite file paths + line numbers.
max_iterations: 40
skills_dir: ~/.config/rousseau/skills
approver:
mode: pattern
default: deny
allow:
- {tool: read, match: ".*"}
- {tool: grep, match: ".*"}
- {tool: bash, match: "^(gh pr (view|diff|checks) [0-9]+|git (log|diff|show|status|blame)|rg )"}
deny:
- {tool: bash, match: "gh pr (merge|close|edit)"}
- {tool: write, match: ".*"}
- {tool: edit, match: ".*"}
slack:
app_token: "xapp-…"
bot_token: "xoxb-…"
bot_user_id: "U0ABC1234"
Notice write and edit are both denied — the reviewer bot should never modify code.
Launch
rousseau slack
Post to Slack: @rousseau review https://github.com/org/repo/pull/123.
Skills
~/.config/rousseau/skills/review.md:
---
name: review
trigger: review, pr, pull request
---
Structure every review as:
**Must fix**
- <bullet>
**Nice to have**
- <bullet>
**Questions**
- <bullet>
Cite as `path/to/file.go:42–58`. Prefer specific over general. If tests are missing, say so.
Verification
- Post a small PR URL; a structured review lands within 60 s.
- Ask about a previous review in the same channel; the bot recalls the pattern (cross-session recall via FTS5).
Failure modes
ghfails auth —gh auth statusfrom the daemon's shell context. The container needs~/.config/ghmounted or aGH_TOKENenv var.- Reviews too generic — increase
max_tokens, and lower the prompt to enumerate specific concerns (nil checks, error propagation, tests). - Rate-limited by GitHub — throttle by using a personal PAT with a longer TTL, or install a GitHub App with higher limits.