Farol: Find the Code That Still Needs Human Review After an AI Review

An AI reviewer already approved the PR, yet Farol still shows remaining risk. Which files does a human still need to read, and what does that score actually track?

Farol: Find the Code That Still Needs Human Review After an AI Review
TLDR
  • Farol gives a human approver a map of affected pages and operations, with the files worth reading first.
  • Coverage, contract changes and missing evidence explain the assessment better than a score alone.
  • Static analysis has limits; Farol reports uncertainty and leaves approval to the reviewer.

The review starts with what a change reaches

Winnin’s Farol is a CLI and GitHub Action intended for the person approving a pull request after an AI review. Its Start here view orders files by risk signals and links changes to affected entry points.

The analysis pipeline uses language parsers and type information to follow code relationships. It builds paths from changed declarations to pages, endpoints and other entry points. These are statically discovered connections, rather than a recording of production requests.

For an approver, that changes the question from how many lines moved to which features depend on them. A shared function can deserve attention even when its diff is short.

Missing evidence is a separate result

Farol consumes existing test, lint and security reports. Its signals describe different parts of a review:

SignalWhat it tells the reviewer
Diff coverageWhether tests executed the changed executable lines.
Contract changesWhether request or response shapes changed, such as a removed response field.
not verifiedThe corresponding report was not supplied.
unknownSome code could not be analyzed and needs closer review.

Coverage records execution; reviewers still need to examine what the assertions check. A contract warning raises another concrete question: was the change intentional, and have its callers been updated?

A score of 74 is not a measured outage probability

The scoring design explicitly describes its weights and thresholds as heuristics. A value on the 0–100 scale should not be treated as a calibrated prediction for a particular production service.

Marking a file as reviewed removes that file’s items from the remaining score. The number can therefore fall without a code change. It tracks outstanding review attention as well as the initial assessment; checking a box does not repair a defect or perform a manual test.

Check the entry points before trusting the map

The command reference provides routes to list recognized entry points and impact to show a file’s connections. Those views offer a practical starting point for checking whether the tool understands a project. Requirements include Node.js 22 or later and Git, with additional language tools for Go and Python.

Runtime-generated paths and dynamic calls can exceed static analysis capabilities. Language support does not imply support for every framework configuration. Constructs the tool cannot analyze need attention rather than an assumption that the affected code is isolated.

The security design separates the job executing PR tests from the job posting comments, and states that analysis does not execute the target repository’s code. Network behavior is command-specific: analyze stays offline, while comment contacts GitHub and optional usage contacts Datadog.

FAQ

Does Farol approve or block a merge?

No. Its stated role is to inform the human review.

Does a missing report count as a pass?

No. Missing evidence remains unverified.

Use the map to choose what to read and exercise next. The reasons behind the score—and the parts the tool could not understand—are essential to that decision.