Semantic diffs stop you from rubber-stamping AI PRs
Code review feels less like engineering and more like pattern matching these days. When a pull request spans fifty files with minor formatting tweaks, the instinct is to hit merge and move on. That is exactly what happened when I started relying on heavy AI-assisted coding workflows. The changes were correct, but the context was buried in noise.
Perspica tackles this by shifting the focus from line-level differences to semantic intent. Instead of just showing added and removed lines, it groups changes by meaning. It uses an LLM to determine what actually changed and why, creating a logical flow for the review process.
The tool works in two distinct modes depending on your setup.
1. LLM-driven semantic grouping
This is the primary mode. The system analyzes the diff and clusters related changes together. It explains the reasoning behind each group, allowing you to see the "story" of the refactor rather than a scattered list of edits. This is particularly effective for large PRs where multiple files are updated to satisfy a single architectural decision.
2. Tree-sitter mechanical parsing
If you prefer to avoid LLM overhead or latency, Perspica offers a conservative manual analysis. It uses tree-sitter parsing to identify structural changes and order them logically. While this lacks the high-level contextual explanation of the LLM mode, it provides a faster, deterministic view of how the code structure shifted.
The standout feature for solo developers or teams using AI agents is the prompt tracking capability. If you generated the code using tools like Claude Code or Codex, Perspica can read your session history. It distinguishes between changes you explicitly requested in your prompts and the autonomous decisions the agent made on its own. This helps validate whether the AI stayed within scope or introduced unexpected behavior before you submit the PR for peer review.
For a broader view, the tool supports Perforce-style side-by-side diffing. This layout allows you to scan the original and modified code simultaneously, which reduces eye strain compared to traditional unified diffs. The implementation is functional, though the UI polish is still catching up to the underlying logic.
You can apply this to reviewing others' work or auditing your own AI-generated commits. The repo includes demo videos based on public project PRs, which show how the semantic grouping simplifies complex merges. For personalized Claude or Codex session reviews, you will need to run the tool locally, as those examples rely on private session data.
This approach shifts the bottleneck from visual inspection to intent verification. You stop checking syntax and start verifying logic.
Language support is such a make-or-break for these tools, so hearing you'll prioritize requests is the right way to build trust.