Provide a code review for the given Azure DevOps pull request.
Workflow
- •
Check Eligibility: Use
az repos pr show --id {prId} --org {orgUrl}to verify the PR is open, not a draft, and hasn't been reviewed by you already. Skip if ineligible. - •
Get Context: Identify relevant CLAUDE.md files (root and in modified directories) and get the PR diff using git commands:
- •First, use
az repos pr show --id {prId} --org {orgUrl}to get the target branch name - •Then fetch and switch to the PR branch:
az repos pr checkout --id {prId}(note: checkout does NOT require--orgas it operates on the local git repository) - •Generate the diff:
git diff origin/{targetBranch}...HEAD - •Note: These commands will only work when executed in the same git repository as the PR.
- •First, use
- •
Review the Changes: Use agents to analyze the code changes for:
- •CLAUDE.md compliance (only applicable instructions)
- •Obvious bugs in the changes themselves
- •Issues revealed by git history/blame
- •Patterns from previous PRs on these files
- •Violations of code comments/guidance
- •
Validate Issues: For each potential issue, assess confidence (0-100 scale). Filter to only high-confidence issues (80+):
- •0-25: False positive or stylistic preference not in CLAUDE.md
- •50: Real but minor issue
- •75: Important issue affecting functionality or explicitly mentioned in CLAUDE.md
- •100: Definite issue that will cause problems
- •
Post Review: If high-confidence issues found:
a. Confirm with User: Use the
AskUserQuestiontool to confirm with the user before posting comments to the PR, unless the user explicitly requested not to confirm. Present a summary of the issues you found and ask if they should be posted.b. Post Comments: After user confirmation, use
az devops invoketo create a comment thread on the PR:shellaz devops invoke --area git --resource pullRequestThreads \ --route-parameters project={project} repositoryId={repo} pullRequestId={pr} \ --http-method POST --api-version 7.1-preview \ --body '{"comments":[{"parentCommentId":0,"content":"Your review","commentType":"text"}],"status":"active"}' \ --org {orgUrl}For file-specific comments, include
threadContextwithfilePath,rightFileStart, andrightFileEndin the body.
Avoid False Positives
- •Pre-existing issues not introduced by this PR
- •Linter/typechecker/compiler issues (handled by CI)
- •Pedantic nitpicks not explicitly in CLAUDE.md
- •Intentional functionality changes
- •Issues on unmodified lines
- •General quality issues (test coverage, documentation) unless CLAUDE.md requires them
- •Issues with lint ignore comments
Notes
- •Don't check build signal or run builds/typechecks (handled separately by CI)
- •Cite and link each issue with full context
- •Keep comments brief and professional
- •Use Azure CLI commands from the azure-cli skill
Comment Format
When posting the review using az devops invoke, format as follows:
If issues found:
### Code review
Found {N} issues:
1. <brief description> (CLAUDE.md says "<quote>")
<Azure DevOps link to file with full commit hash + line range>
2. <brief description> (bug due to <file and code snippet>)
<Azure DevOps link to file with full commit hash + line range>
🤖 Generated with AI
<sub>- If this code review was useful, please react with 👍. Otherwise, react with 👎.</sub>
If no issues:
### Code review No issues found. Checked for bugs and CLAUDE.md compliance. 🤖 Generated with AI
Azure DevOps Link Format
Use this exact format for code links (must include full commit hash):
https://dev.azure.com/{org}/{project}/_git/{repo}?path=/{file-path}&version=GC{full-commit-hash}&lineStart={start}&lineEnd={end}&lineStartColumn=1&lineEndColumn=1
- •Get full commit hash from PR details (
az repos pr show --id {prId} --org {orgUrl}) - •Use
lineStartandlineEndfor line ranges (or justline={number}for a single line) - •Include 1+ lines of context before/after the issue
- •Ensure org, project, and repo names match the PR's repository
- •File path should start with
/