← trust center
// trust center · ai

AI trust & data handling

The companion to our Trust Center: exactly what the AI layer sees, what we store and why, and what it is architecturally prevented from doing. Same rule as everywhere else — what's true, not what sounds good.

What the AI sees — and what we store

Platform inference runs on Anthropic's Claude models over the API (Anthropic states API inputs and outputs are not used to train its models by default). Or bring your own key and inference runs on your account.

DataSent to the modelWhat we persistWhy
Dispatch textYes — the text you type (plus an optional plain-text file excerpt, capped server-side)First 500 characters, in your workspace's AI decision ledger, with the structured result, model, prompt version, and confidenceAuditability — the ledger is your record of what the model was asked and what it decided. Workspace-scoped behind RLS.
Semantic cacheThe same capped excerpt + an embedding, keyed to your tenant — never shared across workspacesIdentical or near-identical requests don't re-pay the model
Exact-match cacheA hash of the input → the parsed resultDedupe; no plaintext key
Your BYOK AI keyUsed to call Anthropic on your accountAES-256-GCM ciphertext only — never returned to any clientYour credits, your vendor relationship
We store the input excerpt on purpose. A platform that lets AI act on your work owes you a ledger of what the AI was told and what it decided — that's a governance feature, not surveillance. It lives inside your workspace, is isolated by row-level security, and leaves when your data leaves.

OWASP LLM Top 10 — mapped honestly

RiskOur controlStatus
LLM01 Prompt injectionInput screening (injection kernel, live at /api/v1/agent/screen) + the constitution gate on every writelive
LLM02 Insecure output handlingStrict structured outputs with a deterministic fallback parser + output policy check (pass · flag · block)live
LLM03 Training-data poisoningWe train no models. Vendor API with a no-training defaultn/a by design
LLM04 Model denial of servicePer-key O(1) rate limits, monthly AI budgets, and the flash-crash breakerlive
LLM05 Supply chainSingle AI vendor (Anthropic); registered agents carry a signed AI-BOM (bill of materials) attestationlive
LLM06 Sensitive data disclosurePostgres RLS isolation, membership-gated RPCs, BYOK ciphertext never returnedlive
LLM07 Insecure plugin designMCP schema validation kernel + scoped, auditable fdk_ agent keyslive
LLM08 Excessive agencyConstitution bounds + four-eyes + simulate-before-commit + undo + authority subsetting (agent ⊆ its human)live
LLM09 OverrelianceConfidence scoring, bounded auto-approval delegations with confidence floors, human approval queuelive
LLM10 Model theftNo self-hosted weights to stealn/a by design
The two “n/a” rows are n/a because of architecture, not because we solved something hard — we don't train or host models, so those attack surfaces don't exist here.

What we do not do

01No training on your data

We train no models of any kind. Platform inference uses Anthropic's API, which does not use API data for training by default.

02No cross-tenant leakage by design

The semantic cache and its embeddings are keyed to your tenant. Your text never warms another workspace's cache.

03No silent AI writes

Every AI-created task is labeled with its method and model in the decision ledger; risky actions stop at the approval queue until a human countersigns.

04No unbounded agents

An agent's authority is a subset of its human's. Scopes, rate limits, and spend caps are enforced per key — and every action lands on the signed audit chain.

Not yet true — the honest list

Customer-managed encryption keys (CMEK/HSM): not offered. Data-at-rest encryption is managed by our database provider today. Per-tenant customer-held keys are a real roadmap item, not a checkbox we'll fake.
Signed deletion receipts: export and deletion exist; a cryptographic receipt-of-erasure (signed, offline-verifiable like our outcome receipts) is designed but not shipped.
Third-party penetration test: not yet commissioned. Internal adversarial testing is continuous; a formal external report will be published here when we have one.
NIST AI RMF / ISO 42001: no formal assessment yet. This page is a self-assessment against OWASP's LLM Top 10 — we say so plainly.

Verify, don't trust

Every governed action is ES256-signed and hash-chained. Verify a receipt in the browser at /verify-receipt/, or offline against the published keys at /.well-known/flowdesk-signing-key.json. Agents start at /install.md.

Reach us

AI-security questions, disclosures, or an enterprise review: [email protected].

// the governed loopsimulateconstitutionexecutesignedverifyES256 · audit-chained