frontpage.
newsnewestaskshowjobs

Open Source @Github

fp.

Open in hackernews

Show HN: Farol – a risk map of a pull request for the person who approves it

https://github.com/winnin/farol
28•ericholiveira•1h ago

Comments

ericholiveira•1h ago
Hi HN, I built farol at Winnin, where we open-sourced it (MIT).

AI agents now write a lot of our code, and AI reviewers catch a lot of the line-level problems. But someone still has to press "merge", and that person has the same question every time: how risky is this, and where should I spend my attention? A 40-file PR where 38 files are isolated is very different from a 3-file PR that changes a model used by 23 endpoints.

farol is a CLI (and a GitHub Action) that answers that statically:

- classifies the PR (global / touches-existing / isolated / unknown) and gives a 0-100 merge risk score - ranks the files by risk and says why: what each one reaches (routes, endpoints, jobs), contract breaks in API responses, dependency changes, security patterns - diff coverage from your existing coverage report, so "38% of the changed lines are tested" sits next to the risky files - an HTML report where you mark files as reviewed and the score and test plan follow; incremental mode for "what changed since my last review"; suggested reviewers from git blame

How: it uses the TypeScript compiler API for TS/React (React Router, Next.js, TanStack Router) and TS backends, a small go/types helper for Go, and Python's ast for FastAPI/Flask/Django and friends. No LLM, no network during analysis, and it never executes the analyzed repo's code. It's deterministic and informs only; it never blocks a merge.

Live demo (two reports from a real PR, nothing to install): https://winnin.github.io/farol/demo/

Try it on a branch: npx @winninjs/farol --help

Limitations: only TS, Go and Python for now, and the reachability is static, so dynamic dispatch and reflection make it fail closed ("unknown") rather than guess. I'd love feedback on the risk score and on false positives in your codebase.

ccvannorman•1h ago
why is the only comment by the OP flagged and dead? Is it because they were supposed to include that data in the description text rather than a comment, was it flagged as AI generated, or..?

Trying to understand why the poster's own comment was flagged and killed but the original article remains up.

shiandow•1h ago
I'm not sure either. The comments don't look wrong to me.
rubyn00bie•1h ago
You can vouch for it, if you view the comment by clicking the time since posted a “vouch” option appears. I did it. I’ve noticed this happening more and more on here for show HN posts especially. I’m not sure if it’s like some sort of troll gang or what…
BalinKing•1h ago
AI-edited or -generated comments are disallowed by HN guidelines: https://news.ycombinator.com/newsguidelines.html#generated. I don't think any such restriction exists for submissions themselves, so that's my guess as to why the comment but not the submission has been flagged to death.
sikozu•1h ago
I like the concept, a risk map could be useful in some circumstances but I absolutely hate the UI design; it reeks of AI with no human thought or care put into it.
ericholiveira•33m ago
Thats is surely true... i did it with AI and i do lack design skills
looperhacks•54m ago
Or you could, you know, read the changes your approving
y42•52m ago
Sire, wouldst thou perchance elaborate upon this ancient, forgotten technique, long buried in the mists of antiquity and shrouded in mysterious lore?
alsiola•40m ago
Looked at the backend demo, and the first lines suggested to look at were importing things. Exactly what I really don't need to be reviewing
ericholiveira•34m ago
It suggested based on the files most used (through graph dependency), for this reason it appears as a important file (as if it breaks, it can break several places in your codebase), but that being said, you can add some files to be ignored (if you have special files, like consts or i18n)
fcarraldo•33m ago
I think tools like this are needed and will become standard in the near future.

However, the backend demo report seems longer and more complex than just reading the code. I’m trying to build something similar as well, and no one has quite nailed this yet.

The risk map / assisted review needs to be succinct and information dense, to guide your attention. My current philosophy is that we need to be annotating code, not replacing the entire code review interface with a bunch of text.

ericholiveira•30m ago
Thanks... it surely is possible to try to reduce the amount of information
munro•27m ago
IDK lot of noise in report, I need more signal to noise ratio, already reading so much AI output as it is.

But the example PR... It said code generate with Claude, is it really still this bad? Last I was using SQLAlchemy with Claude was Opus 4.5, and it took some heavy coaching and skill gen not to generate code like this--but why even use SQLAlchemy at all if you're just going to use string interpolation jeez

https://github.com/erich-oliveira-winnin/full-stack-fastapi-...

    owner = "" if current_user.is_superuser else f"WHERE owner_id = '{current_user.id}'"
    query = f"SELECT status, count(*) FROM item {owner} GROUP BY status"
    rows = session.execute(text(query)).all()
Part of me thinks maybe because it's not popular or well documented, but SQLAlchemy has an eDSL of SQL, so you can skip the whole ORM/table mapping layer, and just use it to programmatically construct SQL syntax
benglish11•22m ago
That’s my favorite part of sqlalchemy. I don’t even use the orm anymore.
osigurdson•17m ago
>> Claude Code lives in its own repository, separate from the monorepo

I thought mono meant one.

messia•13m ago
it's hard for me to imagine something made with so little taste can be any good...
timcobb•11m ago
This looks nice, but I would use it with caution.

There was a post here recently, "Using LLM for confidence scoring is a bad idea", my mind went immediately to using LLMs for scoring risk. Seems like a bad idea. If there's anything we still need a human for, it's assessing risk.

Tool book of a Nuremberg knight from 1505

https://loeffelholz-codex.org/en/
94•edwardog•2h ago•34 comments

Show HN: I put employees inside S&P 500 market-cap bubbles

https://bigwhalehunting.com/workforce/
6•vfxGer•13m ago•0 comments

Show HN: Farol – a risk map of a pull request for the person who approves it

https://github.com/winnin/farol
28•ericholiveira•1h ago•18 comments

fheroes2: A recreation of Heroes of Might and Magic II game engine

https://github.com/ihhub/fheroes2
104•tosh•4h ago•35 comments

We should be more ambitious with the software we build

https://danluu.com/ambitious/
568•ltratt•17h ago•529 comments

Cerebras Deploys Trillion-Parameter AI Models

https://www.cerebras.ai/blog/how-we-deploy-trillion-parameter-frontier-models-on-cerebras
263•gmays•13h ago•86 comments

How Japanese Dried Bonito Is Made

https://kottke.org/26/10/how-japanese-dried-bonito-is-made
122•bookofjoe•3d ago•31 comments

The Goose Programming Language

https://aardappel.github.io/goose/
491•bobbydigitales•20h ago•299 comments

Reverse engineer of PC-98 Touhou games retires

https://rec98.nmlgc.net/blog/2026-10-05
38•mimasama•2d ago•28 comments

The Lego group reveals collaboration with Daft Punk

https://www.lego.com/en-us/categories/adults-welcome/article/daft-punk
42•pieterr•2h ago•35 comments

Samsung running a TensorFlow lite model on 960x540 image to track you

https://twitter.com/mike64_t/status/2114150399406202896
194•mashally•4h ago•132 comments

Nikon photography contest winner loses title after scientists spot signs of AI

https://www.techspot.com/news/114171-nikon-photography-contest-winner-loses-title-after-scientist...
73•thunderbong•5h ago•18 comments

Why Washing Machines Took Decades to Catch On

https://daily.jstor.org/why-washing-machines-took-decades-to-catch-on/
6•herbertl•5d ago•0 comments

SpeedCrunch 1.1

https://www.speedcrunch.org/
187•LordNibbler•19h ago•37 comments

Small Programs and Languages

https://ratfactor.com/cards/pl-small
149•andsoitis•17h ago•20 comments

Local Wikipedia: Wikipedia, but only for things a half hour walk from you

https://edjefferson.com/localwiki/
1629•sohkamyung•2d ago•251 comments

Node2Shell evolves to HTTP2Shell, blast radius affects many HTTP libs and apps

https://www.aikido.dev/blog/python-packages-vulnerable-node2shell-brotli-cve-2026-111497
353•theanonymousone•1d ago•171 comments

I don't understand quantum physics (2018)

https://www.southampton.ac.uk/~doug/quantum_physics/index.html
347•rramadass•1d ago•267 comments

America has lost 200k of jobs in media, film and the arts. How much is AI?

https://www.apricitas.io/p/ai-and-the-fall-of-the-creative-class
427•gnabgib•16h ago•454 comments

I Built a Stereo Vision Board for Hardware Hackers

https://rootkitlabs.com/2026/10/06/i-built-a-stereo-vision-board-for-hardware-hackers/
106•machinehum•4d ago•17 comments

Imagine an AI future where being banned means you are now economically useless

https://twitter.com/boneGPT/status/2114035719853265264
20•MrBuddyCasino•2h ago•9 comments

The Importance of Limitations for Creativity and Learning (2023)

https://ratfactor.com/cards/limitations
102•andsoitis•17h ago•33 comments

Why Gopher in 2026?

https://gopher.muffinlabs.com/sdf.org/users/nervtoji/phlog/001.txt
108•andsoitis•15h ago•57 comments

FreeDNS

https://freedns.afraid.org/
323•esher•23h ago•85 comments

GPU-unlock: FP/BF16 instruction issue rate on Nvidia 3000's cards

https://github.com/Zagitta/gpu-unlock
299•fragebogen•1d ago•74 comments

Social dynamics of toxic metal industry in medieval Europe

https://www.cambridge.org/core/journals/antiquity/article/social-dynamics-of-toxic-metal-industry...
71•XzetaU8•4d ago•35 comments

Neural chip decodes interactions between brain regions

https://actu.epfl.ch/news/neural-chip-decodes-interactions-between-brain-r-2/
126•giuliomagnifico•23h ago•46 comments

Physicists trap a single antimatter particle for a month

https://www.scientificamerican.com/article/physicists-trap-a-single-antimatter-particle-for-a-month/
330•mooreds•3d ago•99 comments

The St. Helena 5 pence coin shows Jonathan, a roughly 190 year old tortoise

https://de.numista.com/9866
130•schleck8•22h ago•42 comments

A story of a Figma bug that wasn't a bug at all (2021)

https://aresluna.org/this-is-a-story-of-a-figma-bug/
55•jllyhill•3d ago•5 comments