A detection lifecycle with countable gates and a scored backlog.
detect is a working model for running a threat detection engineering program: eight lifecycle stages, a six-input score that orders the backlog, fifteen metrics, and a detection-as-code pipeline that enforces the whole thing in CI. Take all of it or take one piece.
What it is#
A detection engineering program turns threat knowledge into alerts an analyst can act on, and then keeps those alerts worth reading. detect covers that end to end: how a candidate enters the backlog, how it is ranked against everything else waiting, what has to be true before it reaches production, and when it is taken back out. It is written for detections kept as code in Sigma, converted to whatever query language your SIEM speaks, but the stages, the score, and the metrics work the same in a ticket queue.
What sets it apart#
A program that ships rules without a gate on the way in ends up in the same place everywhere: alerts nobody has time to triage, analysts who stop reading them, and a rule count that passes for progress. Detection lifecycle diagrams are easy to find; this one is built to be checked. Every stage exits on a number someone can verify, every score carries a line of evidence per input, and the whole framework lives in one JSON file that renders this site and gates a CI pipeline in the reference repository. A change to a gate changes the prose and the pipeline in the same commit.
Each stage exits on a countable condition: fixtures passing, evidence lines present, days below the precision floor. "The rule is validated" fails review here; "N engine passes, N golden diffs, 1 approval" is the gate.
framework.json drives every page on this site and every lint rule in the repository. Prose and pipeline stay in agreement because both are generated from it.
One Sigma rule converts to eleven query languages, fixtures replay against real engines, CI computes every score, and a hand-edited score fails the build.
Pick up one piece#
Each module stands on its own and has a version small enough to try this week. Using it at your size says what each one fixes, what it needs first, and who holds which role on a one-person team, a team of four, and a program of several teams.
Explore#
The reference pipeline is a public repository: one CI job per gate, one Sigma rule in, eleven query languages out, fixtures replayed, a score computed for every rule, and ATT&CK pinned at the version the rules were checked against. The data behind every page is at /data/framework.json.