--- id: 231645fd-79ae-4e01-b251-7720c16dc998 type: decision title: "PR Reviewer: Scheduled Poller over Webhook Trigger" tags: [pr-reviewer, claude-scheduled, architecture, decision, gitea, automation] importance: 0.7 confidence: 0.8 created: "2026-03-02T21:57:09.031172+00:00" updated: "2026-03-02T21:57:57.700704+00:00" relations: - target: b27fb831-811e-4103-b5f1-3c36d5b1ad20 type: RELATED_TO direction: outgoing strength: 0.89 edge_id: 44a626e5-f886-4b18-b52e-c2b32a37b2db - target: b27fb831 type: RELATED_TO direction: outgoing strength: 0.87 edge_id: db2ba3c1-d4b7-4085-990b-17fb3b4a49e6 - target: 4321bee8-105e-4fc8-b645-964d1234c966 type: RELATED_TO direction: outgoing strength: 0.86 edge_id: f41d9186-c094-40fe-98e7-c6ed8b20e682 - target: b79abde1-7076-4448-aa8e-65a08f354d93 type: REQUIRES direction: incoming strength: 0.9 edge_id: 6e79537d-bc7c-4822-975b-de2b72a85649 - target: cb5e8814 type: BUILDS_ON direction: outgoing strength: 0.8 edge_id: d9322a8c-bb94-4af7-bf17-0fc0948d6d44 - target: 3e0406ac-549d-4509-b918-ad638c883448 type: RELATED_TO direction: incoming strength: 0.7 edge_id: 3ae9d41b-27ed-488e-8941-7bfa2fb07df9 --- # PR Reviewer: Scheduled Poller over Webhook Trigger ## Decision Chose **Approach C (scheduled poller)** over webhook-triggered (Approach A) or CI-only API call (Approach B). ## Rationale - Reuses 90% of existing claude-scheduled infrastructure - systemd timers - Runner patterns - MCP configs - Discord notifications - No webhook receiver server needed - Full local environment available with MCP servers and cognitive memory ## Trade-offs - **Latency**: Up to 30 minutes before review appears after PR is opened - Acceptable for current workflow — we are not a high-velocity team ## Alternatives Considered - **Approach A (webhook)**: Would require a persistent webhook receiver service. More complex infra. - **Approach B (CI API call)**: Would run inside Gitea Actions, losing access to local MCP servers and cognitive memory.