Skip to main content
Signals are the atomic unit of evidence in Heretic. Every signal has a stable ID, an evidence family, a tier that determines how much weight it carries, and a human-readable headline that surfaces in the explain endpoint response. When Heretic evaluates a session, it collects signals across up to six families and combines them into a single verdict.

Signal ID format

Signal IDs follow the pattern family-prefix.descriptor — for example, geo.rtt-below-vacuum. The prefix maps to the evidence family that produced the signal, and the descriptor names the specific contradiction or observation. Because signal IDs are stable, you can safely key policy rules on them without worrying about renaming between releases.

Signal catalogue

The table below lists every signal currently in the catalogue. The Tier column tells you how the signal contributes to a verdict: an absolute signal is sufficient on its own; composite signals are strong but benefit from corroboration; conditional signals apply only when supporting context is present; weak signals contribute but never dominate.

Evidence families

Each signal belongs to one of six evidence families. Heretic reads families independently so that a spoofed value in one family cannot suppress a contradiction detected in another.

Signal tiers

The tier field in every API response tells you the tier for each signal present in that session. You can read it at session.signals[n].tier.
Two composite signals from different families carry more weight than two composite signals from the same family. Cross-family corroboration is the fastest path to a conclusive verdict.
The signal catalogue may expand as new measurement techniques are added. Signal IDs are stable and safe to key policy rules on — existing IDs will not be renamed or removed.