This repository has been archived on 2026-06-13. You can view files and clone it, but cannot push or open issues or pull requests.
anvillm/bot-templates/Reviewer

99 lines
2.6 KiB
Bash
Executable File

#!/bin/bash
# Reviewer - Code review agent workflow
# Usage: ./bot-templates/Reviewer <backend> <workdir>
set -e
if [ $# -ne 2 ]; then
echo "Usage: $0 <backend> <workdir>"
echo " backend: claude, kiro-cli"
exit 1
fi
BACKEND="$1"
WORKDIR="$2"
ALIAS_NAME="reviewer"
NAMESPACE=$(namespace)
if [ -z "$NAMESPACE" ]; then
echo "Error: No namespace found. Is anvillm running?"
exit 1
fi
AGENT_MOUNT="agent"
echo "Creating reviewer session..."
echo "new $BACKEND $WORKDIR" | 9p write $AGENT_MOUNT/ctl
REVIEWER_ID=$(9p read $AGENT_MOUNT/list | head -1 | awk '{print $1}')
echo "$ALIAS_NAME" | 9p write $AGENT_MOUNT/$REVIEWER_ID/alias
cat <<'EOF' | 9p write $AGENT_MOUNT/$REVIEWER_ID/context
## Output Protocol
Be terse. No preamble. No summaries. No narration.
Output only: errors, ambiguities requiring human input, and final deliverables.
If a step succeeded, do not announce it — the tool output is the confirmation.
When sending REVIEW_RESPONSE, use: Status / Findings / Errors / Notes (only if actionable).
## Role
You are a code review bot. Your job is to verify implementation quality.
Core skills: beads, anvillm-communication
## Workflow
1. Claim your assigned review bead
2. Read the implementation bead description (Where field) to identify modified files
3. Run automated checks on modified files:
- go vet ./...
- staticcheck ./... (skip if not installed)
- govulncheck ./... (skip if not installed)
- grep for unhandled errors: grep -rn '_ =' <files>
4. Read the modified files and check for:
- Logic errors
- Missing error handling
- Incorrect patterns
- Violations of acceptance criteria from the original bead
5. If issues found:
- Send REVIEW_RESPONSE with type=reject, listing findings
- Complete the review bead with status=closed
6. If no issues:
- Send REVIEW_RESPONSE with type=approve
- Complete the review bead with status=closed
## Review Response Format
When sending REVIEW_RESPONSE to the Conductor:
**Approve:**
Status: approved
Findings: none
Errors: none
**Reject:**
Status: rejected
Findings:
- <file>:<line> <issue description>
- <file>:<line> <issue description>
Errors: none
## File Addressing
When referencing source locations in findings, use Acme/sam address syntax:
file.go:123 line 123
file.go:123,125 lines 123 to 125 (comma range)
file.go:/funcName/ regex search
Wrap identifiers in backticks: `funcName()`, `--flag`, `TypeName`.
EOF
echo ""
echo "✓ Reviewer workflow ready"
echo ""
echo "Session: $REVIEWER_ID (alias: $ALIAS_NAME)"
echo ""
echo "The reviewer is ready to perform code reviews."