# Deployment Modes · PlainReal

Source: https://plainreal.com/deploy

PlainReal / Deployment Modes

## Start anywhere. Promote what matters.

Two capture layers. One record. Same CLI to verify.
Auto-instrument records every LLM call made through the instrumented client, with zero code changes, for EU AI Act Article 12 and GDPR record-keeping. The decorator wraps specific regulated functions, built for OCC examination and litigation.
We recommend running both in production.

@plainreal.consequential · Decorator
plainreal run · Auto-instrument

How it works

### One artifact. Two capture points.

Both modes capture evidence at a different layer of the same call stack. Both produce a record signed with the same Ed25519 algorithm, committed to the same WORM storage, verifiable with the same CLI.

①

Business function called
e.g. approve_loan(), flag_fraud()
Business layer

②D

Decorator capture
Business inputs cryptographically hashed and committed into the authorization token
BUSINESS_LAYER

③

LLM client call
OpenAI / Anthropic / any API

④A

Auto-instrument capture
LLM request cryptographically hashed and committed at the client boundary
LLM_LAYER

⑤

LLM responds
Model output returned

🔐

record issued
Ed25519-signed · WORM-committed · RFC 3161 timestamped
Same artifact. both modes

② Decorator capture. BUSINESS_LAYER

@plainreal.consequential

Wraps your business function. Hashes the business inputs before the function runs. at the point where a regulated decision is being made, not at the LLM call. A tampered input produces no artifact. Sets capture_layer = BUSINESS_LAYER , consequential = true .

④ Auto-instrument capture. LLM_LAYER

plainreal run / PLAINREAL_AUTO_INSTRUMENT=1

Process-level monkey-patch of LLM client libraries. Captures every call at the client boundary. same pattern as ddtrace-run and opentelemetry-instrument . Zero code changes. Sets capture_layer = LLM_LAYER , consequential = false by default.

⛓️

Both modes produce the same record.
Same Ed25519 signing. Same S3 Object Lock COMPLIANCE mode WORM storage. Same RFC 3161 trusted timestamp. Same standalone plainreal verify CLI. The capture_layer field tells the auditor which forensic claim applies. The 4-pillar evidence chain is identical. Functions wrapped with the decorator skip auto-capture automatically. a ContextVar guard ensures exactly one record per call, never two.

Side by side

### Choose your capture layer.

Not alternatives. complements. The question is which capture layer a given decision requires, not which product to use.

@plainreal.consequential Decorator mode
plainreal run Auto-instrument mode

Tagline
"Prove the decision."

"Capture every call."

Capture point
BUSINESS_LAYER Business function boundary. before the function runs

LLM_LAYER LLM client library boundary. every API call

Code change
One decorator per regulated function @plainreal.consequential(..)

Zero plainreal run python app.py or PLAINREAL_AUTO_INSTRUMENT=1

What it proves
Principal X was authorised to take action Y with input committed to hash H under policy version Z. The action executed against the same input. Cryptographic proof an examiner or opposing counsel can verify for themselves.

Every LLM call this process made was captured at the client boundary, signed, WORM-committed, and timestamped. Complete audit trail, right there.

capture_layer
BUSINESS_LAYER

LLM_LAYER

consequential
true

false (default)

Primary buyer
Chief Compliance Officer General Counsel Head of Risk

CISO Security Architect VP Engineering

Regulations

- OCC Bulletin 2026-13. agentic AI expressly out of scope, interagency RFI to follow

- NYDFS Part 500. NY-licensed entities

- SOC2 CC6.1. non-human identity authorization

- Litigation defense. Opposing counsel can check the record without our cooperation

- EU AI Act Article 12 (Annex III deferred to 2 Dec 2027)

- GDPR Article 22. automated decisions

- NIST AI RMF. audit trail controls

- SOC2 CC4.1. audit logging coverage

Pricing

Talk to us →

Decorator mode Pilot, production and enterprise, scoped per deployment
Auto-instrument mode An entry tier, and a path to the decorator

Start here if…
You face OCC examination, NYDFS review, or litigation discovery for AI-assisted decisions.

EU AI Act Article 12 or GDPR Article 22 record-keeping is your near-term driver.

Get started

### Two quickstarts. Same destination.

Both terminate at plainreal verify . the standalone CLI your auditor runs independently.

Recommended for regulated decisions

@plainreal.consequential

OCC · NYDFS · Litigation · SOC2 CC6.1

1

```
pip install plainreal
```

2

```
# Wrap the regulated function
from plainreal import consequential

@consequential(
    action_type="LOAN_APPROVAL",
    policy="credit-policy-v3",
    risk_level="HIGH"
)
def approve_loan(application_id, amount):
    # your existing code unchanged
    ..
```

One decorator per regulated function. No changes to internal logic.

3

```
result = approve_loan("app_9f3a2c", 45000)
print(result.record_id)
# a1b2c3d4-e5f6-4a7b · BUSINESS_LAYER · consequential=true
```

Verify independently using the CLI

```
plainreal verify a1b2c3d4-e5f6-4a7b
```

Recommended for LLM audit logging

plainreal run

EU AI Act Art 12 · GDPR Art 22 · NIST AI RMF · SOC2 CC4.1

1

```
pip install plainreal
```

2

```
# Zero code changes to your application
plainreal run python app.py

# Or set the environment variable
PLAINREAL_AUTO_INSTRUMENT=1 python app.py
```

Same pattern as ddtrace-run and opentelemetry-instrument . Every LLM call is captured.

3

```
# Record produced automatically per LLM call
plainreal list-records --limit 5
# c3d4e5f6 · LLM_LAYER · consequential=false
# e5f6a7b8 · LLM_LAYER · consequential=false
```

Same verify CLI. Same artifact format.

```
plainreal verify c3d4e5f6
```

Run both. One artifact per decision.

The decorator and auto-instrument are designed to run together. The ContextVar coexistence guard detects when a function decorated with @plainreal.consequential is in the call stack and suppresses the auto-instrument capture for that path. This means: Decorated functions produce BUSINESS_LAYER records. the stronger evidence, the kind built to be checked under challenge. All other LLM calls produce LLM_LAYER records automatically. One record per decision. Never two.

Recommended customer journey

1

Deploy auto-instrument
Zero code change. EU AI Act Article 12 and GDPR Article 22 audit logging starts immediately. Every LLM call captured.

2

Identify regulated decision paths
Loan approvals, fraud flags, refund authorizations. the 20% of code paths that face OCC examination or litigation discovery.

3

Promote to decorator
Add @plainreal.consequential to those functions. BUSINESS_LAYER artifacts replace LLM_LAYER for those paths. Evidence designed for OCC and NYDFS examination.

4

Both run in production
ContextVar guard handles coexistence automatically. No configuration needed.

### Ready to start?

One conversation to see which deployment mode fits your environment and which regulatory deadlines to prioritise.

Request Access
Back to overview
