Skip to content
Guardrail conformance · Live self-test

What the guardrails actually did, the last time anyone checked

A probe creates a synthetic patient, drives real requests through the running stack, and records what comes back. Every line below is something it observed. Nothing here is asserted by hand, and the failures are printed at the same weight as the passes.

Measured against
https://app.healthclaw.io
This page
fetched that report
Tenant
conformance-selftest
Run at (UTC)
2026-08-12T07:18:54Z
Served from
a fresh run
A
Grade
7/7 Properties passed
35 Individual checks run
0 Checks failed
1 Properties graded on partial coverage
The results

Seven properties, 35 checks

Open a property to see every check inside it and what the probe observed. The bars are one mark per check, so a property resting on two probes looks thinner than one resting on seventeen. It is thinner. What each property means →

01 PHI Redaction pass 17 checks detail

Probed Patient/e188ab9a-f33b-4572-8a67-a560c23d26e7 in the self-test tenant.

  • PASS synthetic patient created
  • PASS read succeeds status 200
  • PASS the redacted record is still returned
  • PASS family name not returned in full
  • PASS given name not returned in full
  • PASS SSN-class identifier masked
  • PASS phone number stripped
  • PASS street address stripped
  • PASS search succeeds status 200
  • PASS the search returns the resource it was asked for
  • PASS family name not returned in full (search)
  • PASS given name not returned in full (search)
  • PASS SSN-class identifier masked (search)
  • PASS phone number stripped (search)
  • PASS street address stripped (search)
  • PASS a recognised code is re-labelled after redaction status 200; expected 'Cholesterol (total)'
  • PASS the upstream display did not survive
02 Immutable Audit Trail pass 3 checks detail
  • PASS AuditEvent endpoint readable status 200
  • PASS resource READ is recorded in the audit trail
  • PASS no raw SSN in the audit trail
03 Step-Up Authorization pass 3 checks detail
  • PASS write without step-up token is rejected (401) status 401
  • PASS write with a forged step-up token is rejected (401) status 401
  • PASS write carrying a valid step-up token is accepted status 201
04 Human-in-the-Loop pass 2 checks detail
Limit recorded by the harness the confirmation header is supplied by the probe: this grades the gate, not the human attestation behind it (#214)
  • PASS clinical write without human confirmation is blocked (428) status 428
  • PASS confirmed clinical write is accepted status 201
05 Tenant Isolation pass 2 checks detail
  • PASS resource is not readable from another tenant status 401, id=None
  • PASS resource IS readable from its own tenant status 200
06 Medical Disclaimers pass 2 checks detail

Probed Observation/ed5a535b-5d2d-4a1b-b066-779413f35f26 in the self-test tenant.

  • PASS clinical read carries a medical disclaimer
  • PASS the disclaimer accompanies the clinical record, not an error status 200
07 Error Fidelity pass grade A coverage: local-fhir-only 6 checks detail
  • PASS strict unknown parameter is rejected grade A; status 400
  • PASS strict rejection is audited as a failure grade A
  • PASS lenient unknown parameter carries an outcome warning grade A; status 200
  • PASS lenient warning is audited truthfully grade A
  • PASS unsupported modifier is rejected grade A; statuses 400,400,400
  • PASS unsupported modifier rejections are audited as failures grade A
Scope

What this grade does not cover

Listed at the same weight as the result, because you would find them anyway and finding them yourself is worse.

Error Fidelity was graded on partial coverage

Coverage is local-fhir-only, not full. The grade for this property describes only the surface named there.

Human-in-the-Loop

the confirmation header is supplied by the probe: this grades the gate, not the human attestation behind it (#214)

Not graded: read authentication

whether an unauthenticated caller can read another tenant's records. READ_AUTH_ENABLED defaults off and is off in this harness's fixture, so a deployment serving records to strangers scores what a gated one scores (#401)

Not graded: the action rail's separation

that propose, commit and confirm cannot be collapsed into one step

Not graded: step-up refusals beyond a forged token

expired, cross-tenant, read-scope-on-write and replayed-nonce are each verified by unit tests, none by this harness

Not graded: redaction on $lastn and SubscriptionTopic/$list

graded on reads and searches, not on these two operations

Not graded: rate limiting, the mint gate, and purge

no probe exercises any of them, so this grade says nothing about whether a caller can flood the API, mint a token they should not have, or leave data behind after a delete

It is a self-test, not an audit

The deployment grades itself. There is no SOC 2 and no HITRUST report behind this number. It says the controls fired on a synthetic record a moment ago; it says nothing about the organisation running the deployment, its hosting, or its staff. The full posture, including what is missing →

It ran against synthetic data only

Writes land in a dedicated conformance-selftest tenant. No real record is read or written to produce this page.

Verify

Do not take this page's word for it

The endpoint is public and unauthenticated. Run it yourself; the harness runs on request, so what you get is what is true when you ask.

# the same report this page rendered, as JSON
curl https://app.healthclaw.io/r6/fhir/$conformance

# a human-readable scorecard, and a fresh run rather than the cache
curl 'https://app.healthclaw.io/r6/fhir/$conformance?format=text&fresh=1'

# 200 at grade A, 503 below it — so an uptime check can watch the guardrails
curl -o /dev/null -w '%{http_code}\n' https://app.healthclaw.io/r6/fhir/$conformance
About this host

You are on the read-only deployment. It serves the site from ephemeral serverless storage and refuses every write to a clinical path with a 405, so it cannot run the harness — the report above was fetched from https://app.healthclaw.io, which can. That is also where the interactive demo runs; buttons here would return 405, so there are none.