feat(agents): pr-reviewer role + ready-for-review semantic review loop #70
No reviewers
Labels
No labels
adr
agent:blocked-ci
agent:blocked-human
agent:blocked-resolver
agent:done
agent:in-progress
agent:no-touch
agent:pinged
agent:pr-open
agent:queued
agent:wip
area:board
area:funding
area:infra
area:phy
area:poplink
area:rtl
area:software
area:supply-chain
area:verification
ci-failed
ci-timeout
docs
do-not-merge
human-approved
needs-human-approval
needs-rebase
needs-triage
phase:1
ready-for-review
review:findings
review:pass
risk:tripwire
swarm:quarantined
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Fluid/fluidpop-v1!70
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feat/pr-reviewer-role"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
pr-approveris rule-based (CI status + label triage) and never reads PR diffs. Three recent Chisel skeleton PRs (#63, #64, #65) merged with inconsistentpackagedeclarations — exactly the kind of finding a semantic review catches at PR time instead of retrospectively (filed under #68).This PR adds a fifth swarm role that polls
ready-for-reviewPRs lacking areview:*label, fetches the diff plus any SPEC files touched by the diff, and invokesclaude -pagainst a project-specific system prompt. The review is posted as a PR comment and labelledreview:passorreview:findings.A follow-up PR will gate
pr-approveronreview:passso unreviewed PRs cannot reach auto-merge.What's in this PR
roles/pr-reviewer.sh— long-running poller, one review per cycle (default 120 s) to bound claude usage.roles/prompts/pr-reviewer.md— system prompt: SPDX rules, no AI/Claude attribution, ADR-017 off-limits paths, package consistency (canonical:pop), SPEC interface compliance, fabricated-claim ban, scope discipline. Strict**VERDICT:** PASS|FINDINGSfirst-line contract so the shell driver can detect outcome.units/fluidpop-pr-reviewer.service— Type=simple, Restart=always.install-swarm.sh— adds state dir + starts the new service.review:pass/review:findingsalready created in the repo.Test plan
bash -n roles/pr-reviewer.sh(passes)bash infra/ops/agents/install-swarm.shto wire the unit + start the service.ready-for-reviewPRs (#69 is the natural test target).pr-approveronreview:pass.Notes
infra/ops/agents/**) — manually merged by navigator after CI green.CI green (head
0c364a6d9e), auto-approving0c364a6d9e82926a2aa1CI green (head
82926a2aa1), auto-approving