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/scripts/DevReview

136 lines
4.5 KiB
Bash
Executable File

#!/bin/bash
# DevReview - Developer-Reviewer Workflow
# Usage: ./scripts/DevReview <backend> <workdir>
set -e
if [ $# -ne 2 ]; then
echo "Usage: $0 <backend> <workdir>"
echo " backend: claude, kiro-cli"
exit 1
fi
BACKEND="$1"
PROJECT_PATH="$2"
PROJECT_NAME=$(basename "$PROJECT_PATH")
# Generate a random short identifier
RANDOM_WORD=$(shuf -n1 -e alpha beta gamma delta zeta theta kappa sigma omega lambda)
RANDOM_NUM=$(printf "%02d" $((RANDOM % 100)))
ALIAS_NAME="${RANDOM_WORD}${RANDOM_NUM}"
echo "Setting up Developer-Reviewer workflow for: $PROJECT_NAME"
echo "Project path: $PROJECT_PATH"
echo "Session alias: $ALIAS_NAME"
NAMESPACE=$(namespace)
if [ -z "$NAMESPACE" ]; then
echo "Error: No namespace found. Is anvillm running?"
exit 1
fi
AGENT_MOUNT="agent"
# Helper to create session and capture ID
create_session() {
local backend="$1" cwd="$2"
local before after
before=$(9p read $AGENT_MOUNT/list | awk '{print $1}' | sort)
echo "new $backend $cwd" | 9p write $AGENT_MOUNT/ctl
after=$(9p read $AGENT_MOUNT/list | awk '{print $1}' | sort)
comm -13 <(echo "$before") <(echo "$after") | head -1
}
echo "Creating developer session..."
DEV_ID=$(create_session "$BACKEND" "$PROJECT_PATH")
echo "Developer session ID: $DEV_ID"
echo "Creating reviewer session..."
REVIEWER_ID=$(create_session "$BACKEND" "$PROJECT_PATH")
echo "Reviewer session ID: $REVIEWER_ID"
# Set aliases
echo "Setting aliases..."
echo "${ALIAS_NAME}-dev" | 9p write $AGENT_MOUNT/$DEV_ID/alias
echo "${ALIAS_NAME}-reviewer" | 9p write $AGENT_MOUNT/$REVIEWER_ID/alias
# Set developer context
cat <<EOF | 9p write $AGENT_MOUNT/$DEV_ID/context
# DEVELOPER AGENT ROLE
You are the developer agent in a two-agent workflow. Your peer is the reviewer agent.
## Your workflow:
1. When given a task, implement it fully
2. After implementation, stage all changes using git
3. Use the peer-bot skill to find and communicate with the reviewer agent (alias contains "reviewer")
4. Send a review request to the reviewer: "Please review the staged changes"
5. Wait for the reviewer's response
6. If you receive "LGTM" from the reviewer, you're done
7. If you receive suggested changes, implement them and repeat from step 2
## Communication Protocol:
- Use the peer-bot skill to discover and communicate with peer agents
- The skill handles all discovery automatically - just specify what role you're looking for
- You will receive messages from the reviewer in your input stream
Stop working and wait for the reviewer's response after sending the review request.
Remember: You are working collaboratively with the reviewer to ensure code quality.
EOF
# Set reviewer context
cat <<EOF | 9p write $AGENT_MOUNT/$REVIEWER_ID/context
# REVIEWER AGENT ROLE
You are the code reviewer agent in a two-agent workflow. Your peer is the developer agent.
## Your workflow:
1. When you receive a review request, review the staged changes
2. Use git commands to examine what's been staged:
- git diff --cached
- Look for bugs, code quality issues, security concerns
3. Use the peer-bot skill to find and communicate with the developer agent (alias contains "dev")
4. Send feedback to the developer:
- If the code is good: write "LGTM"
- If changes needed: write specific, actionable feedback
5. Wait for the developer to implement changes and send another review request
6. Repeat until you can give "LGTM"
## Review Criteria:
- Code correctness
- Security (no SQL injection, XSS, command injection, etc.)
- Code style and readability
- Test coverage
- Error handling
## Communication Protocol:
- Use the peer-bot skill to discover and communicate with peer agents
- The skill handles all discovery automatically - just specify what role you're looking for
- You will receive review requests in your input stream
Remember: Be thorough but constructive in your reviews. The goal is high-quality code.
EOF
echo ""
echo "✓ Developer-Reviewer workflow setup complete!"
echo ""
echo "Sessions created:"
echo " Developer: $DEV_ID (alias: ${ALIAS_NAME}-dev)"
echo " Reviewer: $REVIEWER_ID (alias: ${ALIAS_NAME}-reviewer)"
echo ""
echo "To start development:"
echo " 1. Open the developer agent and give it a task"
echo " 2. The developer will implement, then automatically request review"
echo " 3. The reviewer will provide feedback"
echo " 4. The cycle continues until the reviewer gives LGTM"
echo ""
echo "To interact with the agents:"
echo " - Open developer: echo open $DEV_ID | 9p write $AGENT_MOUNT/ctl"
echo " - Open reviewer: echo open $REVIEWER_ID | 9p write $AGENT_MOUNT/ctl"