← Back to handbook

HOW IT WORKS · POSTURE

Posture: how it works what the 0–100 score on an agent means

Posture is a 0–100 quality score Helmwart computes for every agent. It summarises how much of the agent’s threat surface has working mitigations attached, weighted by how severe each underlying threat is. This page explains where to find the score, what feeds it, how each finding earns credit, why severity moves the number more than count, and the one case where 100 doesn’t mean what it looks like.

Where you see posture

Two places put posture in front of you. Hover an agent on the canvas (without selecting it) and the rich popover that appears includes a POSTURE row near the bottom: a label, a horizontal bar, and the numeric value. Switch the canvas from the default Threats view to the Posture view and every agent card grows a small coloured pill in the corner with its score (green for healthy, amber for middling, red for poor). The default Threats view does not show posture on the cards; those corner badges are threat counts, not posture.

The right drawer — the side panel that opens when you click an agent — carries it too, in a group headed COMPUTED POSTURE, marked derived · read-only: three cells for SCORE, FINDINGS and CONTROLS (placed out of recommended). The agent detail view shows the same number under a plainer name, mitigation coverage, which is what the score actually is.

Posture is a quality metric, not a verdict. A 92 does not mean the agent is safe; it means most of what Helmwart has identified on the agent has something attached to it.

What posture measures

For each agent, Helmwart collects every threat finding that applies to it. That includes findings tagged directly on the agent and findings tagged on any edge that touches the agent, because an edge into or out of an agent is part of that agent’s surface.

Each finding carries two pieces of information that feed the score:

  • Its remediation status, one of five: open, planned, in-place, accepted, or not-applicable. A status you set by hand wins. Where you have not set one, it is derived from the controls you have attached.
  • Its residual severity — the severity that is left after the controls attached to it have been counted. Each threat definition supplies a base severity (info, low, medium, high, critical), and attaching a control steps it down from there. The residual figure is the one that carries weight in the score; the base severity is only where it starts.

How each finding earns credit

  • in-place: full credit. A control is attached and is doing its job.
  • accepted: full credit, and no control is required. This is the risk you have looked at and decided to live with. It scores exactly as well as a finding you fixed, which is deliberate — the point of the score is how much of the surface has been dealt with, and a conscious acceptance is a decision, not a gap.
  • planned: no credit. A plan attaches no control, moves no severity and adds no defence layer, so it cannot raise a security score. It is still counted as in progress, which is where you look for what is coming.
  • in progress (derived, not set by hand): half credit. A control is attached and has brought the severity partway down without reaching info. This is the only half credit the score gives, and it is paid for a control that exists rather than for an intention.
  • open: no credit. Nothing is attached and no decision has been made.
  • not-applicable: excluded from the score entirely. It counts neither for nor against: it leaves the numerator and the denominator both. Marking a finding not-applicable does not improve the score by adding credit — it improves it by removing the question.

The score is the share of available severity weight that has earned credit this way, where the weight comes from each finding's residual severity rather than its base. That distinction matters: a critical finding that controls have brought down to info weighs 1 in the sum, not the 4 it started at. Fixing something shrinks the problem as well as paying for it.

Two consequences of that are worth knowing before you read a number. An agent whose findings are all accepted scores 100 while carrying open risk. And an agent whose findings are all not-applicable also scores 100, because nothing is left to weigh.

Why severity moves the number more than count

Residual severity sets each finding’s weight in the sum: critical weighs 4, high 3, medium 2, low 1.5, info 1. A critical finding weighs four times as much as an info one, so addressing a single critical can move the number more than addressing three low-rated findings.

This is deliberate. A long list of low-rated findings should not be allowed to dilute a critical that nobody has touched. The weighting forces the score to track where the real risk sits.

When 100 means “not assessed”, not “safe”

An agent with zero applicable findings comes back with posture 100 in the underlying data, because there is no weight to divide by. The display refuses to show that number. In the drawer’s SCORE cell you get an intrinsic reading instead — a level derived from the agent’s own properties rather than from any rule that fired, or n/a where even that cannot be worked out. Hover it and the tooltip says so: Intrinsic (no rule fired).

The reason is honest. Helmwart’s threat rules matched nothing on this node. The surface has not been assessed; the surface has not been cleared.

Treat it as a prompt to look at the agent more closely, or to widen the threat rules that should be matching it. It is not a confirmation that the agent is fine.

Walking through one example

Picture an agent with three findings, where you have set each status by hand rather than letting attached controls derive it. That distinction is load-bearing, and it is the reason the numbers below work out as they do: a status you set wins over the derived one, so a critical you mark in-place yourself stays critical and keeps its weight of 4. Had a control brought it there instead, its residual severity would have fallen to info and it would weigh 1 — full credit on a much smaller share of the total.

  • A critical finding (weight 4), marked in-place. Credit: 4 × 1.0 = 4.
  • A high finding (weight 3), marked planned. Credit: 3 × 0 = 0.
  • A medium finding (weight 2), left open. Credit: 2 × 0 = 0.

Total credit earned: 4. Total weight available: 4 + 3 + 2 = 9. Score: (4 ÷ 9) × 100 ≈ 44.

To move the number up, the high is the biggest single step: attaching a control for it adds 3, taking the score to 78. Dealing with the open medium adds 2, taking it to 67. The critical is already paid for. Marking the medium not-applicable instead reaches 57 — not by earning credit, but by leaving the sum entirely: 4 ÷ 7, where the denominator lost the medium’s weight of 2.

Note what the planned high does to the score, which is nothing. That is deliberate. A score that rises when you write down an intention tells you how much you have decided to do, and a security posture is supposed to tell you how much is actually standing between an attacker and the system.

Posture vs the leak-path marker

Posture and the leak-path marker measure different things and can disagree by design.

Posture is a continuous quality metric tracking how well the findings on an agent have been addressed. The leak-path marker is a topology check that fires before any specific finding is rated: does this agent sit at the intersection of private data, untrusted input, and an outbound channel? An agent can have a posture of 92 and still carry the marker. An agent can have low posture and no marker, if its findings are bad but its capability set is narrow.

Treat the marker as a hard gate: fix it or accept the design risk. Treat posture as a continuous quality signal to track over time.