Where we use AI, and where we refuse to.
Where ARKA draws hard boundaries — IRE, TCOC, Accountable Justification, and never-auto-deny across six surfaces including ARKA-IP, gold-card, and coverage — as machine-readable firewalls enforced by CI and rendered here without restating the commitments in copy.
Last updated: August 8, 2026
What models do well
Frontier language models are better at answering medical questions than we are, and we are not going to pretend otherwise — Nature Medicine published exactly that result in June 2026, finding general-purpose models outperformed dedicated clinical AI products on medical benchmarks and were preferred by clinicians. Conceding a true thing you cannot win is what buys you the right to the next paragraph.
Vishwanath K, et al. General-purpose large language models outperform specialized clinical AI tools on medical benchmarks. Nature Medicine. 2026. doi:10.1038/s41591-026-04431-5.
What ARKA produces
ARKA does not answer questions. It produces a decision and a transaction — a rating, a protocol, an authorisation packet, a scanner code — and it produces the same one each time. A payer cannot contract against an answer that changes. Where a free-text justification is asked for, the text lives in the patient record under the clinician's credentials; ARKA keeps only the proof that the ask happened.
Permitted vs forbidden
Each table below is generated from the matching docs/*/firewall.json — the same files the module linters emit and CI enforces. The commitments are written once in those artefacts; this page reads them rather than restating them.
ARKA-IRE
Generated from docs/arka-ire/firewall.json (v1.0.0) — the same file npm run lint:ire enforces.
Permitted
- extract candidate clinical elements from free-text notes
- draft the human-readable indication paragraph
- draft the medical-necessity narrative
- draft the patient-facing shared-decision script
Forbidden
- the appropriateness rating
- the approve/deny decision
- the protocol selection
- any safety gate
- anything written to an audit trail or a payer contract
ARKA-TCOC
Generated from docs/arka-tcoc/firewall.json (v1.0.0) — the same file npm run lint:tcoc enforces.
Permitted
- aggregate clinician rates that are risk-adjusted and reliability-adjusted
- organisation- and cohort-level dollar models outside PeerPacket
- monthly peer packets comparing a clinician to top performers (not the mean, not a rank)
- baseline locks that are append-only and hash-chained
- controlled interrupted time series against a pre-registered analysis plan
Forbidden
- PHI (MBI, HICN, SSN, raw memberId/patientId/beneficiaryId) in Row/Cell/Aggregate/Packet types
- unadjusted clinician comparison without riskAdjustment and reliability
- leaderboard, rank, bottom-N or worst-performers ordering on clinician-facing surfaces
- personally attributed dollar fields on PeerPacket
- UPDATE or DELETE on tcoc_baseline_locks
- non-deterministic Date.now / new Date() / Math.random / unordered Set-Map iteration in lib/tcoc
- Stat or Figure object literals without a provenance label
- throw from lib/tcoc except config.ts module-load validation
- joining justification (Module 3) text into peer or ledger aggregates
- joining clinician dispute free text into peer, ledger, stats, group, or incentive aggregates (I10)
- CDS Hooks imports from lib/tcoc (Module 2 is outside the EHR)
- peer imports of lib/tcoc/ledger/raw member-level rows
- peer or incentive import of lib/tcoc/calibration-ledger (outcome signals are claims facts, never a peer-comparison or contribution input)
- IRE (lib/aiie-v4/ire) imports from lib/tcoc/measures or lib/tcoc/stats — IRE is case-detail context only, never a measure/rate input
- Vol III §31.1 copy: 'improves appropriateness' / 'quality improvement' under components/tcoc or lib/tcoc
- send/schedule delivery without requireLockedBaseline (invariant I11)
- Vol III §5.6 / §8.3 tone: outlier / bottom quartile / underperform / non-compliant / 'you must' / violation in peer copy or components/tcoc
- intervening on ordering behaviour before the LEAD benchmark is closed (measure-then-intervene)
- writing to an attribution assignment, HCC code, risk score or coding field outside the ingest boundary (no-attribution-or-risk-adjustment)
- documentation change whose effect is to increase a risk score or a billing level (no-coding-uplift-from-mdm-writeback)
- deriving a contribution figure from a beneficiary-attribution or risk-score field (contribution-attribution-is-not-beneficiary-attribution)
- ARKA setting a default, suggested, or ratcheted group utilisation goal (no-arka-set-utilisation-targets)
- ranking clinicians by unadjusted or absolute level rather than risk-adjusted change from own baseline (CHECK-GOAL-3)
- numeric redundancy window outside lib/tcoc/measures/duplicate-spec.ts (CHECK-DUP-1)
- duplicate figure on a public surface without a Provenance Chip and sensitivity label (CHECK-DUP-2)
- unreconciled duplicate cascade (CHECK-DUP-3)
- expansive duplicate exclusion (CHECK-DUP-4)
- the words savings, saved or ROI in the duplicate module or its rendered output (CHECK-DUP-5)
- per-clinician duplicate count on a clinician-facing artefact (CHECK-DUP-6)
- a payer-authored or utilisation-management source informing clinical appropriateness (no-payer-criteria-in-appropriateness)
- a default GRADE certainty assigned outside a matrix entry or test fixture (CHECK-GRADE-1)
- certaintyRationale copied from the clinical rationale or shorter than 40 characters (CHECK-GRADE-2)
- a certainty-history point with a change and neither panelRecordId nor content-commit SHA (CHECK-CERT-1)
- an artefact summary-statistic change without a named changelog row (CHECK-DIFF-1)
- a top-fifty abstention rate above the measured ceiling (CHECK-ABST-1)
- a certainty census renderer that shows only one series (CHECK-CERT-DUAL-1)
- unpublished panel decisions, including adverse decisions (panel-decisions-are-published-including-adverse)
- a conflicted chair or co-chair of the evidence panel (no-conflicted-chair)
- a knowledge-matrix certainty change without a signed panel-record decision row (CHECK-PANEL-1)
- a conflicted evidence-panel chair on a signed record (CHECK-PANEL-2)
- conflicted members constituting a majority of a panel session (CHECK-PANEL-3)
- a panel decision with an empty rationale (CHECK-PANEL-4)
- a panel record in which every decision raises certainty (CHECK-PANEL-5)
- a hand-edited evidence-panel review-queue ordering (CHECK-QUEUE-1)
- billing language in a clinical write-back template, UI copy or marketing (no-billing-language-in-clinical-writeback)
- write-back module reachable from attribution, ledger or incentive (no-writeback-in-attribution-or-incentive-path)
- published figures derived from note counts or note-write rate as clinician engagement (CHECK-CF-5)
- a commitment-device register row naming a JSON path that does not resolve (CHECK-CD-2)
- assigning a less favourable appropriateness rating because of care setting (no-care-setting-penalty)
- in-person evaluation in place of a study that the indication supports (no-in-person-evaluation-as-study-substitute)
- counting an in_person_evaluation recommendation as avoided spend (CHECK-IPE-SPEND-1)
ARKA-AJ
Generated from docs/arka-aj/firewall.json (v1.0.0) — the same file npm run lint:aj enforces.
Permitted
- asking a clinician for a free-text clinical justification on a low-appropriateness advanced-imaging order, at signature, without blocking
- writing that justification into the patient's record with the clinician's own credentials
- keeping a hash, a length and a timestamp so the mechanism can be shown to have been present
- publishing the fire-rate ceilings and the measured fire rate
Forbidden
- storing, logging, transmitting to a third party, or reading justification text
- joining justification text or its hash to any performance measure, peer packet, ledger cell, incentive computation or clinician-level aggregate
- blocking, delaying or conditioning an order signature
- requiring a minimum length, a structured taxonomy, or a selection in place of free text
- firing above the published ceilings
- raising a fire-rate ceiling in exchange for a commercial concession
- claiming an effect for a deployment where the record write is unavailable
Never auto-deny
Generated from docs/never-deny-firewall.json (v1.3.0) — the same file npm run lint:never-deny enforces.
Permitted
- auto-approve when appropriateness and policy support approval
- route a case to clinical review when a human determination is needed
- adverse determination (deny / modify / downgrade) only with a verified licensed-physician reviewer identity
- ARKA-IP: recommend a second review of an inpatient imaging order
- gold-card: report not-qualified or insufficient-history; the plan decides
- coverage: report covers / does-not-cover / indeterminate from a named rulebook
Forbidden
- auto-deny
- adverse determination without a licensed-physician reviewer
- recording an adverse determination under ARKA_AUTOMATED_ACTOR_ID
- UPDATE or DELETE on the append-only ins_reviewer_decisions audit table for the application role
- expanding licensed-physician credentials beyond MD / DO / MBBS without clinical sign-off
- importing the coverage adapter from lib/aiie* or the appropriateness scorer from the coverage adapter
- ARKA-IP: cancel, convert, hold, or set the status of an order
- gold-card: recommend review or deny of a clinician's orders from a qualification file
- coverage: recommend denial of an order from a criteria source
Surfaces
- ARKA-INS
- ARKA-CLIN
- ARKA-IRE
- ARKA-IP
- gold-card
- coverage
Enforcement
This is not a policy. Each firewall names the mechanisms that keep the claim and the build artefact from diverging:
ARKA-IRE
import-boundary testdecision-surface testruntime assertNoModelDerivedInputnpm run lint:ire
ARKA-TCOC
CHECK-I1-PHICHECK-I2-ADJUSTCHECK-I3-RANKCHECK-I4-DOLLARSCHECK-I5-LOCKCHECK-I6-DETERMCHECK-I7-PROVCHECK-I9-THROWCHECK-I10-JUSTIFCHECK-I10-DISPUTECHECK-I11-GUARDCHECK-ARCH-HOOKSCHECK-ARCH-LAYERCHECK-CAL-LEDGER-1CHECK-ARCH-IRECHECK-COPY-VARIANCECHECK-TONECHECK-LEAD-MTICHECK-ATTR-1CHECK-ATTR-2CHECK-INC-1CHECK-INC-2CHECK-INC-3CHECK-INC-4CHECK-INC-5CHECK-GOAL-1CHECK-GOAL-2CHECK-GOAL-3CHECK-CD-1CHECK-CD-2CHECK-DUP-1CHECK-DUP-2CHECK-DUP-3CHECK-DUP-4CHECK-DUP-5CHECK-DUP-6CHECK-APPR-1CHECK-GRADE-1CHECK-GRADE-2CHECK-CERT-1CHECK-DIFF-1CHECK-ABST-1CHECK-CERT-DUAL-1CHECK-CHARTER-PUBLISHCHECK-CHARTER-CHAIRCHECK-PANEL-1CHECK-PANEL-2CHECK-PANEL-3CHECK-PANEL-4CHECK-PANEL-5CHECK-QUEUE-1CHECK-CF-1CHECK-CF-2CHECK-CF-5CHECK-CS-3CHECK-IPE-SPEND-1npm run lint:tcoc
ARKA-AJ
CHECK-J1-BLOCKINGCHECK-J1-NO-BLOCKCHECK-J2-RECEIPTCHECK-J3-STRUCTURECHECK-J3-NO-TAXONOMYCHECK-J5-JOINCHECK-J5-EXPOSURECHECK-J5-BRIDGECHECK-J6-NOTEXTCHECK-J6-HASH-ALLOWLISTCHECK-TONECHECK-J9-THROWCHECK-J10-DETERMCHECK-J12-ARMCHECK-NO-PLACEHOLDER-WRITECHECK-L3-NO-JUSTIFICATIONCHECK-COH-1CHECK-COH-2CHECK-SEL-1CHECK-SEL-2CHECK-CEIL-1CHECK-CEIL-2CHECK-ACC-1CHECK-SENT-1CHECK-BURD-1CHECK-BURD-2CHECK-BURD-3CHECK-BURD-4CHECK-BURD-5CHECK-BURD-6npm run lint:aj
Never auto-deny
CHECK-ND-1CHECK-ND-2CHECK-ND-3CHECK-ND-4CHECK-ND-5CHECK-ND-6CHECK-ND-7CHECK-ND-8CHECK-ND-9evaluateReviewerAuthorizationlib/arka-ip/never-deny.tsnpm run lint:never-denyCHECK-GC-4npm run lint:gold-cardlib/coverage/**
Grounding rule
A model may propose a coded element with a verbatim quote. We locate that quote in the source text ourselves. If it is not there character-for-character, the element is discarded — not flagged, not reviewed. Discarded. There is no fuzzy match, because fuzzy matching is how hallucinations get through.
Build artefacts
An engineer evaluating you will check. Finding that each JSON below is the same file CI and the import-boundary tests enforce is worth more than any paragraph we could write.
docs/arka-ire/firewall.json
{
"version": "1.0.0",
"permitted": [
"extract candidate clinical elements from free-text notes",
"draft the human-readable indication paragraph",
"draft the medical-necessity narrative",
"draft the patient-facing shared-decision script"
],
"forbidden": [
"the appropriateness rating",
"the approve/deny decision",
"the protocol selection",
"any safety gate",
"anything written to an audit trail or a payer contract"
],
"enforcement": [
"import-boundary test",
"decision-surface test",
"runtime assertNoModelDerivedInput",
"npm run lint:ire"
]
}docs/arka-tcoc/firewall.json
{
"version": "1.0.0",
"permitted": [
"aggregate clinician rates that are risk-adjusted and reliability-adjusted",
"organisation- and cohort-level dollar models outside PeerPacket",
"monthly peer packets comparing a clinician to top performers (not the mean, not a rank)",
"baseline locks that are append-only and hash-chained",
"controlled interrupted time series against a pre-registered analysis plan"
],
"forbidden": [
"PHI (MBI, HICN, SSN, raw memberId/patientId/beneficiaryId) in Row/Cell/Aggregate/Packet types",
"unadjusted clinician comparison without riskAdjustment and reliability",
"leaderboard, rank, bottom-N or worst-performers ordering on clinician-facing surfaces",
"personally attributed dollar fields on PeerPacket",
"UPDATE or DELETE on tcoc_baseline_locks",
"non-deterministic Date.now / new Date() / Math.random / unordered Set-Map iteration in lib/tcoc",
"Stat or Figure object literals without a provenance label",
"throw from lib/tcoc except config.ts module-load validation",
"joining justification (Module 3) text into peer or ledger aggregates",
"joining clinician dispute free text into peer, ledger, stats, group, or incentive aggregates (I10)",
"CDS Hooks imports from lib/tcoc (Module 2 is outside the EHR)",
"peer imports of lib/tcoc/ledger/raw member-level rows",
"peer or incentive import of lib/tcoc/calibration-ledger (outcome signals are claims facts, never a peer-comparison or contribution input)",
"IRE (lib/aiie-v4/ire) imports from lib/tcoc/measures or lib/tcoc/stats — IRE is case-detail context only, never a measure/rate input",
"Vol III §31.1 copy: 'improves appropriateness' / 'quality improvement' under components/tcoc or lib/tcoc",
"send/schedule delivery without requireLockedBaseline (invariant I11)",
"Vol III §5.6 / §8.3 tone: outlier / bottom quartile / underperform / non-compliant / 'you must' / violation in peer copy or components/tcoc",
"intervening on ordering behaviour before the LEAD benchmark is closed (measure-then-intervene)",
"writing to an attribution assignment, HCC code, risk score or coding field outside the ingest boundary (no-attribution-or-risk-adjustment)",
"documentation change whose effect is to increase a risk score or a billing level (no-coding-uplift-from-mdm-writeback)",
"deriving a contribution figure from a beneficiary-attribution or risk-score field (contribution-attribution-is-not-beneficiary-attribution)",
"ARKA setting a default, suggested, or ratcheted group utilisation goal (no-arka-set-utilisation-targets)",
"ranking clinicians by unadjusted or absolute level rather than risk-adjusted change from own baseline (CHECK-GOAL-3)",
"numeric redundancy window outside lib/tcoc/measures/duplicate-spec.ts (CHECK-DUP-1)",
"duplicate figure on a public surface without a Provenance Chip and sensitivity label (CHECK-DUP-2)",
"unreconciled duplicate cascade (CHECK-DUP-3)",
"expansive duplicate exclusion (CHECK-DUP-4)",
"the words savings, saved or ROI in the duplicate module or its rendered output (CHECK-DUP-5)",
"per-clinician duplicate count on a clinician-facing artefact (CHECK-DUP-6)",
"a payer-authored or utilisation-management source informing clinical appropriateness (no-payer-criteria-in-appropriateness)",
"a default GRADE certainty assigned outside a matrix entry or test fixture (CHECK-GRADE-1)",
"certaintyRationale copied from the clinical rationale or shorter than 40 characters (CHECK-GRADE-2)",
"a certainty-history point with a change and neither panelRecordId nor content-commit SHA (CHECK-CERT-1)",
"an artefact summary-statistic change without a named changelog row (CHECK-DIFF-1)",
"a top-fifty abstention rate above the measured ceiling (CHECK-ABST-1)",
"a certainty census renderer that shows only one series (CHECK-CERT-DUAL-1)",
"unpublished panel decisions, including adverse decisions (panel-decisions-are-published-including-adverse)",
"a conflicted chair or co-chair of the evidence panel (no-conflicted-chair)",
"a knowledge-matrix certainty change without a signed panel-record decision row (CHECK-PANEL-1)",
"a conflicted evidence-panel chair on a signed record (CHECK-PANEL-2)",
"conflicted members constituting a majority of a panel session (CHECK-PANEL-3)",
"a panel decision with an empty rationale (CHECK-PANEL-4)",
"a panel record in which every decision raises certainty (CHECK-PANEL-5)",
"a hand-edited evidence-panel review-queue ordering (CHECK-QUEUE-1)",
"billing language in a clinical write-back template, UI copy or marketing (no-billing-language-in-clinical-writeback)",
"write-back module reachable from attribution, ledger or incentive (no-writeback-in-attribution-or-incentive-path)",
"published figures derived from note counts or note-write rate as clinician engagement (CHECK-CF-5)",
"a commitment-device register row naming a JSON path that does not resolve (CHECK-CD-2)",
"assigning a less favourable appropriateness rating because of care setting (no-care-setting-penalty)",
"in-person evaluation in place of a study that the indication supports (no-in-person-evaluation-as-study-substitute)",
"counting an in_person_evaluation recommendation as avoided spend (CHECK-IPE-SPEND-1)"
],
"enforcement": [
"CHECK-I1-PHI",
"CHECK-I2-ADJUST",
"CHECK-I3-RANK",
"CHECK-I4-DOLLARS",
"CHECK-I5-LOCK",
"CHECK-I6-DETERM",
"CHECK-I7-PROV",
"CHECK-I9-THROW",
"CHECK-I10-JUSTIF",
"CHECK-I10-DISPUTE",
"CHECK-I11-GUARD",
"CHECK-ARCH-HOOKS",
"CHECK-ARCH-LAYER",
"CHECK-CAL-LEDGER-1",
"CHECK-ARCH-IRE",
"CHECK-COPY-VARIANCE",
"CHECK-TONE",
"CHECK-LEAD-MTI",
"CHECK-ATTR-1",
"CHECK-ATTR-2",
"CHECK-INC-1",
"CHECK-INC-2",
"CHECK-INC-3",
"CHECK-INC-4",
"CHECK-INC-5",
"CHECK-GOAL-1",
"CHECK-GOAL-2",
"CHECK-GOAL-3",
"CHECK-CD-1",
"CHECK-CD-2",
"CHECK-DUP-1",
"CHECK-DUP-2",
"CHECK-DUP-3",
"CHECK-DUP-4",
"CHECK-DUP-5",
"CHECK-DUP-6",
"CHECK-APPR-1",
"CHECK-GRADE-1",
"CHECK-GRADE-2",
"CHECK-CERT-1",
"CHECK-DIFF-1",
"CHECK-ABST-1",
"CHECK-CERT-DUAL-1",
"CHECK-CHARTER-PUBLISH",
"CHECK-CHARTER-CHAIR",
"CHECK-PANEL-1",
"CHECK-PANEL-2",
"CHECK-PANEL-3",
"CHECK-PANEL-4",
"CHECK-PANEL-5",
"CHECK-QUEUE-1",
"CHECK-CF-1",
"CHECK-CF-2",
"CHECK-CF-5",
"CHECK-CS-3",
"CHECK-IPE-SPEND-1",
"npm run lint:tcoc"
]
}docs/arka-aj/firewall.json
{
"version": "1.0.0",
"permitted": [
"asking a clinician for a free-text clinical justification on a low-appropriateness advanced-imaging order, at signature, without blocking",
"writing that justification into the patient's record with the clinician's own credentials",
"keeping a hash, a length and a timestamp so the mechanism can be shown to have been present",
"publishing the fire-rate ceilings and the measured fire rate"
],
"forbidden": [
"storing, logging, transmitting to a third party, or reading justification text",
"joining justification text or its hash to any performance measure, peer packet, ledger cell, incentive computation or clinician-level aggregate",
"blocking, delaying or conditioning an order signature",
"requiring a minimum length, a structured taxonomy, or a selection in place of free text",
"firing above the published ceilings",
"raising a fire-rate ceiling in exchange for a commercial concession",
"claiming an effect for a deployment where the record write is unavailable"
],
"enforcement": [
"CHECK-J1-BLOCKING",
"CHECK-J1-NO-BLOCK",
"CHECK-J2-RECEIPT",
"CHECK-J3-STRUCTURE",
"CHECK-J3-NO-TAXONOMY",
"CHECK-J5-JOIN",
"CHECK-J5-EXPOSURE",
"CHECK-J5-BRIDGE",
"CHECK-J6-NOTEXT",
"CHECK-J6-HASH-ALLOWLIST",
"CHECK-TONE",
"CHECK-J9-THROW",
"CHECK-J10-DETERM",
"CHECK-J12-ARM",
"CHECK-NO-PLACEHOLDER-WRITE",
"CHECK-L3-NO-JUSTIFICATION",
"CHECK-COH-1",
"CHECK-COH-2",
"CHECK-SEL-1",
"CHECK-SEL-2",
"CHECK-CEIL-1",
"CHECK-CEIL-2",
"CHECK-ACC-1",
"CHECK-SENT-1",
"CHECK-BURD-1",
"CHECK-BURD-2",
"CHECK-BURD-3",
"CHECK-BURD-4",
"CHECK-BURD-5",
"CHECK-BURD-6",
"npm run lint:aj"
]
}docs/never-deny-firewall.json
{
"version": "1.3.0",
"surfaces": [
"ARKA-INS",
"ARKA-CLIN",
"ARKA-IRE",
"ARKA-IP",
"gold-card",
"coverage"
],
"permitted": [
"auto-approve when appropriateness and policy support approval",
"route a case to clinical review when a human determination is needed",
"adverse determination (deny / modify / downgrade) only with a verified licensed-physician reviewer identity",
"ARKA-IP: recommend a second review of an inpatient imaging order",
"gold-card: report not-qualified or insufficient-history; the plan decides",
"coverage: report covers / does-not-cover / indeterminate from a named rulebook"
],
"forbidden": [
"auto-deny",
"adverse determination without a licensed-physician reviewer",
"recording an adverse determination under ARKA_AUTOMATED_ACTOR_ID",
"UPDATE or DELETE on the append-only ins_reviewer_decisions audit table for the application role",
"expanding licensed-physician credentials beyond MD / DO / MBBS without clinical sign-off",
"importing the coverage adapter from lib/aiie* or the appropriateness scorer from the coverage adapter",
"ARKA-IP: cancel, convert, hold, or set the status of an order",
"gold-card: recommend review or deny of a clinician's orders from a qualification file",
"coverage: recommend denial of an order from a criteria source"
],
"enforcement": [
"CHECK-ND-1",
"CHECK-ND-2",
"CHECK-ND-3",
"CHECK-ND-4",
"CHECK-ND-5",
"CHECK-ND-6",
"CHECK-ND-7",
"CHECK-ND-8",
"CHECK-ND-9",
"evaluateReviewerAuthorization",
"lib/arka-ip/never-deny.ts",
"npm run lint:never-deny",
"CHECK-GC-4",
"npm run lint:gold-card",
"lib/coverage/**"
]
}Related: Indication reconstruction, Evidence, Trust.