Skip to content

AI governance

AI you can switch on without losing the thread.

The question is not whether a model can draft a note. It is whether you can say, months later, which model drafted it, what it was allowed to see, who approved it, and what would have happened if nobody had. Every AI capability in Forged Med is built to answer that.

One gateway

No product code ever calls a model directly.

Every AI call passes through a single abstraction that knows the workflow, the risk tier, and whether the payload contains PHI. That is what makes the rest of this page enforceable rather than aspirational.

  1. 01

    Context is built

    Workflow, risk tier, PHI flag, and correlation id are attached at the call site.

  2. 02

    Eligibility is checked

    A PHI payload can only route to a provider under a BAA and approved for PHI.

  3. 03

    A model is selected

    The registry picks by capability and policy, with failover inside the same rules.

  4. 04

    The action is recorded

    Proposal and execution are both audited, with the model and prompt version.

Every call carries its workflow, risk tier, and PHI flag, and the gateway refuses a provider that is not eligible for the payload. What was sent, and to which model, is on the record afterwards.

Risk tiers

What the model may do without asking.

Every workflow declares a risk tier, and the tier decides the human-in-the-loop rule. This is not a prompt instruction — it is enforced before the call happens.

AI risk tiers and their human-in-the-loop rules
TierTypical workflowRule
LowSummarizing a document you already have openRuns, and is audited.
MediumDrafting a clinical note from a transcriptDrafts only; a human signs.
HighAnything writing to the record or reaching a patientBlocked until a human approval grant is presented.

Your setting, not ours

Four levels of autonomy. Your practice picks, per domain.

The clinical default is draft-plus-signature. A practice that wants no AI in a domain sets that, and the gateway refuses those calls — the setting is a policy, not a preference the UI can route around.

  1. 01

    No AI

    The domain is off-limits to models entirely. A valid choice, and one click away.

    no_ai

  2. 02

    Suggest

    The model proposes; nothing it produces is written anywhere.

    ai_suggest

  3. 03

    Draft + sign-off

    The clinical default. AI drafts, a human signs, and both facts are recorded.

    ai_draft_human_signoff

  4. 04

    Autonomous (low risk)

    Reserved for low-risk actions your practice explicitly opts into, still fully audited.

    ai_autonomous_low_risk

Agents

An agent is a manifest, not a personality.

Before an agent runs, it declares what actions it may take and what data classes it may touch. Its effective permissions are the intersection of that manifest and the role it acts on behalf of — an agent can never exceed the person who owns it.

  • Explicit action scope

    The list of operations it may perform, declared in its manifest before it runs.

  • Explicit data scope

    What it may read: the manifest’s scopes, intersected on the server with the permissions of whoever runs it.

  • Published, then switched on

    An agent runs only once published and enabled for the practice, and publishing is recorded in the audit trail.

  • Versioned, not yet governed

    Manifests are stored and versioned: editing a published agent writes the next version as a draft, and publishing retires the one it replaces. There is no second-person approval of a new version and no evaluation gate before release, and an agent calls no tool — a run returns a draft for a person.

Accountability

What it suggested, and what you actually kept.

Most systems record only the final text. That cannot answer the question anybody asks afterwards — whether a clinician exercised judgement or accepted a machine's output. So both are recorded, and the difference between them is on the transparency ledger.

  • What it suggested, and what you kept

    For a coding suggestion, both are hashed into the transparency log and the result is recorded as kept verbatim or edited. For a note draft, the hash of what the model wrote is recorded when it is drafted and the signed text is hashed when it is signed; the two are not yet compared for you. The difference between them is the entire question when somebody asks whether a clinician exercised judgement or accepted a machine’s output — and most systems record only the final text, which cannot answer it.

  • Every code must quote the note

    The coding assistant cites the text supporting each code it proposes. A citation that cannot be found in the note is dropped before you see it, rather than shown and left for you to check.

  • Measured for the failures that matter

    A scored evaluation set that fails a release on over-coding or fabrication specifically, not on an average that hides them. A run that was never measured reports “not measured” and never passes.

  • Minimised before the model sees it

    What reaches a model is reduced to what the task needs. The gateway applies PHI and BAA gating on every call, and no product code reaches a model without passing through it — verified by a sweep of the repository, not by convention.

  • One record can be off-limits

    Autonomy is per patient: a record marked no-AI, or a patient who withheld consent to AI processing, is refused by every AI path that reads a chart before a model sees it. Staff set it from Practice settings with a reason that is kept in the audit log. Only “no AI” changes what the platform does for one patient today; the other three values are recorded on the chart and narrow nothing beyond the practice’s own AI policy. The effectiveness report, what models have actually been doing in your practice, is on the same screen.

Ambient capture and the patient assistant

The two places AI meets a person, not a record.

A scribe listening to a visit and an assistant answering a patient are different from anything else on this page: the subject is in the room. Both are governed by refusals rather than by prompt wording, because a guardrail the model can talk itself out of is not a guardrail.

  • The recording notice is shown, and that it was shown is recorded

    Consent to be recorded is announced rather than buried in an agreement signed years ago. The notice going up is itself an event on the practice’s chain, so “were they told” has an answer that is not somebody’s memory.

  • Withdrawing consent ends the meeting, not a preference file

    A patient who changes their mind mid-visit stops the capture and the visit stops with it. A withdrawal that merely files a flag somebody reads afterwards is not a withdrawal — the recording carried on.

  • The scribe drafts; a clinician signs

    An ambient draft carries its machine origin and joins the record only when a person signs it with their passkey. Nothing promotes a draft on its own, and a signed note cannot then be edited — only amended by a further signed note.

  • Raw audio can be forked to your own pipeline

    The recording is not only ours. A practice can take the audio into its own storage as it is captured, which is what makes “we hold your recordings” a choice you made rather than a condition of using the product. Not a frame is forwarded until the deployment asserts a business associate agreement covering that pipeline, and the recording notice patients see then says the practice may keep the audio instead of promising it is not kept.

  • The patient assistant never calls a model on a crisis message

    Self-harm and emergency language are classified before any model is reached, and answered with the 988 and 911 resources directly. A guardrail written as a system prompt is a request the model usually honours; this one is code that does not make the call.

  • Nor on a request for individual medical advice

    “Should I stop taking this” is routed to the care team with an offer to message them. The detectors deliberately over-match, because a false positive shows somebody a phone number they did not need and a false negative sends somebody in trouble to a language model.

What none of this claims

  • One model provider can be bound, and nothing is bound by default

    The gateway, the model registry, the router, the PHI and BAA gate and the failover path are all real. A deployment can now bind AWS Bedrock — the only vendor here whose protocol is public enough to implement honestly. It has not yet been run against live Bedrock: its protocol details are implemented from AWS’s documentation and tested against a stand-in, so the first real call is still the test. Binding it needs the deployment’s own AWS account, its own BAA covering Bedrock and its own model-access grant, and PHI reaches a model only once a human states that BAA in configuration; the default is that it has not, and the router refuses. No other vendor has an adapter. Binding Bedrock buys chat, and classification served through that same chat model — a label set the caller supplies, an answer outside it rejected, and a confidence reported as the model’s own estimate rather than a measured probability; a governance label it proposes is recorded with what a person confirmed, and nothing applies it to stored content. There is no transcription, so the ambient scribe still reaches nothing, and no embeddings, no dedicated classifier and no token-by-token streaming.

  • No FDA clearance, and no FDA determination

    No AI feature is FDA-cleared, and none has been reviewed by FDA. They are designed to be used as non-device decision support — drafts, summaries and proposals a clinician reviews, and an assistant limited to administrative help and general information — which is our engineering reading, not a regulatory conclusion. Every AI draft shows what it is for, what it is not for, and that it has not been externally validated.

Where AI is not allowed to go

Four things no setting turns on.

Everywhere else on this page, the answer is a dial you control. These four are constants in the code with no setter, because each is where the failure stops being a bad output and becomes a false claim — and a false claim is owed by the practice, not by us. A system that would do these on your behalf is a liability wearing a feature's clothes.

  • Adding a diagnosis the note does not support
  • Any change that increases what the payer pays
  • Editing a claim that has already been filed
  • Posting a remittance whose arithmetic does not reconcile

Two further acts always need a person however you configure the rest: filing a claim, and sending an appeal. Both are assertions to an outside party, and an assertion nobody chose to make is the whole problem.

Watch a note get drafted, then refused.

The most useful part of the demo is the part where the model is stopped: a high-risk action without an approval grant, and the audit entry that records the attempt.

Request a demo