Blog

Insights on architecture-aware code review.

Engineering patterns, real findings from open-source PRs, and updates on making structural review part of every pull request.

July 28, 2026

1 in 3 refactor PRs quietly moves the architecture. Nobody's review mentioned it.

We analyzed merged refactor PRs from well-known repos like Presto, Google Cloud DataflowTemplates, Apache Beam, and LINE armeria. A third carried real structural risk: boundary inversions, package cycles, contract rewrites. Here's what that risk looks like, on real Striff diagrams.

Read more

July 21, 2026

Design docs matter more than ever. Now they can actually be enforced.

In the AI era, a written design decision steers every generated line, and an unenforced one gets violated at machine speed. Here's how Striff extracts structural facts from every PR and turns design-doc decisions into checks, with a real enforcement example.

Read more

May 19, 2026

The architecture review checklist: how to catch structural risk in a PR, by hand

A practical, tool-agnostic checklist for reviewing pull requests for architectural risk: new dependency directions, blast radius, layer skips, cycles, and coupling drift. Plus the free tools that help, and the honest math on what it costs.

Read more

March 10, 2026

How we stop our AI reviewer from making things up

AI code review has a trust problem: plausible-sounding claims nobody can verify. Here's Striff's answer, a facts-first, neurosymbolic pipeline where the graph is measured before the AI writes a word, plus the findings we deliberately refuse to post.

Read more

January 27, 2026

Package dependency cycles: how one clean import quietly breaks your build, your tests, and your team

What a package-level dependency cycle actually is, the mechanical damage it does to builds, testing, and refactoring, how cycles really form, and why near-cycles are the cheapest architectural problem you'll ever fix.

Read more

November 18, 2025

Afferent and efferent coupling, explained with numbers from real codebases

What afferent coupling (Ca) and efferent coupling (Ce) actually measure, how to read them together, and what the rest of the metrics on a Striff diagram mean: WMC, DIT, NOC, and encapsulation, illustrated with real values from Spring Framework and Apache Pinot.

Read more

September 2, 2025

AI didn't make engineering discipline obsolete. It made it the whole job.

Tests, small PRs, readable code, documentation: every engineering best practice just got more valuable, because every one of them is about managing change, and change is what AI multiplied. But one practice has no guardian at all, and it's the one that decides whether your codebase survives the next two years.

Read more