#!/usr/bin/env bash set -euo pipefail if [[ $# -ne 4 ]]; then echo "usage: nq-review WORKTREE BASE_REF HEAD_REF REVIEW_PROMPT_FILE" >&2 exit 64 fi worktree=$1 base_ref=$2 head_ref=$3 prompt_file=$4 [[ -d "$worktree" && -f "$prompt_file" ]] || { echo "missing worktree or prompt" >&2; exit 66; } cd "$worktree" base_commit=$(git rev-parse --verify "$base_ref^{commit}") head_commit=$(git rev-parse --verify "$head_ref^{commit}") [[ "$(git rev-parse HEAD)" == "$head_commit" ]] || { echo "worktree HEAD differs from reviewed head" >&2; exit 65; } git merge-base --is-ancestor "$base_commit" "$head_commit" || { echo "base is not an ancestor of head" >&2; exit 65; } review_prompt=$(cat "$prompt_file") review_prompt+=$'\n\nReview only the delta from the specified base to this exact head. Base: ' review_prompt+="$base_commit" review_prompt+=$'. Head: ' review_prompt+="$head_commit" review_prompt+=$'. Verify the current HEAD before issuing a verdict. Read only; do not modify files. End with two plain lines, REVIEWED_HEAD: and REVIEW_VERDICT: APPROVED or REVIEW_VERDICT: CHANGES_REQUIRED.' claude_bin=${CLAUDE_BIN:-/home/overseer/.local/bin/claude} exec "$claude_bin" -p "$review_prompt" \ --model claude-sonnet-5 \ --effort high \ --permission-mode plan \ --allowedTools Read Grep Glob \ 'Bash(git diff:*)' 'Bash(git log:*)' 'Bash(git show:*)' 'Bash(git status:*)'