# Template: review a PR Copy, fill the `<...>` fields, and paste as the task prompt. ```text Task: review PR # for issue #. Rules (llm-project-workflow): - Review in a SEPARATE detached review worktree, never the author's folder. - You must NOT be the PR author. If the authenticated user == PR author, stop. A different LLM-Agent-SHA does NOT make you a different actor — only a different authenticated Gitea user does (docs/llm-agent-sha.md). - Do not merge if any check fails. Steps: 1. Identity Checklist: Before claiming/working on review, verify and state: - Required identity/profile for this task: reviewer (allowed to review/approve/request_changes) - Current authenticated identity (from whoami): - Target task role: reviewer identity (must NOT be the PR author) *If the current identity does not match the required role (or is the PR author), STOP. Relaunch/switch to the correct profile first.* 2. Verify your authenticated identity (whoami) and the active profile. 3. Fetch the PR facts: PR author, head SHA, state (must be open), base branch. 4. If authenticated user == PR author → STOP (no self-review). 4. scripts/worktree-review # detached, branches/review-* cd branches/review- 5. Confirm the worktree is clean. Inspect the FULL diff; confirm scope matches issue #; flag any unrelated files, secrets, or formatting churn. Check that the PR body correctly uses Gitea-closing keywords (`Closes #N` or `Fixes #N`) instead of non-closing ones (`Implements #N`, `Refs #N`). 6. Run the test suite; note results. 7. Post the review verdict: approve only if scope is clean and checks pass; otherwise request changes with specifics. Never merge from this review step. Include a "Review Metadata" block (attribution only — docs/llm-agent-sha.md): Review Metadata: - LLM-Agent-SHA: llm-<12 lowercase hex, e.g. llm-41d0e7aa9f2c> - LLM-Role: reviewer - Authenticated-Gitea-User: - MCP-Profile: - Eligibility: passed/failed Handoff: reviewer identity, PR author, scope verdict, checks + results, decision — formatted as the Controller Handoff Summary (SKILL.md §K); if you could not merge, name the exact gate that blocked it. ```