How carreromarcos/pr-reviewer works
PR Reviewer is an AWS serverless GitHub bot: webhook intake queues review jobs; a worker fetches and reviews the diff, then safely creates or updates one canonical PR comment. It also runs an experimental multi-agent review in shadow mode, archives reviews for replay, and provides a token-gated browser viewer. Edges follow the README and SOURCE INDEX references; unsampled implementation details are not inferred beyond those references.
Main entry points: worker_handler.py Review worker · fanout.py Shadow multi-agent panel · assemble.py Payload and comment assembly · archive.py Review archive
Components 23
Webhook intake
- Webhook ingress
lambda/ingress_handler.py - Work queue
Review pipeline
- Review worker
lambda/worker_handler.py - Runtime configuration
lambda/common/config.py - Diff retrieval
lambda/common/diff.py - Payload and comment assembly
lambda/common/assemble.py - Publication validation
lambda/common/validate.py - Single-pass model client
lambda/common/llm.py - Review prompts
prompts/system_prompt.md - Shadow multi-agent panel
lambda/common/fanout.py - Finding schema
lambda/common/findings.py - Review stage events
lambda/common/events.py
Fencing and storage
- Review state
- State codec
lambda/common/state.py - Fenced executor
lambda/common/protocol.py - Comment reconciliation
lambda/common/reconcile.py - Canonical marker
lambda/common/marker.py
Archive and replay
- Review archive
lambda/common/archive.py - S3 storage
- Archive viewer handler
lambda/viewer_handler.py - Review browser
static/review.js
Other components
- GitHub
- AWS Parameter Store
Connections 28
- GitHub → Webhook ingress: sends webhook
README.md - Webhook ingress → Work queue: enqueues job
README.md - Work queue → Review worker: dispatches job
README.md - Review worker → Runtime configuration: loads configuration
lambda/worker_handler.py - Review worker → Diff retrieval: fetches diff
lambda/worker_handler.py - Review worker → Single-pass model client: requests review
lambda/worker_handler.py - Review worker → Payload and comment assembly: assembles comment
lambda/worker_handler.py - Payload and comment assembly → Publication validation: validates output
lambda/common/assemble.py - Payload and comment assembly → Diff retrieval: renders diff
lambda/common/assemble.py - Review worker → Shadow multi-agent panel: runs shadow review
lambda/worker_handler.py - Shadow multi-agent panel → Single-pass model client: dispatches model calls
lambda/common/fanout.py - Shadow multi-agent panel → Finding schema: handles findings
lambda/common/fanout.py - Shadow multi-agent panel → Review stage events: emits stage events
lambda/common/fanout.py - Review worker → Review stage events: records review stages
lambda/worker_handler.py - Review worker → Fenced executor: executes fenced publish
lambda/worker_handler.py - Fenced executor → State codec: uses expressions
lambda/common/protocol.py - Review worker → Review state: reads and updates state
README.md - Review worker → Comment reconciliation: converges comments
lambda/worker_handler.py - Comment reconciliation → State codec: uses update expressions
lambda/common/reconcile.py - Review worker → Canonical marker: builds comment marker
lambda/worker_handler.py - Review worker → GitHub: fetches and publishes
README.md - Review worker → Review archive: archives review
README.md - Review archive → S3 storage: stores reviews
README.md - Review archive → Review stage events: uses event schema
lambda/common/archive.py - Archive viewer handler → S3 storage: serves archived review
README.md - Review browser → Archive viewer handler: requests replay
README.md - Review worker → AWS Parameter Store: hydrates credentials
README.md - Single-pass model client → Review prompts: uses review instructions