<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/how-acr-reviews-javascript-and-react-code-behind-the-scenes-mfzefi5aq" -->

---
title: How ACR Reviews JavaScript and React Code Behind the Scenes
description: ACR is a terminal-first code-review CLI for JavaScript and React projects that runs deterministic static analysis before invoking AI. It parses source into an...
canonical: https://daily.dev/posts/how-acr-reviews-javascript-and-react-code-behind-the-scenes-mfzefi5aq
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: How ACR Reviews JavaScript and React Code Behind the Scenes | daily.dev
og:description: ACR is a terminal-first code-review CLI for JavaScript and React projects that runs deterministic static analysis before invoking AI. It parses source into an...
og:url: https://daily.dev/posts/how-acr-reviews-javascript-and-react-code-behind-the-scenes-mfzefi5aq
og:image: https://api.daily.dev/og/posts/MfzeFI5aq.png
og:image:alt: How ACR Reviews JavaScript and React Code Behind the Scenes
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# How ACR Reviews JavaScript and React Code Behind the Scenes

**[Medium](https://daily.dev/sources/medium_js)** · 12 min read · 0 upvotes · 1 comments

## Summary

ACR is a terminal-first code-review CLI for JavaScript and React projects that runs deterministic static analysis before invoking AI. It parses source into an AST for structural understanding, runs ESLint and React-specific checks, splits code into meaningful sections for optional AI review, validates and deduplicates AI findings, filters results to Git-changed lines, caches results by content hash, and outputs terminal or JSON reports without modifying source files. The tool is read-only, available on npm and GitHub.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://medium.com/@dbhattacharya1912/how-acr-reviews-javascript-and-react-code-behind-the-scenes-afb461eaac20>

## Questions this post answers

### How does ACR decide what code to send to an AI model during a code review?

ACR uses the abstract syntax tree to split code into meaningful units such as functions, classes, class methods, and React components rather than fixed-size chunks. Each unit is packaged with its imports and surrounding context, which keeps AI requests focused, reduces token usage, and avoids splitting code mid-function.

_Developers comparing AI code-review approaches can track tooling architecture discussions like this on daily.dev._

### How can a code review tool validate AI-generated findings before showing them to a developer?

ACR treats AI output as untrusted input and validates every response against an expected format, rejecting or removing findings when the structure is invalid, required fields are missing, the referenced line number does not exist, confidence falls below a threshold, or the result cannot be mapped back to the source. This filters out common AI failure modes before they reach the report.

_Anyone building reliable AI-assisted dev tools can follow validation patterns like this on daily.dev._

## Community discussion

Top comments from developers on daily.dev.

**@nark3d** · 0 upvotes

> I'd written off static checks as theatre once the AI reviewers turned up, on the grounds that a model reads the code anyway.  The same finding coming back in three different wordings across runs is a parsing problem before it's a review problem.  Deterministic first, AI second, reads like the order that fixes it.  Planning to point it at a React codebase.

## Similar posts on daily.dev

- [Open Code Review: free, self-hosted AI code review agent](https://daily.dev/posts/open-code-review-free-self-hosted-ai-code-review-agent-5pu5mxvci) · FireUp · 0 upvotes · 0 comments
- [Hybrid Automated Code Review: Deterministic AST Rules \+ LLMs](https://daily.dev/posts/hybrid-automated-code-review-deterministic-ast-rules-llms-cpb0eabf8) · SitePoint · 0 upvotes · 0 comments
- [AI Code Review in Code Studio: Instant Pre‑Commit Feedback that Cuts PR Churn](https://daily.dev/posts/ai-code-review-in-code-studio-instant-pre-commit-feedback-that-cuts-pr-churn-oi5pkjykr) · Syncfusion · 1 upvotes · 0 comments

---

Tags: [#javascript](https://daily.dev/tags/javascript), [#react](https://daily.dev/tags/react), [#code-review](https://daily.dev/tags/code-review)

[View this post on daily.dev](https://daily.dev/posts/how-acr-reviews-javascript-and-react-code-behind-the-scenes-mfzefi5aq)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"How ACR Reviews JavaScript and React Code Behind the Scenes","url":"https://daily.dev/posts/how-acr-reviews-javascript-and-react-code-behind-the-scenes-mfzefi5aq","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/how-acr-reviews-javascript-and-react-code-behind-the-scenes-mfzefi5aq"},"datePublished":"2026-09-11T12:14:58.507Z","dateModified":"2026-09-11T12:52:38.009Z","description":"ACR is a terminal-first code-review CLI for JavaScript and React projects that runs deterministic static analysis before invoking AI. It parses source into an...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/d6ab0a9a223ee01bc82d647f54feb2d2?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/d6ab0a9a223ee01bc82d647f54feb2d2?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Medium","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Medium","logo":"https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/medium","url":"https://daily.dev/sources/medium_js"},"commentCount":1,"discussionUrl":"https://daily.dev/posts/how-acr-reviews-javascript-and-react-code-behind-the-scenes-mfzefi5aq","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":1}],"keywords":"javascript,react,code-review","timeRequired":"PT12M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Medium","item":"https://daily.dev/sources/medium_js"},{"@type":"ListItem","position":3,"name":"How ACR Reviews JavaScript and React Code Behind the Scenes"}]}
{"@context":"https://schema.org","@type":"WebPage","@id":"https://daily.dev/posts/how-acr-reviews-javascript-and-react-code-behind-the-scenes-mfzefi5aq","comment":[{"@type":"Comment","text":"I’d written off static checks as theatre once the AI reviewers turned up, on the grounds that a model reads the code anyway.  The same finding coming back in three different wordings across runs is a parsing problem before it’s a review problem.  Deterministic first, AI second, reads like the order that fixes it.  Planning to point it at a React codebase.","datePublished":"2026-09-19T16:31:42.755Z","url":"https://daily.dev/posts/MfzeFI5aq#c-Mo2lWBmWg","author":{"@type":"Person","name":"Adam","url":"https://daily.dev/nark3d","image":"https://avatars.githubusercontent.com/u/2162621?v=4"}}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/how-acr-reviews-javascript-and-react-code-behind-the-scenes-mfzefi5aq#faq","mainEntity":[{"@type":"Question","name":"How does ACR decide what code to send to an AI model during a code review?","acceptedAnswer":{"@type":"Answer","text":"ACR uses the abstract syntax tree to split code into meaningful units such as functions, classes, class methods, and React components rather than fixed-size chunks. Each unit is packaged with its imports and surrounding context, which keeps AI requests focused, reduces token usage, and avoids splitting code mid-function. Developers comparing AI code-review approaches can track tooling architecture discussions like this on daily.dev."}},{"@type":"Question","name":"How can a code review tool validate AI-generated findings before showing them to a developer?","acceptedAnswer":{"@type":"Answer","text":"ACR treats AI output as untrusted input and validates every response against an expected format, rejecting or removing findings when the structure is invalid, required fields are missing, the referenced line number does not exist, confidence falls below a threshold, or the result cannot be mapped back to the source. This filters out common AI failure modes before they reach the report. Anyone building reliable AI-assisted dev tools can follow validation patterns like this on daily.dev."}}]}
```

