Skip to main content

Trust Center

Trust, itemized.

We hold no certifications yet, and we won't pretend otherwise. What we have instead is an architecture you can inspect — every control below is real, running, and stated precisely.

Control inventory · 23 July 2026

01

The gate.

ControlCurrent stateStatusInspect
Decision pathApproval is a property of the database. The content state machine is a single guarded function; a decision requires the exact latest draft, the right person, the right role. Illegal transitions don’t get logged and forgiven — they raise errors. The AI side can propose; it cannot decide, and it cannot publish.ENFORCED
Immutable versionsDrafts are immutable and versioned. A revision creates a new version; prior verification, QA, and approval do not carry forward.ENFORCED
Exact approval recordEvery approval decision is recorded against the latest exact draft and written into the hash-chained audit record.ENFORCED

FIG. 02 lives on the Security page; this inventory does not duplicate it.

02

Isolation & access.

ControlCurrent stateStatusInspect
Organization boundaryOrganization-scoped tables enforce Row-Level Security. Browser roles can read only the rows their membership and role permit.ENFORCED
Service authorityService authority is held by the server-side worker. No browser role holds service credentials.ENFORCED
Founder accessFounder-only control surfaces require a server-owned claim that a browser cannot self-assign.ENFORCED
03

Evidence & audit.

ControlCurrent stateStatusInspect
Audit chainEvery action is on the record: an append-only, hash-chained audit log of every transition and every decision, by authenticated actor.ENFORCED
Minimized recordsApproval comments remain on the decision record but are redacted from audit diffs. Operational evidence excludes secrets, source content, and customer data.ENFORCED
Erasure re-chainWhen erasure requires audit redaction, a dedicated maintenance role re-chains the affected rows and the erasure certificate stores both the old and new chain roots.ENFORCED
04

Data lifecycle.

ControlCurrent stateStatusInspect
Full exportThe built export path produces a deterministic full archive with a manifest, JSON data, owned assets, and SHA-256 evidence. Production delivery remains held until email transport passes the no-tracking gate.LIVEDELIVERY HELD
Voice subsetThe built voice-only export contains the voice card, patterns, and writing samples. Production delivery is held by the same email-transport gate.LIVEDELIVERY HELD
DeletionThe built deletion path applies a 7-day grace period before erasure; undo remains available during that window. Production execution remains held pending final copy and provider proofs.LIVEEXECUTION HELD
Erasure certificateCompleted erasure writes a certificate with purge counts, storage deletion counts, provider confirmations, chain roots, and the backup purge deadline.ENFORCED
LLM traces90 daysENFORCED
Anonymous report leads12 monthsENFORCED
Backups35-day ceilingLIVE
Restore ruleA restored service cannot accept traffic until the erasure ledger is replayed and the residual-data scan passes.ENFORCED
05

Infrastructure.

ControlCurrent stateStatusInspect
Primary stackCrafted Virtue is self-hosted on owned infrastructure in the European Union: an isolated database stack, worker fleet, and private research system.LIVE
Offsite backupRestic encrypts offsite backups before transfer to a dedicated least-privilege storage sub-account in a separate European location.LIVE
Dead-man monitoringIndependent dead-man checks expect production signals and alert on a missed run without relying on the monitored host.LIVE
Direct portsDirect application, database, storage, and worker container ports are closed to the public network; public traffic reaches the stack only through the owned reverse proxy.LIVE
Fetch safetyPublic-source fetches are checked at the application and network layers for unsafe schemes, credentials, ports, DNS answers, redirects, and private, loopback, link-local, metadata, multicast, and reserved destinations.ENFORCED
06

Privacy posture.

ControlCurrent stateStatusInspect
TrackersThis site installs zero third-party trackers. Not minimized — zero. First-party only.LIVE
AnalyticsNo analytics tags are installed.LIVE
FontsThe site serves its fonts first-party.LIVE
Consent bannerThere is no cookie banner because the site sets no tracking cookies and loads no third-party trackers.LIVE
Email transportTransactional email currently transits a provider that rewrites links; replacing this is in progressLIVEOPEN DEFECT
07

Providers & subprocessors.

Provider capability never implies product permission. External services sit behind owned boundaries, and release switches remain separate from provider availability.

Provider categoryRoleRegionStatus
Owned infrastructureApplication, database, worker, and private research hostingEuropean UnionLIVE
Encrypted offsite backup storageEncrypted backup storageEuropean Union, separate locationLIVE
Transactional email providerAccount, recovery, and operational emailTransfer detail in preparation with counselLIVEOPEN DEFECT
Customer model processorsText and media processingNo real customer data permitted pending processor reviewHELD
Customer DPAController–processor terms and subprocessor schedulein preparation with counsel.IN PREPARATION

Provider names and transfer details publish only after Ian confirms disclosure and counsel completes the register.

08

What we don't have yet.

ControlCurrent stateStatusInspect
SOC 2We do not hold SOC 2 certification.NOT HELD
ISO 27001We do not hold ISO 27001 certification.NOT HELD
Article 42 GDPRWe do not hold an Article 42 GDPR certification.NOT HELD

Certification follows revenue and an entity to audit; the controls above don't wait for either.

09

Contact & disclosure.

ControlCurrent stateStatusInspect
security.txtOur disclosure policy is published at /.well-known/security.txt.LIVE
Disclosure contactSecurity reports: hello@craftedvirtue.com.LIVE