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
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 packNDA 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 NDAWhat 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
/verifyURL for each document. Check the archive withshasum -a 256; check that a document is still current attrust.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 handed | Read |
|---|---|
| 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.
| Tier | Documents | In which pack, and at what cost in time |
|---|---|---|
| Public: no gate | 103 | Both packs. No gate. |
| Work email required | 5 | NDA pack. Zero: instant. |
| Mutual NDA required | 121 | NDA pack. Target 4 business hours. |
| Client credential required | 120 | Neither. These belong to one hospital's workspace and are served there, watermarked, one at a time. |
| Pensieve internal | 88 | Neither. 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.