Introducing Semfora: a structural map of your codebase, rebuilt on every merge
Across 52 real bugs in 11 public repositories, the code that later needed the fix was already sitting at the 92nd percentile of our complexity metric before the bug was ever filed. That measurement is the reason Semfora exists, so it goes first.
Most tools that claim to understand your code are reading text. They grep, they pattern-match, they summarize, and if you ask twice you can get two different stories about the same commit. Semfora takes a different job: on every merge it compiles your repository into a queryable map of structure and history, then serves that one map to three surfaces. The dashboard your leads read, the AI chat your team questions, and the PR gate your CI trusts all answer from the same place. Same question, same commit, same answer, with the file and line attached.
What we actually measure
Three numbers do most of the work. A structure score tracks how modular a file is and how much the rest of the codebase leans on it. Critical code marks the load-bearing paths, the places where a change ripples furthest. Design alignment measures how closely a change follows the patterns already in the codebase instead of inventing new ones.
None of these are vibes. Each one is computed from the map, deterministically, and each one comes back with the evidence that produced it.
Risk concentrates
The 92nd-percentile result above is the claim we keep coming back to. Risk does not spread itself evenly across a codebase; it concentrates, and it concentrates in places you can measure before the incident instead of naming in the postmortem afterward. A tool that can point at those places while the change is still on a pull request is worth more than any amount of after-the-fact archaeology.
Source stays yours
Analysis runs in an ephemeral container and stores names and numbers only. There is no field in our data model that can hold your source code, a snippet, or a diff. When the run finishes, the workspace is deleted.
If that sounds like the tool you wished for during your last postmortem, the rest of this blog is where we show our work. Claims that do not survive measurement do not get published.
Comments
to join the conversation.