Rosentic checks every PR against every other open PR before merge. When coding agents work in parallel, they break each other in ways no single-PR tool catches. Rosentic catches it. Deterministic analysis. Same scan, same result, every time. Most scans come back clean. That means you're clear to merge. Runs on your infrastructure. One YAML file, no signup, 60-second install.
Hey Product Hunt 👋. I'm Laramie. Nearly 20 years in tech. By day I run technical partnerships. By night I build with Claude Code and Codex on the same repo.
Here's what I kept running into: both agents write good code. Both PRs pass CI. Then they merge and break main. CI checks one branch at a time. Git merges text, not logic. Nobody checks whether the branches are compatible with each other.
With agent orchestration tools shipping weekly and PR volume exploding, this is only getting worse.
So I built Rosentic.
It checks every PR against every other active branch before merge. Deterministic. Same scan, same result, every time.
Most scans come back clean. That means you're clear to merge. When something fires, you catch it before production does.
150+ repos scanned. Real conflicts found and fixed by maintainers. One YAML file, no signup, 60-second install.
What's the messiest merge conflict you or your team has dealt with lately?
This is solving a problem that's about to hit every engineering team at scale. When I was CTO running 120 engineers, merge conflicts between humans were already one of our biggest velocity killers - now multiply that by AI agents working in parallel across the same codebase. The hard part isn't detecting the textual conflict - it's catching the semantic breaks where two agents make changes that individually pass tests but together introduce subtle regressions. Curious how you're handling that semantic layer versus pure git-level conflicts?
@avrisimon Hey Avri great question. We don’t touch textual conflicts at all. Git already catches those. Rosentic analyzes the code structure on your own infrastructure and checks whether changes on one branch are compatible with what’s happening on other branches. So if one branch changes a function signature and another branch still calls the old version, we flag it with the exact file, line, and why it breaks.
120 engineers, I can only imagine how many branches were in flight. That must have been rough even before agents.!
Report
"Deterministic analysis" is the line that earns trust here — what's the actual technique? AST-level diff, type-graph reachability, an SMT solver, something else? Asking because "deterministic" in this space sometimes means "we wrap an LLM and average," and the value is very different depending on which one it is.
@sounak_bhattacharya No LLM anywhere in the engine. We parse the code structure, extract the symbols that matter, and do exact structural matching across branches. Same repo state, same result, every time. No averaging, no inference, no model calls. Every finding comes with the exact proof of why two changes are incompatible.
Report
Nice work. Narrow but useful problem. Curious how you handle false positives when two PRs touch the same surface for legitimately different reasons (e.g. coordinated multi-agent refactors). That's been the trickiest part of PR-conflict detection in our orchestration work.
@necipreis The engine checks whether the actual usage is compatible, not just whether the same code was touched. If two agents both change the same function but the callers still match, it comes back clean. When it does flag something, it shows exactly why so you can decide fast.
It’s not perfect and we’re always tuning. If you run it and see something off, I’d love the feedback.
Report
@bigl Makes sense. Semantic compatibility is the right primitive over raw line-touch.
Will give it a spin. The case we keep hitting is side-effect cascades that don’t show up in caller signatures. For example, two PRs both update the same util, but one quietly changes a metric/log/event the other depends on.
Curious whether those are in scope, or intentionally left out for now.
@necipreis That’s a great edge case. Right now we focus on the structural contracts – signatures, routes, schemas. Side-effect changes like metrics or logging that don’t show up in the function interface are outside scope today. We’d love to hear what you find when you run it. Those kinds of real-world cases are exactly what helps us figure out where to go next.
@nikolas_dimitroulakis Thanks! The engine is closed source right now. The GitHub Action runs on your own runners so you get full privacy without needing the source. We're focused on making the detection sharper and covering more conflict patterns before thinking about open source. What drew you to ask about it?
Rosentic
Hey Product Hunt 👋. I'm Laramie. Nearly 20 years in tech. By day I run technical partnerships. By night I build with Claude Code and Codex on the same repo.
Here's what I kept running into: both agents write good code. Both PRs pass CI. Then they merge and break main. CI checks one branch at a time. Git merges text, not logic. Nobody checks whether the branches are compatible with each other.
With agent orchestration tools shipping weekly and PR volume exploding, this is only getting worse.
So I built Rosentic.
It checks every PR against every other active branch before merge. Deterministic. Same scan, same result, every time.
Most scans come back clean. That means you're clear to merge. When something fires, you catch it before production does.
150+ repos scanned. Real conflicts found and fixed by maintainers. One YAML file, no signup, 60-second install.
What's the messiest merge conflict you or your team has dealt with lately?
https://github.com/marketplace/actions/rosentic-cross-branch-compatibility-check
This is solving a problem that's about to hit every engineering team at scale. When I was CTO running 120 engineers, merge conflicts between humans were already one of our biggest velocity killers - now multiply that by AI agents working in parallel across the same codebase. The hard part isn't detecting the textual conflict - it's catching the semantic breaks where two agents make changes that individually pass tests but together introduce subtle regressions. Curious how you're handling that semantic layer versus pure git-level conflicts?
Rosentic
"Deterministic analysis" is the line that earns trust here — what's the actual technique? AST-level diff, type-graph reachability, an SMT solver, something else? Asking because "deterministic" in this space sometimes means "we wrap an LLM and average," and the value is very different depending on which one it is.
Rosentic
Nice work. Narrow but useful problem. Curious how you handle false positives when two PRs touch the same surface for legitimately different reasons (e.g. coordinated multi-agent refactors). That's been the trickiest part of PR-conflict detection in our orchestration work.
Rosentic
@bigl Makes sense. Semantic compatibility is the right primitive over raw line-touch.
Will give it a spin. The case we keep hitting is side-effect cascades that don’t show up in caller signatures. For example, two PRs both update the same util, but one quietly changes a metric/log/event the other depends on.
Curious whether those are in scope, or intentionally left out for now.
Rosentic
ApyHub
this is awesome. plans to open source?
Rosentic
@nikolas_dimitroulakis Thanks! The engine is closed source right now. The GitHub Action runs on your own runners so you get full privacy without needing the source. We're focused on making the detection sharper and covering more conflict patterns before thinking about open source. What drew you to ask about it?
Imbue
Congratulations on the launch, @bigl! Excited to try out Rosentic.
Rosentic
@mrtibbets Thanks - looking forward to it. Let me know if you run into anything - happy to help!