Review code changes alongside line-by-line plain English explanations.
gh pr diff 123 > diff.patch Or from git directly: git diff main...your-branch > diff.patch
Generate a comments JSON file with this structure:
{
"path/to/file.ext": [
{ "anchor": "const valid = await bcrypt.compare", "text": "What this change does and why" },
{ "anchor": "if (!valid)", "text": "Another change", "children": ["Detail 1", "Detail 2"] },
{ "text": "A note about the whole file — no anchor" }
]
}
- Write for a product manager reviewing the PR, not an engineer. Connect every comment to what the user sees or what the feature does — never describe code mechanics.
- Each bullet = one logical block (function, conditional, import group), following code order top-to-bottom
- "anchor" (optional): copy a short, distinctive snippet of the exact diff line this bullet is about — verbatim, without the leading + or -; indentation doesn't matter. The page shows your comment beside that line.
- Anchor each bullet to the FIRST line of its logical block, in top-to-bottom order
- About the whole file, or unsure of the line? Omit "anchor" — the comment still shows as a general note
- Use plain language: say "manager" not "isManager flag", say "calendar provider" not "CalApi", say "shows an error" not "returns 422"
- Keep each bullet concise and information-dense
- Use "children" for details, sub-steps, or caveats
- For UI components, describe the user experience: what appears, when it appears, what happens on interaction
- For backend/service files, describe the behavior and safeguards: what's checked, what's cached, what's handled gracefully
- For test files, summarize what scenarios are covered in terms of user-facing outcomes, not test method names
Drag and drop both files onto this page — the diff and the comments JSON. They can be dropped together or one at a time, in any order. You can also use the "Paste Diff/Comments" button above to paste content directly.