You already have the repository, local diff, and review tools in Claude Code. The hard part is noticing a new review request and rebuilding enough context to give it a thoughtful first pass.
Glean catches the GitHub event and delivers it to Claude Code Monitor, where your local review skill examines the current diff and prepares initial findings. You review and refine the draft, then decide whether anything should be submitted.
Scaffold the receiver and plugin
npx -y tiged@2.12.8 --mode=git gleanwork/glean-cookbook/recipes/github-pr-review-monitor github-pr-review-monitorVerify the local path with no credentials
Use recorded events to verify the signed receiver, event queue, and draft-review flow.
cd github-pr-review-monitor && npm run verify:fixtureSign in to Glean
Sign in to discover your tenant and save GLEAN_SERVER_URL and GLEAN_API_TOKEN to the ignored .env file. An exported GLEAN_API_TOKEN takes precedence over .env, and the scripts warn you when it does.
cd github-pr-review-monitor && npm run login -- --email "<work-email>"Run the receiver
Keep the receiver running. It listens on loopback, verifies signatures, and queues each webhook ID once.
cd github-pr-review-monitor && npm startExpose the receiver over HTTPS
Append /webhook to the printed origin and set GLEAN_WEBHOOK_URL before registering. Keep the tunnel running: triggers outlive the tunnel, so closing it sends future deliveries to a dead address.
cd github-pr-review-monitor && cloudflared tunnel --url http://127.0.0.1:8787Register the review triggers
Set GLEAN_TRIGGER_DATASOURCE and the preset IDs to register. If you leave the IDs empty, setup lists the presets available in your deployment and stops instead of guessing. Provide required preset inputs through GLEAN_TRIGGER_INPUT_<FIELD>.
cd github-pr-review-monitor && npm run setupAttach Claude Code Monitor
Validate the plugin, then restart Claude Code from the repository under review so Monitor starts with the session. If Monitor is unavailable, run npm run stream to receive the same events in the terminal.
cd github-pr-review-monitor && claude plugin validate . --strictVerify a real review request
Request a review from yourself on a real pull request. Confirm one queued event and one draft grounded in the current diff. The workflow makes no GitHub write until you ask for one.
The monitor may prepare a local draft. A GitHub pending review requires explicit approval, and submission always remains manual.
Review the current local repository and GitHub head SHA; never infer findings from the thin trigger payload alone.
Monitor requires a supported interactive Claude Code session. Where Monitor is unavailable, use the terminal stream to receive the same events.
- Teach the local review skill your repository's conventions and test commands, so the first pass reflects how your team already reviews.
- Notify the reviewer when the first-pass draft is ready, so the queue is not something anyone has to remember to check.
- Add inline pending-review comments once the body-only flow is reliable — line-level findings are what a reviewer acts on first.
Request a review from the configured user on a pull request in the open local repository
One signed event reaches the receiver and Claude drafts a review of the current diff. Nothing is posted to GitHub.
Explicitly approve copying the finished local draft to GitHub
The helper creates or updates a pending review and reports that it remains unsubmitted.
Run the authenticate step on this page. It discovers your tenant from work email and signs you in with OAuth, using the shipped login command. If OAuth is unavailable, create a scoped Glean-issued token in Token Management (TRIGGERS).