Pensieve Labs

Search the register

Search all 478 artefacts by title, document ID or content.

Unlock NDA tier

Evidence pack

One download. Your review starts today.

A security review usually begins with a request list and ends three weeks later, because each document is asked for, approved and emailed one at a time. This is the same evidence without any of that: one archive, built the moment you ask for it, containing every document you are entitled to read, as Markdown and HTML, with a manifest of SHA-256 hashes and a README that maps each document to the question you were handed.

Nothing here is PDF-only and nothing is behind a form. Your advocate, your CA, your IT consultant and your CISO can each open the same pack on the same afternoon.

Two packs

Publicpensieve-evidence-public.zip

Public evidence pack

Everything published without a gate. It covers the whole of a first-pass security, legal and privacy review.

Documents
103
Files
208
Words
3,93,221
Approximate size
2.4 MB
Built
On request, never nightly

Two renditions of every document, .md and .html, plus the README and the manifest.

Download the public pack
NDApensieve-evidence-nda.zip

NDA evidence pack

The public pack, plus the material that genuinely needs an NDA: full penetration test and VAPT reports with findings, detailed network diagrams with internal hostnames, continuity test evidence and insurance documents.

Documents
229
Files
460
Words
6,89,880
Approximate size
4.3 MB
Built
On request, never nightly

Two renditions of every document, .md and .html, plus the README and the manifest.

Accept the mutual NDA

Accept the mutual NDA to request access to this tier. Your acceptance is recorded at once and protects both sides; an administrator then grants access, with a target of four business hours.

Time cost: Target 4 business hours. The pack opens once an administrator approves your access request; the acceptance is recorded at once against the exact rendered text of NDA-GL-002.

Accept the mutual NDA

What is inside

README.md
MANIFEST.json
documents/
  01-corporate-and-entity/
  02-legal-and-contractual/
    MSA-IN-001.md
    MSA-IN-001.html
    DPA-GL-001.md
    DPA-GL-001.html
    …
  03-security-privacy-and-trust-disclosures/
  04-assurance-and-evidence/
  …

10 families, numbered as they are in the register. Grouping is by family rather than by tier, because a reviewer looks for the subject, not for the gate.

README.md: your triage, already done
A table mapping each standard security-review question to the document that answers it, the three things reviewers most often get wrong about Pensieve stated up front, a twenty-minute reading order, and a plain account of what is not in the pack and what opens it. Reviewers are triaging; the pack does the triage for them.
MANIFEST.json: every file, with its hash
Document ID, title, tier, version, last-modified date and SHA-256 for every file in the archive, plus the canonical body hash and the /verify URL for each document. Check the archive with shasum -a 256; check that a document is still current at trust.pensievelabs.org/verify/<hash>.
.html: the rendered document
Self-contained: its own typography, no external stylesheet, no script, no network request. It opens on an aeroplane. Clauses, schedules, defined terms, applicability matrices and signature blocks all render as they do here, and each page carries the document ID, version, date and hash in its header.
.md: the authored source
The same document with its {{token}} markers still visible. That is deliberate. Every artefact in this corpus is authored against one central token registry, so a change of registered address propagates to every unexecuted instrument and to nothing already executed, and seeing the tokens tells your counsel exactly which values bind at signature. A template can never be mistaken for an executed deed.

A sample of the triage map

The README carries 30 of these. Each names the document rather than the section of the site, so the answer is one file open away.

The question you were handedRead
Are you ISO 27001 or SOC 2 certified?WPR-GL-005, STM-GL-010, STM-GL-011
Where is our data stored, processed and backed up?DIS-GL-008, DIS-GL-034
Who can reach our data, and from which country?DIS-GL-033, POL-GL-134
List your sub-processors and how we hear about changes.DIS-GL-009, POL-GL-055
What is your breach notification commitment?DIS-GL-016, NTC-GL-002
How do we get our data out when we leave?WPR-GL-400, DIS-GL-401
Are you ABDM certified? Are you on NHCX?DIS-GL-024, DIS-GL-026
What happens to us if your company fails?DIS-GL-407

What is not in the pack, and why

Counts are published for every tier, including the internal one. Concealing the count would be the same mistake in a smaller costume. These are counts of whole documents; the register also addresses 54 sections separately so they can be cited on their own, and those travel inside their parent document rather than as extra files.

TierDocumentsIn which pack, and at what cost in time
Public: no gate103Both packs. No gate.
Work email required5NDA pack. Zero: instant.
Mutual NDA required121NDA pack. Target 4 business hours.
Client credential required120Neither. These belong to one hospital's workspace and are served there, watermarked, one at a time.
Pensieve internal88Neither. Internal to Pensieve: documents about how Pensieve runs itself. No gate opens these.

If the first reader is not a person

A material share of first-pass vendor evaluation is now run by a language model on the buyer’s behalf. That pass cannot open a PDF behind a lead-capture form, and it cannot read a page that renders only after a script runs. So every artefact here is HTML first, the public tier is never noindexed, and the same evidence is published in the shapes a machine reads. None of this is a side project: for a vendor nobody has heard of, being legible to that first pass is the difference between a shortlist and silence.

Files

llms.txt
A curated map of the public tier with a one-line description per document, plus the three facts a first-pass agent most often gets wrong, stated in prose.
trust-manifest.json
Entity identity, the four deployment models with controller and processor posture, sub-processors with jurisdictions, residency claims, an explicitly empty certifications array, and the API index.
updates.rss
RSS 2.0. Every bulletin and advisory, numbered, categorised and dated.
sitemap.xml
Every public route and every public document, each carrying the document's real last-modified date rather than the deploy date.
security.txt
RFC 9116. Contact, policy and an expiry recomputed on every request so it can never lapse.
robots.txt
The public tier is never noindexed and agent crawlers are named and allowed. Only /admin, /workspace and the non-public API are disallowed.

Public API: GET only, open CORS

GET /api/public/documents
The public tier as JSON, with facets. Filter on family, kind, jurisdiction, dm and q; page with limit and offset.
GET /api/public/documents/{slug}
One document as rendered HTML and as Markdown, with its last-modified date, SHA-256, clause and schedule index, and full classification.
GET /api/public/subprocessors
The live register, not a PDF of it.
GET /api/public/updates
Bulletins, filterable by category.
GET /api/public/policies/{slug}
A policy body for embedding, addressable by slug, document ID or the marketing path it is the source of truth for.
curl -s "https://trust.pensievelabs.org/api/public/documents?family=3&dm=DM-1&limit=5" \
  | jq -r '.data[] | "\(.doc_id)  \(.title)"'

Every response carries source_of_truth_for where the artefact declares one: the list of pages entitled to render it. The Pensieve Labs marketing site consumes these endpoints and keeps no copy of its own security, legal or privacy text: one document, every surface.

Checking what you are holding

The archive

MANIFEST.json carries a SHA-256 for every file exactly as written into the ZIP. Compare it with shasum -a 256 and you know nothing changed in transit.

The document

Each entry also carries the canonical hash of the document body. Open trust.pensievelabs.org/verify/<first twelve characters>. A hash that does not resolve means the text you are holding is not a current Pensieve Labs document.

The date

Every document carries a last-modified date and a review-due date. Where a document is past review, this Trust Center says so on its face. A register dated two years ago destroys more trust than no register at all.

491 artefacts | 12,07,999 words | 10 of 15 families represented in the public pack | register generated 2026-08-01. Prefer to read one document rather than all of them? The whole register is at /documents.