From 26f812ac07c7d060c3d4b518fe82d289bacb48ae Mon Sep 17 00:00:00 2001 From: orchestrator-agent Date: Tue, 22 Sep 2026 10:52:38 -0400 Subject: [PATCH] Keep Claude reviews noninteractive and read-only --- ORCHESTRATION.md | 3 ++- scripts/nq-review | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/ORCHESTRATION.md b/ORCHESTRATION.md index 98c9e57..f460680 100644 --- a/ORCHESTRATION.md +++ b/ORCHESTRATION.md @@ -17,7 +17,8 @@ The approver's shell permission permits only the installed Claude approval evidence, an exact-head Gitea approval by `review_agent`, the `dev` target, a mergeable PR, and passing configured checks before it requests a squash merge. `scripts/nq-review` launches the independent -Claude review in the task worktree, checks the head again afterward, saves +Claude review in a noninteractive read-only session in the task worktree, +checks the head again afterward, saves the output under `/tmp/opencode`, and posts the Gitea approval. The approver verifies the reviewed head again before a merge. diff --git a/scripts/nq-review b/scripts/nq-review index 75b6196..c58eca4 100755 --- a/scripts/nq-review +++ b/scripts/nq-review @@ -71,7 +71,8 @@ def main() -> int: ) result = subprocess.run( [CLAUDE, "-p", prompt, "--model", "claude-sonnet-5", "--effort", "high", - "--permission-mode", "plan", "--allowedTools", "Read", "Grep", "Glob", + "--permission-mode", "dontAsk", "--disallowedTools", "Edit", "Write", + "NotebookEdit", "--allowedTools", "Read", "Grep", "Glob", "Bash(git diff:*)", "Bash(git log:*)", "Bash(git show:*)", "Bash(git status:*)"], cwd=args.worktree, text=True, capture_output=True, timeout=1200, )