?

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).
  • gh CLI installed and authenticated.
  • A workspace bind mount containing a shallow clone of each repo you want reviewed.
  • anthropic provider 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

  • gh fails authgh auth status from the daemon's shell context. The container needs ~/.config/gh mounted or a GH_TOKEN env 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.

Related pages

Type to search 150+ pages. Ranking: BM25 with title/description boost.