Reasoning Audit Layer · B2B adoption brief · v0.1

After the Answer Comes Back

The design space for effectiveness evidence in a reasoning audit layer

The evidence chain in governance products stops at what the organisation said. Nobody produces evidence of what the user received. The regulation actually asks for the latter — Art. 50 says clear and distinguishable, Law 25 says informed, PIPEDA says meaningful. Those three adjectives describe something that happens in a person's head. A checklist cannot answer that. A document cannot either.
This brief splits the audit layer into four insertion points in a B2B setting. Each one is a place the existing governance stack does not cover. Each one has an acceptable module candidate and a falsifiable prediction.

Joshua Hsiao · 2026-08 · v0.1 · Every prediction is dated and falsifiable — see the Prediction Ledger · Agent-readable payload in §7

§0In one sentenceExecutive

The audit layer is not another module in the governance stack. It is the counterparty that stack never had — standing next to the person who received the AI output.

Do toB first: the institution deploys, and is accountable to its own users. The first partner is Shielk, not because of content or marketing, but because of architecture — they already sit on the intercept between user and model, and they only use the outbound direction. The inbound direction is empty.

§1Reading frame · three kinds of compliance evidenceWho can evidence the adjectives in the regulation?

Behind every compliance claim sits a type of evidence. The market only produces the first two. The regulation's test is written on the third. The commercial logic of this brief sits in that gap.

Evidence Type 1
Existence evidence · checklist
Is the component on the screen. Cheap, automatable, regression-testable. Proves "we put a disclosure there." Does not prove it did anything. Today's UI audit tools all stop here.
Evidence Type 2
Process evidence · documents
PIA / ÉFVP, ROPA, Model Card, FRIA. Proves the organisation thought about it, wrote it down, and someone signed. This is what platforms like Valdra produce, and the only thing B2B procurement currently accepts.
Evidence Type 3 · The gap
Effectiveness evidence · live measure
Did the reader receive it, and did it change the judgment. The only evidence type that maps onto clear / informed / meaningful. Needs subjects, counterbalancing, and a behaviour log — no governance product is producing it.

Where this layer sits: it does not compete with Type 1 or Type 2. It supplies the third kind, the only one that makes those two claims stand up. For a partner, this is an evidence upgrade of their existing line, not a replacement.

§2Four insertion pointsI1 → I4 · in deployment order

From the question going out to the evidence coming back, the audit layer has four places that must land. The first two are engineering. The third is the variable this POC is measuring. The fourth is the commercial close.

I1 · Intercept

Inbound intercept — turn the proxy around

Outbound already has an owner. The return trip does not.
Scene

A de-identification proxy sits between the user and the model. Before send, it tells you which fields will be masked. When the answer comes back, nobody on that same pipe looks at it. It lands in front of the user as-is. The user has to decide whether this answer can be trusted, and is holding nothing.

Structural tensionThe intercept is only half used. Outbound protects the institution's data. Inbound protects the user's judgment — the latter has no owner, but they sit on the same pipe.
Current state
In placeThe proxy already sits on the request path. It sees the prompt, the model output, and the token map. This is the only physical location the audit layer needs.
In placeOutbound already has a UI that talks to the user (the pre-send mask preview). Users have already been trained that "this pipe will tip me off."
GapInbound does nothing. The model response passes through as-is. Nothing on that path takes a position on the reasoning's integrity.
To confirmIs the proxy a synchronous in-line proxy (can intervene when the response returns), or only a pre-send preprocessor. This decides whether I1 is an integration or a rebuild. Confirm it in the first technical meeting.
Module candidates
M1.1Return-path Hook — mount on the return pathWorkflow

Mount an audit hook on the existing proxy's return path. Do not touch the outbound path, do not touch the masking logic, do not add send latency — that is the first condition for convincing their engineering team. The audit runs in parallel as a stream after the response returns. The answer arrives first; the observation arrives later.

Acceptance After mount, outbound p95 latency change < 2%. If the audit fails, the answer still arrives (fail-open on answer, fail-closed on claim).
M1.2Token Re-binding — the map as audit inputWorkflow

The token↔original map the proxy holds is the only basis the audit layer has for asking "did this answer use a masked key fact." The map never enters the audit module. The audit module only sends field-type questions ("did this response cite a POLICY-class field"); the proxy answers with a boolean.

Acceptance No original value may appear in the audit module's memory or logs. Verify with synthetic PII injection; pass rate must be 100%.
M1.3Answer-first Streaming — answer firstWorkflow

The audit never blocks the answer. Observations arrive on a second stream. The UI reserves anchors but does not reserve empty space — if the audit times out, the interface must look as if the audit layer never existed, not leave a loading wreck.

Acceptance On audit timeout (> 2.5s), the UI has no leftover elements. In user tests, nobody can point to "something was supposed to be here."
Data flow and boundaries · Contextual Integrity
Full model output → audit moduleFit
De-identified prompt → audit moduleFit
token↔original map → audit moduleBreach
Field-type boolean query → proxy, returns true/falseFit, and the query content must not be retained
User interaction log (open / dwell) → efficacy aggregateFit, but must be aggregated; not traceable to a person
Original question, original answer → efficacy aggregateBreach
Failure modes
  • Audit latency slows the answer → users treat the whole pipe as "the thing that got slower." The first thing the institution kills is this layer.
  • The audit module restores tokens to judge integrity → turns a privacy product into a privacy incident.
  • The observation arrives too late → the user has already scrolled away, or already acted. An audit that speaks after the fact is an audit that did not speak.
Adoption gradient
Already paid
Four-eyes in finance and healthcare, cross-check in aviation — regulated industries already paid the cost of "a second pair of eyes on the same output."
Beachhead
Institutions that already bought a de-identification proxy: they already admitted this pipe needs a middleman. Adding a direction is a much lower psychological bar than starting from zero.
Enterprise trigger
The first enterprise security questionnaire that writes "did the user understand the limits of the AI output" into the procurement form.
I2 · Generation

Gap generation — who writes Observation #3

In the POC it is a handwritten static array. The answer to this question decides whether it is an instrument or a product.
Scene

The most important observation in the POC — "ACS family-history criteria were not checked" / "renal-injury risk was not raised" — was written by a person in advance. That is fully legitimate in a research setting: the gap is the experimental stimulus; it must be controllable. To go into B2B deployment, the same observation must be produced by the system at runtime, and it cannot be less reliable than the model it audits.

Structural tensionIf the auditor is also a language model, it inherits the same class of failure. Using something that misses things to catch what something else missed needs an asymmetric advantage — and that advantage can only come from "the auditor holds the list the auditee did not consult."
Current state
In placeThe POC's four observations already have a complete structure: region anchor, gap flag, title, body. This is the output contract. It does not need to be redesigned.
In placeTwo domain gap types have already been hand-coded: single-guideline dependence (should have checked two, checked one) and risk-dimension omission (three risks, discussed two). Both types can be formalized.
GapNo runtime generation. All four observations are static arrays, bound one-to-one to a scenario.
To confirmClinical sign-off has not been obtained. The supervisor has blocked the current task set (two pairs of near-identical tasks, learning effects). Until data collection is finished, no efficacy number exists. No outbound proposal may cite expected results.
Module candidates
M2.1Checklist Asymmetry — the auditor's asymmetric advantageWorkflow

The auditor does not re-reason. It does one thing the model did not: walk the domain's authoritative list item by item. "Which guidelines / which risk dimensions should this decision consider" is a finite, maintainable set. "Did those items appear in the answer" is decidable. Reasoning stays with the model. Roll-call stays with the audit.

Acceptance Detection rate on known gaps ≥ 95%. False-positive rate on gap-free responses ≤ 5%. A false positive costs more than a miss — cry wolf once, the whole layer dies.
M2.2Source-Use Divergence — listed vs usedWorkflow

POC Observation #6 already named this type: lists ten sources, applies one. This is mechanically detectable — compare the source list against the citations that actually carry the conclusion. This type needs no domain knowledge. It is the first one that can land across industries.

Acceptance Set-difference of listed vs used sources, human-reviewed agreement ≥ 90% on 200 historical responses.
M2.3Confidence Decoupling — a gap does not inherit model confidenceWorkflow

If the audit layer is uncertain about a gap, it outputs "unchecked", not "no gap". Three states (gap / no gap / unchecked) must not be collapsed into two. "Unchecked" is useful information to the user. Folding it into "all clear" is this layer's most serious breach of trust.

Acceptance All three states have a corresponding UI. "Unchecked" must not be silently hidden. It must be identifiable in user tests.
Data flow and boundaries · Contextual Integrity
Domain authority list (guidelines, risk dimensions) → audit moduleFit, and should be publicly inspectable
Institution's own internal criteria → audit moduleFit, but the list source must be inspectable by the user
Full answer text → third-party audit modelRequires separate cross-border and outsourcing authorization
Gap statistics → institution's model-improvement processFit — this is the part the institution will pay for
Failure modes
  • False positives accumulate → users learn to skip every observation. The audit layer becomes a second cookie banner.
  • The list goes stale → the audit layer accuses a new answer with an old guideline, and manufactures error. Lists must be versioned and the version marked on the observation.
  • Auditor and auditee share a source → the same model's blind spots appear on both ends. The layer is a dead letter that still emits an "already checked" signal.
Adoption gradient
Already paid
Clinical decision support and drug-interaction checks have run for decades — healthcare already paid the methodological cost of "list against output."
Beachhead
Industries where the domain list already exists and has a maintainer: healthcare, tax, insurance underwriting. The list is the moat.
Enterprise trigger
The first claim for "the AI assistant missed a material risk," and the underwriting questionnaires insurers write after it.
I3 · Presentation

Presentation — anchored vs sidebar

The only insertion point that already has an experimental instrument waiting for an answer.
Scene

Once the observation is generated, where does it go. Format A anchors each observation next to the paragraph it points at (tooltip). Format B folds seven of them into an expandable panel (list). The information is identical — the difference is whether the reader will encounter it, and what they are reading when they do.

Structural tensionAnchored sits on the evidence, but it interrupts reading and occupies the page. Sidebar is clean and browsable as a batch, but it requires the user to leave the answer on purpose. This is the entire distance between "the disclosure exists" and "the disclosure worked," and it can only be answered by experiment.
Current state
In placeThe V4 instrument is done: four-block Latin-square counterbalancing, prev/next stepper against scenario drift, format does not covary with persona or clinical topic.
In placeBehaviour log is live: which observations were opened, in what order, dwell time, plus format / scenario / block-switch events, CSV export. This is the raw material of effectiveness evidence.
In placeSynthetic-data banner, researcher control bar hidden, shortcut hints moved out of participant sight — research ethics and contamination control are handled.
GapTask set is blocked: four scenarios are actually two pairs of near-identical tasks. Learning effects cannot be repaired by counterbalancing. The mechanism is content-independent. What must be replaced is the content of slots 1–4 and both persona cards.
Module candidates
M3.1Anchored Observation — Format AUnder test

The observation is anchored to the content block it points at, with a badge and a connector. The bet: attention does not need to be transferred. The gap hits the user when they reach that paragraph. The risk is crowding and interruption, and users treating the badge as decorative footnote.

Dependent variable Open rate of gap:true items, reading time before first open, rate of spontaneously mentioning the gap in think-aloud.
M3.2Review Panel — Format BUnder test

Seven observations sit in an "Audit Review" panel, expandable, readable as a batch. The bet: a complete audit opinion is more persuasive than fragments, and it does not interrupt reading of the answer itself. The risk is it competes with the answer for attention, and the answer always wins.

Dependent variable Same as above, plus panel-expand rate — unexpanded is zero effect. That number is itself a finding.
M3.3Task Set Redesign — four mutually exclusive tasksBlocking

SEQ table, stepper, persona mechanism, and logging are all content-independent and correct. Only the content of slots 1–4 needs replacing. The four tasks must be mutually exclusive in clinical decision type (not rewrites of the same decision), and each must carry a gap type that M2.1 / M2.2 can detect.

Acceptance No two of the four tasks share a guideline source or a risk dimension. Counted participants only after clinical sign-off.
Data flow and boundaries · Contextual Integrity
Open events, order, dwell → research recordFit (research consent obtained)
Think-aloud recording → research recordFit, must follow REB-approved retention and de-identification
Participant behaviour log → partnerBreach (only aggregate stats may leave)
Live user behaviour after deployment → efficacy aggregateFit, but requires separate notice, and must not bind to account
Failure modes
  • Neither format shows a significant effect → this is a publishable and commercially valuable result: it falsifies the assumption that "disclosure exists = compliant," which is why this layer exists. Do not treat it as failure.
  • Data collection starts before learning effects are cleared → within-subject comparison collapses into between-subject. Sample-size demand explodes.
  • Observations written too well → effect comes from copy quality, not position, confounding the independent variable. Copy across both formats must be identical, word for word.
Adoption gradient
Already paid
Mode annunciation in aviation, alert grading in clinic — safety-critical industries already paid the design cost of "the state must be seen."
Beachhead
Product teams already running usability tests: they have a participant pipeline and a process. They lack this specific dependent variable.
Enterprise trigger
The first supervisory guidance or procurement clause that asks for an "effectiveness test report" instead of a "disclosure screenshot."
I4 · Evidence

Effectiveness evidence — write back to the risk register

Why an institution would install something that points out its own defects.
Scene

This is the most fragile link in the brief, and it has to be faced: a component that tells the user, at runtime, "this answer missed a material risk" looks, at first glance, like it increases the institution's exposure. If this objection cannot be answered, the first three insertion points — however well built — will not sell.

Structural tensionInstitutions buy governance to reduce liability, not to be honest. The audit layer must be positioned as a mitigation of a known risk — a control the institution chose to deploy, can enter in the register, and can later claim as duty discharged — not as an audit report that accuses itself. Those two frames produce opposite commercial outcomes.
Current state
In placeGovernance platforms already have the container for this kind of control: risk register, mitigation field, Model Card, FRIA. They do not need to build anything new.
GapAlmost every mitigation in existing registers is procedural (training, policy, review). None of them carries an effectiveness number. The audit layer is the first thing that can fill that cell.
To confirmWhether AI Act Art. 14 (human oversight) — "enable the natural person to correctly understand the capacities and limitations of the system" — can be partly met by this kind of runtime control. This is a legal characterisation. It must be confirmed by their counsel or an external lawyer. This side cannot assert it unilaterally.
Module candidates
M4.1Mitigation Entry — register as a control, not an audit reportWorkflow

Output format aligns with the governance platform's existing mitigation fields: control name, mapped risk, deployment scope, efficacy metric, review cycle. Wording is always "this institution deployed X to mitigate Y," never "this institution's interface failed to achieve Z." Same number. Two frames.

Acceptance Output pastes directly into the other party's mitigation field, no rewrite. Field mapping passes on the first pilot attempt.
M4.2Aggregate-only Efficacy — aggregates only, no individualsWorkflow

Efficacy metrics are population statistics: reach rate, open rate, median dwell, stratified by format. No field that can be traced to an individual user — this is both a privacy requirement and a commercial one: institutions will not buy something that logs their users' every move.

Acceptance Output schema has no user-identifying field. Any metric whose minimum group size is < 20 is not emitted.
M4.3Claim Binding — bind the claim to the evidenceWorkflow

Every efficacy record binds to the compliance claim it supports (which document, which section, which adjective). That is the first time the evidence chain closes: the document says informed → this is the measurement of informed → this is the method and the date.

Acceptance Every record points back to one concrete claim. Unbindable records are not emitted — no orphan evidence.
Data flow and boundaries · Contextual Integrity
Aggregate efficacy metrics → institution's risk registerFit
Individual user open logs → institutionBreach
Efficacy metrics → external compliance documentsFit, must attach method and date; must not cite the conclusion number alone
Cross-institution benchmark → participating institutionsFit, must be anonymised and n ≥ 5 institutions
Failure modes
  • Read as audit, not control → counsel kills it on first contact. Wording and output fields must be control vocabulary from day one.
  • Ugly numbers get suppressed → selective disclosure, once discovered, destroys the layer's credibility — worse than an ugly number. The output contract must include a "regardless of result" commitment.
  • Becomes a rubber stamp for self-certification → if the institution can tune the metric, this layer immediately degrades to Type 1 evidence. The measurement method must be fixed externally.
Adoption gradient
Already paid
Post-market surveillance for drugs, clinical evaluation for devices — regulated industries already paid the institutional cost of "you still have to evidence effectiveness after deployment."
Beachhead
Institutions already being chased by enterprise procurement questionnaires, who already bought a governance platform: they are already paying to produce Type 2 evidence, and they cannot answer the effectiveness question.
Enterprise trigger
The first supervisory guidance that lists effectiveness measurement as a condition for recognising a mitigation; or the first fine on the grounds that "disclosure was not sufficient to constitute notice."
§3Runtime flow · swimlaneOne full round-trip · I1 → I3

Five swimlanes: principal, audit agent, de-identification proxy, model, product UI. Red is the existing outbound path (do not touch). Blue is the inbound path this layer adds.

Invariants · must not be violated
  • The answer is never delayed by the audit. If the audit fails, the UI reverts to looking like there is no audit layer.
  • The original-value map never enters the audit module. The audit asks type, never content.
  • When uncertain, output "unchecked." Never output "no gap."
  • Efficacy records are aggregate only, never individual. Output regardless of whether the result looks good.
§4Flow SpecProduct teams can turn this into a build spec as-is
#PhaseActorData boundaryFailure handlingGradient
1Question sentUser → ProxyOriginal text stays on the user side and the proxy. The audit module is not in yet.Proxy offline → institution policy decides whether to pass; the audit layer does not join that decision.Already paid
2Outbound de-identificationProxyPII replaced with tokens; the map lives only on the proxy. Existing capability. Do not change it.Mask fails → existing fail-closed logic. This layer does not intervene.Already paid
3Response returnsLLM → ProxyFull answer + source list enter the proxy.Model timeout → existing error handling; the audit layer produces no observation.Already paid
4Gap roll-callAudit AgentGets the full answer and the domain list; does not get the map; queries the proxy with type questions only.List version stale → output "unchecked" and mark the list version. Do not guess.Beachhead
5Answer firstProxy → HMIThe answer does not wait for the audit. The UI renders in full first.Audit timeout → no leftover UI elements, as if there is no audit layer.Enterprise trigger
6Observation anchoredAudit Agent → HMIObservations arrive on a second stream, with region anchors and a three-state flag.Anchor dead (content changed) → degrade to panel. Do not misplace a badge.Enterprise trigger
7User readsUserOpen / skip events logged locally; no Q&A content.All skipped → that session is zero reach, counted in the efficacy denominator. Do not retry or nag.Enterprise trigger
8Efficacy aggregateAudit AgentAggregate stats, minimum group 20; bound to a concrete compliance claim.Sample too small → do not emit a metric. Do not pad with a low-confidence number.Beachhead
9Write back to registerAudit Agent → GovernanceOutput in mitigation-field format; attach method and date.Field mapping fails → emit standard JSON for manual attach. Do not silently drop.Beachhead
§5Three-party collaborationSorted by architectural fit, not by negotiation difficulty

Three brands look like three relationships. They are one relationship, three doors — the content front is not a standalone SaaS. The sort key is architectural fit: who owns the position this layer needs.

Shielk
Priority 1 · Architectural fit
What they own
The intercept between user and model, and an outbound panel that already taught users to read a tip.
The ask
Joint pilot: mount an inbound hook on the existing proxy (M1.1–M1.3), one domain, one customer.
What they get
Expand from "protect the data" to "protect the judgment" — the second half of the same intercept. A competitor cannot follow without rebuilding the pipe.
We keep
The gap-generation list and method (M2.1), and the efficacy-measurement protocol. The interface is joint. The method is ours.
Main risk
If their architecture is not a synchronous in-line proxy, I1 degrades from integration to rebuild — clear this in the first technical meeting.
Valdra
Priority 2 · Evidence close
What they own
Risk register, PIA / ROPA / Model Card / FRIA, and customers already being chased by procurement questionnaires.
The ask
Output-contract alignment (M4.1): this layer as a registerable mitigation, not a report that audits their customers.
What they get
The first control in the register that carries an effectiveness number. The first time they have something to put on the table when asked "how do you know the user was informed."
We keep
The measurement method must be fixed externally. The platform or the institution cannot tune it, or it degrades to Type 1 evidence.
Main risk
Read as audit, not control. Get the wording wrong once, counsel kills it, and it is hard to reverse.
Canuckt
Priority 3 · Door
What they own
Content channel, regulatory knowledge base, SEO position. Not a standalone SaaS. A front.
The ask
Joint publication: method and results of the efficacy study. Lowest bar. Can start before any technical collaboration.
What they get
The only first-hand experimental data in that content circle — cannot be bought, cannot be copied.
We keep
Publish results. Do not publish the list or the criterion set. The article is bait. The method is the asset.
Main risk
Becomes a free content feed. Price it as "one article for one technical meeting." No open-ended supply.
§6Open questionsMust be cleared before the brief goes out
This document contains the following independently unverified assumptions. Any one of them, if falsified, changes the structure of the brief. Confirm each before sending it out.
  1. Whether the three brands are in fact three fronts of one organisation — that decides "one relationship, three doors" vs three separate negotiations.
  2. Whether the de-identification proxy is a synchronous in-line proxy — that decides whether I1 is an integration (weeks) or a rebuild (months).
  3. The actual text and current guidance of AI Act Art. 14 / Art. 50, Law 25 s.12.1, and PIPEDA consent — the adjectives this brief hangs on (clear / informed / meaningful) are load-bearing. Check them against the current statute and guidance, and have counsel confirm whether they constitute an effectiveness standard.
  4. Until clinical sign-off and the task-set redesign are done, no efficacy number exists. Outbound proposals may cite method, not expected results.
§7Agent-readable layerSame content, two readers

The structured content of this document is embedded as application/json, id #ral-proposal. Any agent can read it without parsing the DOM. The schema reuses the existing pattern library's spec.rows contract (phase / actor / boundary / failure / grad), so this document can share the same retrieval and render pipeline as the Agent-based Onboarding series.

Embedded payload #ral-proposal · schema ral/0.1

Suggested MCP tool contract below. Each insertion point maps to one tool. ral.audit_response is the only one that needs a runtime deploy; the other three are offline or aggregate, and can be built first to lower the technical bar of the first collaboration.

MCP tool contract draft
// I2 + I3 — runtime: generate observations and pick the presentation
ral.audit_response(
  answer_text: string,          // full model output
  sources: string[],             // sources the response claims to use
  domain: "clinical"|"tax"|…,   // which authority list to apply
  checklist_version: string,    // list version, written onto the observation
  format: "anchored"|"panel"
) → { observations: Observation[], checklist_version, coverage: "checked"|"partial"|"unchecked" }

// Observation — same contract as the POC static array; drop-in replacement
Observation = { id, region, side, label, title, text,
                gap: boolean, state: "gap"|"clear"|"unchecked" }

// I1 — boundary query: ask type, never take the original value
ral.field_type_query(response_id, field_class: "POLICY"|"NAME"|…) → { used: boolean }

// I4 — aggregate efficacy, min group 20, no user-identifying fields
ral.efficacy_record(session_events[], bound_claim) →
  { n, format, gap_reach_rate, gap_open_rate, median_dwell_ms,
    bound_claim: { document, section, adjective }, method, measured_at }

// Retrieve: module and criterion library; shared schema with Agent-based Onboarding
ral.list_modules(gate?: "I1"|"I2"|"I3"|"I4") → { modules: Module[] }
§8Prediction LedgerFalsifiable · dated
P1The two presentation formats differ significantly on gap detection rate, anchored above sidebar. If not significant, the assumption that "disclosure exists = compliant" is empirically overturned — both results are valuable to this layer, but only one supports M3.1.After data collection
P2By end of 2027, at least one AI governance platform will ship a user-facing (not org-facing) audit or explanation surface, rather than documents only.2027-12
P3By end of 2028, a first supervisory guidance, enforcement case, or mainstream enterprise procurement clause will explicitly require effectiveness evidence (did the user actually understand) rather than existence evidence (is the component on the screen).2028-12
P4"Listed sources vs sources actually used" (M2.2) will enter commercial use before domain-specific gap detection, because it needs no domain knowledge and no maintained list.2027-06
P5The first commercial deploy will be at an institution that already bought data-side protection, not one starting governance from zero — the existence of the intercept decides adoption order more than the budget does.2028-06
PrivacyUX Consulting Ltd. · 2026-08 · Confidential — for partnership conversations only Reasoning Audit Layer v0.1 · schema ral/0.1