Witness · Haute Lumière Contents The Anchors The Record The Market The Honesty The Surface Register {{ regName }}
A woman in cream, arms raised overhead, in warm afternoon light
Luminous Prosperity Inc. witness.yourwonderful.life
The build design · Twelve layers

WITNESS

A record that can be withdrawn was never a record.

Hosted git that witnesses everything you make. This document is the design of that program, taken one layer at a time — ground, invariants, topology, canonical bytes, the four anchors, the receipt, the record, the reading, the dossier, the payload, the market, and the honesty that holds it all in place. It is written to be built from, not admired.

Set in Haute Lumière · MMXXVI For the builder · Phase 0 → 13
Witness · ContentsSpecification · MMXXVI
A woman mid-turn in a pleated cream skirt, barefoot on a sunlit floor
Twelve layers, in order
How to read this

Each layer hands the next one something it cannot make for itself.

The order is not arbitrary and it is not a filing scheme. Canonical bytes exist so the anchors have something honest to sign. The anchors exist so the record is worth reading. The record exists so the reading, the dossier and the deed are worth paying for. Build downward and every layer above you is standing on air; build in order and each acceptance test is a floor you can stand on while you reach for the next one.

The one question that settles every open decision: could a skeptical stranger, with no account and no trust in us, verify this claim themselves? If no, the layer is not finished, however finished it looks.

MUST — load-bearing. The product is a lie without it. SHOULD — judgment. Choose, then say what you chose. OPEN — stop and ask Ammanuel.
Contentsii
A woman standing in cream separates in warm daylight
A repository is a record of a mind changing over time. Most hosts treat that record as storage. Layer I · The Ground
Witness · Layer IThe Ground
Layer I

A repository is a record of a mind changing over time.

Most hosts treat that record as storage. Witness treats it the way a registrar treats a deed: every change hashed, signed, and independently attested, so that years later you can prove — to a buyer, a court, a partner, an acquirer — what existed, and when.

It is five things at once: a git host, a provenance engine, an appraisal house, a secure-delivery channel, and a marketplace. They are one product because each is worth more when the record underneath it is real. Remove the record and you have five mediocre tools; keep it and you have an instrument.

Who it is for: builders with a body of work and no institutional apparatus behind it. Solo founders, small studios, people who shipped something remarkable at two in the morning and have nothing to show for it but a commit log. Witness turns the commit log into the apparatus.

It is not a law firm, a patent office, a valuation authority, or a DRM system — and it says so on the surfaces, not in a footnote.

The five things it sells
Product
Price
The Repository
Everything you make, on the record.
$29.99 / mo
The Resonance Dossier
A thorough reading of what you've built.
$99 · $999
The Payload
One encrypted link for one beta tester.
$99 / mo / repo
A Fresh Tasting
A new reading, when the work has moved.
$30
The Market
Sell it with the receipts attached.
$99 / seat · 30%
The house account · MUST

Comping is a property of the account row — accounts.comped = 1 — evaluated at entitlement-check time. Never a coupon, never a subscription object that can lapse, never a Stripe-side artifact. If Stripe is down, a comped account still has everything.

The test that proves it: stub the billing provider to throw on every call, then assert full entitlements for all five products.

Hands on A price list and an audience. Nothing below this layer is allowed to contradict either.
The GroundI
Witness · Layer IIThe Invariants
Layer II · The spine

Eight sentences, each with a mechanism that enforces it.

An invariant defended by good intentions is a preference. Every one of these has a place in the codebase where a violation stops the build, fails a test, or refuses to render. If a change would violate one, raise it — do not route around it quietly.

The invariant
Enforced by
I1
Append-only.

Nothing witnessed is mutated or deleted. Corrections are new rows that supersede, with a pointer to what they supersede.

A migration lint that rejects UPDATE/DELETE against witnessed tables outside the two allowed paths (refs, payload ciphertext). CI greps for the word delete and demands a justification comment.
I2
Independently verifiable.

Every anchor checks out with stock tools and zero calls to any Witness server.

The stranger test: a fresh agent with only receipt.zip and VERIFY.md, network-isolated from us, must verify all four. Transcript logged each anchor-touching phase.
I3
The key never touches disk.

Generated once, sealed into secrets, never written to a file, never logged, never returned by any endpoint.

The ceremony is a documented Worker route that exports only the public half. A CI grep bans WITNESS_SIGNING_KEY from every response path and every log call.
I4
Canonical bytes.

Anything hashed is canonicalized deterministically first. A hash you cannot reproduce is a number, not a proof.

One chokepoint function (Layer IV) and a lint that forbids crypto.subtle.digest anywhere outside it. RFC 8785 test vectors committed.
I5
The line is drawn where the buyer can see it.

Imported history is attested by GitHub, not by us. Witnessing starts at import.

A shared renderer for any commit list; a snapshot test asserting the boundary element is present whenever a repo has imported_from set.
I6
No claim the model can't back.

Generated prose lives under a forbidden-vocabulary list.

A linter that fails the render — not a prompt that asks nicely. Violations retry with the offence named, three times, then error visibly (Layer XII).
I7
Determinism where determinism is promised.

Same brief, same SVG bytes, same hash. No randomness not seeded from the content itself.

The determinism sweep in CI on every commit: crests, PDFs, canonical hashes and STH roots regenerated and byte-compared.
I8
Zero raw hex.

Every colour on every surface resolves through a design token.

Stylelint color-no-hex plus a CI grep for hex literals across src/** outside the vendored token sheet. A hit is a build failure.
Hands on Eight tests that exist before the features they guard. Write them in Phase 0 as failing tests; they become the definition of done for every phase after.
The InvariantsII
Witness · Layer IIIThe Topology
Layer III

One worker, no origin, and a cost floor near zero.

Everything runs on Cloudflare. No container, no VPS. This is not taste — it is what keeps the verification story clean, because there is no machine of ours a verifier has to believe in.

TypeScript, strict. Hono for routing. Server-rendered HTML with islands of vanilla JavaScript where interaction is genuinely needed. The product's aesthetic is a printed document that happens to be alive; a three-hundred-kilobyte bundle would contradict the thesis before a word was read.

Storage discipline. D1 holds facts and pointers. R2 holds bytes. Nothing over a hundred kilobytes enters D1, ever.

The one strong-consistency requirement. The Merkle log needs a single writer, so one Durable Object serialises appends and assigns indices. D1 alone cannot give ordering under concurrency, and ordering is the entire value of the log. Everything else in the system may be eventually consistent; this may not.

Binding names are contractual

Use exactly these. A rename is a migration, not a preference — the receipt bundles reference artifact keys by bucket.

witness.yourwonderful.life │ ┌────┴──────────────────────────────────────┐ │ Worker: witness-app (all HTTP) │ │ ├── / marketing + shell │ │ ├── /r/:owner/:repo the record │ │ ├── /d/:dossier the dossier │ │ ├── /p/#key the payload │ │ ├── /m the market │ │ ├── /api/* JSON API │ │ ├── /git/* smart HTTP │ │ └── /.well-known/witness-key.json │ └────┬──────────────────────────────────────┘ │ ┌────┴────┬────────┬─────────┬──────────┬───────┐ D1 R2 ×3 KV ×2 Queues ×4 DO Cron DB OBJECTS SESSIONS Q_TSA LOG */5 sweep PAYLOADS CACHE Q_OTS 0 * upgrade ARTIFACTS Q_MERKLE 0 3 STH Q_DOSSIER 0 4 audit
Kind
Binding
Purpose
D1
DB
All relational state — facts and pointers only
R2
OBJECTS
Git objects, packfiles, import tarballs
R2
PAYLOADS
AES-GCM ciphertext bundles, and nothing else
R2
ARTIFACTS
PDFs, crests, .ots, .tsr, STH archives
KV
SESSIONS · CACHE
Short-TTL auth; rendered fragments and rate limits
Queue
Q_TSA · Q_OTS · Q_MERKLE · Q_DOSSIER
The three slow anchors and the long generation
DO
LOG
The Merkle log's single writer — the one ordered thing
Acceptance Preflight prints a green table of every binding, secret and external tool, and fails loudly on any one missing. Twenty tables described; twenty-one is fine, thirty means the model is wrong and you should say so.
The TopologyIII
Witness · Layer IVCanonical Bytes
Layer IV · The chokepoint

One function. Everything anchors through it.

This is the smallest layer and the one most likely to quietly ruin the product. If two code paths canonicalize differently, receipts stop reproducing and nobody finds out for a year. So there is exactly one function, one hash algorithm, and a lint that forbids hashing anywhere else.

src/anchor/canonical.ts export type Canonical = { bytes: Uint8Array; // exactly what was hashed hex: string; // sha-256, lowercase manifest?: Manifest; // composites only }; canonicalHash(subject: Subject): Promise<Canonical> // Subject is a tagged union, never a loose object: // { kind: 'json', value: unknown } → JCS // { kind: 'git', bytes: Uint8Array } → as-is // { kind: 'bytes', bytes: Uint8Array } → as-is // { kind: 'composite', type, version, parts } → manifest
The composite manifest

A composite subject — a dossier, a deal, a receipt — hashes a manifest, not a concatenation. The manifest is a JCS object of {type, version, parts:[{name, sha256}]}, and it is stored in ARTIFACTS so a verifier can reconstruct the thing that was signed rather than take our word for its shape.

Subject
Canonical form
JSON
RFC 8785 (JCS). Implement it properly — sorted keys, no insignificant whitespace, canonical number formatting, UTF-8 NFC. Do not hand-roll JSON.stringify and hope.
Git objects
Their native form. Git solved this; use the object bytes as they are.
Files, PDFs, SVGs
Raw bytes.
Composites
The canonical manifest, then hash that.
Hash function · one, throughout

SHA-256. No second algorithm, no negotiation, no per-subject choice. Where a future needs agility, it gets a new anchor kind and a version field — not a fork in this function.

Unit-test it against fixed vectors committed to the repo. A canonicalizer without vectors is a rumour.

Acceptance JCS passes the RFC 8785 vectors. A signature produced by the Worker verifies in a standalone Node script using only the well-known JSON. Phase 1.
Canonical BytesIV
A woman with both arms raised overhead, palms together, in bright light
Four independent attestations of one hash — three of them involving somebody other than us. Layer V · The Heart
Witness · Layer VThe Four Anchors
Layer V · The heart

Four independent attestations of one hash — three of them involving somebody other than us.

The phrase quadruple timestamped has to mean something a stranger can check on a laptop with no network access to Witness. Each anchor answers a different question, and the set is strong precisely because the questions are different: did the house sign it, did an independent authority see it, did a public chain record it, and was it in this position in the sequence. The fourth is the one people forget, and it is the one that makes rewriting history impossible rather than merely rude.

Anchor oneMilliseconds

The Seal

Ed25519 over the canonical hash. The house's own word, attributable forever.

What is signed is never the bare hash — it is a JCS object of {v, subject_type, subject_id, hash, signed_at, key_id}, stored beside the signature so a verifier reconstructs exactly what was signed. WebCrypto Ed25519; key imported from the secret, never touched. Public half at /.well-known/witness-key.json, an array of keys with valid_from/valid_until from day one. You will not rotate now. You will be very glad the field is there later.

$ node verify-seal.mjs receipt.json witness-key.json seal ok · key_id 4f2c…a19b
Anchor two1–3 seconds

The Authority

RFC 3161. A real token from a time-stamping authority that has never heard of us.

The TimeStampReq is built in DER by hand — there is no ASN.1 library in Workers worth trusting. Set certReq TRUE so the token embeds the chain and verifies standalone; random nonce, checked on response; PKIStatus 0 or 1 only. Store the raw .tsr with the TSA's chain and root beside it — a token you cannot verify in ten years because a CA's website went dark is not an anchor.

Two authorities, not one. Request from both, store both tokens, record which answered and the policy OID. The authority is stronger as a plural and the marginal cost is one HTTP request.

$ openssl ts -verify -data subject.bin \ -in timestamp.tsr -CAfile tsa-chain.pem Verification: OK
Anchor three1–24 hours

The Chain

OpenTimestamps into Bitcoin. Nobody's permission required, nobody's server load-bearing.

Submit the digest to all four standard calendars — alice, bob, finney, catallaxy. A proof that depends on one calendar staying alive is a proof with a single point of failure. Build a genuine .ots: magic header, version, digest, then the operation tree with real append/prepend/sha256 steps and attestation markers.

The first proof is pending and that is correct — it holds calendar URIs, not a block. The hourly upgrade job fetches the completed path, rewrites the file with a Bitcoin attestation at block N, and records the height. Allow twenty-four hours before calling it a failure.

$ ots verify proof.ots Bitcoin block 908,431 attests data existed as of 2026-08-11 04:22:07 UTC
Anchor fourSeconds → next STH

The Log

RFC 6962, built exactly as Certificate Transparency builds one. This anchor proves order.

Leaf SHA256(0x00 ‖ leaf_data), node SHA256(0x01 ‖ L ‖ R). Do not deviate — the point is that CT tooling and CT reasoning apply unchanged. The LOG Durable Object is the sole appender and assigns the indices; no other code path writes leaves.

The good bit. A signed tree head every five minutes or 256 leaves, and each head is itself sent to the TSA and to Bitcoin. The log's own head is externally anchored, which is the mechanism that stops us from rewriting the log. Inclusion and consistency proofs are public JSON, no auth, forever.

$ node tools/verify-inclusion.mjs \ inclusion.json sth.json recomputed root == sth.root_hash · ok
Telling the truth about latency · MUST

The four do not land together, so the interface never pretends they did. A receipt three minutes old shows two confirmed, one sealing and one pending, with an estimate. Four checkmarks appear when there are four. The maturation is not an embarrassment — it is the evidence the Bitcoin anchor is real, because a fake one would be instant. Say that in one line, on the surface.

Seal Authority Log · sealing Chain · pending ~2h
Retry discipline

Queue consumers with exponential backoff: twelve attempts over forty-eight hours, then state='failed' and an alert. A failed anchor is visible on the receipt. A receipt that quietly shows three anchors where four were promised is the exact failure this company exists to prevent, and it would be committed by omission rather than malice — which is why it needs a test, not a resolution.

The fuzz test: append ten thousand leaves, take heads at random points, assert every pair is consistency-provable and every leaf inclusion-provable.

Acceptance Stock openssl ts -verify exits 0 on a real token, in CI, shelling out to the real binary — the single most important test in the repository, because it is the one that proves the DER encoder is honest. The real ots client prints a Bitcoin attestation on an upgraded proof. The ten-thousand-leaf fuzz passes. Phase 2.
The Four AnchorsV
Witness · Layer VIThe Receipt
Layer VI · Build it in phase two

This bundle is the product. Everything else is presentation.

Every witnessed subject exports a receipt: an archive that contains the subject's manifest, all four attestations, the keys and chains needed to check them, and a page of commands that work offline. It is the deliverable a buyer keeps, the thing a lawyer attaches, the artefact that still functions if Witness is gone.

Which is why it is built in phase two, before there is a single beautiful screen. A gorgeous product with a hollow receipt is the one failure mode from which there is no recovery — you would be shipping a promise in the shape of a proof.

The strongest thing Witness can say to a stranger is: don't trust us, run these four commands.

The stranger test

Spawn a fresh agent with no context but the archive and VERIFY.md, and no network route to us. If it cannot verify all four, the phase is not done. Log the transcript into the build log — including the parts where it got confused, because those are the documentation bugs.

receipt.zip ├── receipt.json subject manifest + all four ├── witness-key.json public key(s), snapshotted ├── seal.sig raw Ed25519 signature ├── timestamp.tsr RFC 3161 token(s) ├── tsa-chain.pem the authority's chain + root ├── proof.ots OpenTimestamps proof ├── inclusion.json leaf index + audit path + STH ├── sth.json the head, and its own anchors └── VERIFY.md four commands, offline
Subject type
What a receipt proves about it
ref_move
This branch pointed here, at this time, in this position in the sequence
tasting
The house thought this, on this date, before the work moved
dossier
These findings, citing these bytes, existed at this commit
payload_access
This link was opened, then, by this fingerprint
mark
The mark was awarded, on its own evidence, and never quietly revised
deal
These parties transferred this, for this, with everything attached
Acceptance A stranger, given only the archive and its verify page, checks all four anchors with no network access to Witness — and says so in their own words. Phase 2.
The ReceiptVI
A woman in cream standing on one leg in a sunlit interior
The bundle is the product. Everything else is presentation. Layer VI · The Receipt
Witness · Layer VIIThe Record
Layer VII · The Repository · $29.99 / month

The push must feel like git. The anchoring happens behind it.

Smart HTTP over /git/:owner/:repo.gitinfo/refs, git-upload-pack, git-receive-pack. Objects to R2, content-addressed by git's SHA-1 with a SHA-256 sidecar for our anchoring. Store the pack plus an index rather than exploding to loose objects; the cost difference compounds and nothing needs the loose form.

On every receive-pack that moves a ref
iWrite the ref_history row. This table is append-only; refs is the one place a value legitimately changes, and every change leaves a corpse here on purpose. iiCanonical-hash {repo, ref, old_sha, new_sha, commits[]}. iiiEnqueue all four anchors. ivReturn success to the client without waiting. Under 500ms at the median, excluding transfer.
Import, and the line

OAuth, then per repo: a tarball for content, paginated commit metadata, refs. Stream the tar and chunk to R2 multipart — do not buffer two gigabytes in a Worker. Long imports run on a queue with a resumable cursor and show real progress, not a spinner with an opinion.

Every imported commit is source='imported'. Witnessing begins at completion, and the record draws that line where a buyer can see it. Webhook sync keeps the mirror current until the user cuts over.

Specimen · the recordSurface 2 of 5
santaanna / luminous-ledger main · 1,204 commits
Seal the parts table before render
a4f19c2 · 11 AUG MMXXVI · 04:19
Ledger: supersede rather than amend
8b02e71 · 10 AUG MMXXVI · 23:52
Witnessing begins here
Below: attested by GitHub
First pass at the parts model
c31d0aa · 2 FEB MMXXV · imported
GitHub
Initial commit
0f7ab19 · 14 JAN MMXXV · imported
GitHub

The boundary is a gold hairline with a tracked label — the system's rule-with-a-label divider, doing the most load-bearing work on the surface. Four dots is a fully anchored commit; a hollow dot is honest about what has not landed yet. That honesty is what makes everything above the line worth more.

Acceptance Clone and push from a real terminal against the live Worker; every push produces four anchor rows. Import a repository of more than five thousand commits without running out of memory, and the boundary renders. Phases 4 and 5.
The RecordVII
Witness · Layer VIIIThe Reading
Layer VIII · The Tasting · included, and $30 again later

The note is allowed to be delightful. The valuations are not.

Every app gets a tasting, and it produces four things: a note, an identity, a crest, and three valuations. Keeping them in visibly different registers is the whole design. A codebase may have a nose of late-night confidence and unresolved TODOs; a valuation may not have a nose of anything. Different typography, different container, different verbs — a reader must never be one glance away from mistaking taste for arithmetic.

Specimen · the note · openly a matter of taste
Callsign The Chatty Barnacle "It holds on, and it will tell you why."
NoseLate-night confidence, warm cache, a faint acetone of unresolved TODOs. PalateStructured and drier than expected — the data model was decided by someone who had been burned before. FinishLong. The test suite keeps talking after the feature stops. PairingA quiet Tuesday and one honest reviewer.
A matter of taste · not an assessment

Italic serif throughout, tracked labels, one gold line. The note is the only place in Witness where the house is permitted a joke — and the joke has to carry information the straight sentence could not.

Specimen · the valuations · ranges, not appraisals
Replacement Confidence · moderate
Low
$318,000
Mid
$422,400
High
$561,000
The arithmetic, shown
Substantive source lines, excluding vendored41,900 Engineer-months at 1,100 lines / month38.1 Blended senior rate, US remote, MMXXVI$11,100 / mo Design and specification overhead× 1.18 Midpoint$422,400

Confidence is moderate because three close comparables exist, all of them in a different distribution channel. Rates sourced from a public survey; the line count is reproducible from the anchored commit.

Ranges, not appraisals

Manrope labels, figures in italic serif, every number that entered the calculation named and sourced. A number without its inputs shown must not render — the component throws rather than degrading, because a bare figure is the most expensive thing this product could print.

The crest · deterministic

A structured brief — field, ordinary, charges, tinctures, mantling, motto ribbon — from a PRNG seeded with the hash of the repository's canonical identity. The brief is stored; the SVG is derived; both anchored. Tinctures resolve to register tokens, never hex, so a crest in Nocturne and the same crest in Daylight are the same crest wearing different weather.

Render a thousand crests twice and assert byte-identity.

The three methods
iReplacement. What would it cost to build this again, from scratch, competently? iiComparable. What have similar things sold for, and how similar are they really? iiiForward-earning. What could this plausibly earn, and under what assumptions?
The Luminous Mark

Withheld from most good work, which is what makes it mean anything. Criteria are public, specific, and live in the repository. The mark is anchored separately from its tasting so it can never be quietly revised; a revocation, if it ever happened, would be a new anchored event sitting beside the original, which never disappears.

If the generator awards it more than roughly one in fifteen, the criteria are too loose — say so rather than shipping an inflated currency.

Acceptance A thousand crests render byte-identically on repeat; every valuation renders its inputs or refuses to render; the mark's award rate across a fifty-repository sample sits under about seven per cent. Phase 7.
The ReadingVIII
A woman in a cream jacket with hands at her heart
The note is allowed to be delightful. The valuations are not. Layer VIII · The Reading
Witness · Layer IXThe Dossier
Layer IX · $99 per repository · $999 per collection

A hallucinated citation is the fastest way to destroy this company. Make one structurally impossible.

The dossier is a thorough reading of what has been built: everything that may be protectable, documented in plain language, with artwork, cited to real files. Its entire credibility rests on one property — that a reader who follows a citation finds exactly what the citation said would be there.

Stage
What it does, and what it refuses
i
Survey. Walk the tree and classify: language, dependency graph, module boundaries, distinctive algorithms, data models, novel interaction patterns, brand assets, copy. Find the substantive material; ignore the vendored.
ii
Findings. One row per candidate: kind, title, plain-language body, and citations of the form {path, sha, line_start, line_end}. A validator opens every citation against the actual commit and fails the dossier if any dangles.
iii
Artwork. A deterministic SVG per finding from a form brief — the same engine family as the crest, so a dossier's plates are reproducible too.
iv
Anchor. The findings set is canonicalized and quadruple-anchored before anything is rendered. The claim is fixed at the moment it is made, not at the moment it is typeset.
v
Render. The hand-written PDF writer.
vi
Preserve. The findings JSON is immutable; the PDF is derived. A regenerated PDF must hash-match or explain itself.
The PDF writer · hand-written

No library that drags a hundred transitive dependencies into an edge runtime. PDF 1.7 with a cross-reference table. Subset-embedded fonts as Type0 / CIDFontType2 with a proper ToUnicode CMap, because a dossier you cannot search is a photograph of a document. Artwork drawn as native content streams, converted from the SVG source rather than rasterised. Deterministic output: creation date taken from the anchor timestamp, fixed object ordering, same findings to the same bytes. And the receipt bundle rides along as a PDF file attachment — the proof travels with the document.

Specimen · a dossier pageSurface 3 of 5
Non-binding. Not legal advice. Finding 07 of 23
Method · data model

Supersession without mutation in the parts ledger

Entries are never amended. A correction writes a new row carrying a pointer to the row it supersedes, so the ledger's history of its own opinions is recoverable. The pattern is applied consistently across three tables, including the one where an in-place update would have been considerably easier.

Cited to src/ledger/supersede.ts · L41–L96 · a4f19c2
migrations/0007_ledger.sql · L12–L38 · a4f19c2
src/ledger/__tests__/supersede.test.ts · L8–L64 · a4f19c2
What existed on a given date — recorded, not adjudicated. 7

The disclaimer sits in the running header of every page — Manrope 600 at 10px in the muted ink. Not a footnote, not a first-page notice, not a modal dismissed once. This is a design decision and a legal one, and they happen to agree.

Why a collection is worth more than ten repositories

Because of one section: the cross-repository synthesis that finds the through-line between projects. That section is the entire justification for the tier, so it has to be genuinely good — a real argument about what this person keeps doing, not a summary of summaries. Enterprise is a contact route, not a price.

Acceptance Every citation in a generated dossier resolves to real bytes at the stated commit. The PDF is text-searchable, deterministic, and carries the running header on every page. A deliberately poisoned generation is blocked by the claims linter. Phase 8.
The DossierIX
Witness · Layer XThe Payload
Layer X · $99 / month / repository

Cloudflare holds ciphertext it cannot read, and that is a structural fact rather than a policy.

The bundle is encrypted with AES-256-GCM and a 96-bit IV, using a key generated in the seller's own browser. Ciphertext and IV go to R2. The key is never transmitted — it lives in the URL fragment, and browsers do not send fragments in HTTP requests. The viewer fetches the ciphertext, reads the fragment, and decrypts locally.

The shape of the link
https://witness.yourwonderful.life/p/01J9F… #k=zR7v… ↑ we store this ↑ we never see this

The threat model is "we cannot read it," so script substitution must be loud: the viewer's own JavaScript is served with subresource integrity and a strict policy — no inline script, no third-party origin. And a test greps the client bundle for any path that reads the fragment and reaches a network call. It is a crude test. It is also the one that would catch the mistake.

Revocation, and the one legitimate delete

Revoking deletes the ciphertext object and writes revoked_at. The link then decrypts nothing, because there is nothing. This is the only place in the system where the word delete is permitted, and the act itself is recorded as an append-only event.

Specimen · payload settingsSurface 5 of 5
Payload · build 1.4.0-beta One link, one tester
Expires14 days Maximum opens5 DownloadOff CopyOff WatermarkOn Domain lockone domain
View-only is a deterrent, not physics.

Encryption and revocation are cryptographically real. No-copy and watermarking are enforced by the viewer — someone determined can photograph a screen. What actually protects you is the ledger: every open is recorded, timestamped and anchored, which makes a leak attributable.

The ledger · three opens
11 AUG · 09:14 · fingerprint 7c1a…Anchored 11 AUG · 09:22 · fingerprint 7c1a…Anchored 12 AUG · 02:41 · fingerprint e908…Sealing

The honest edge is set in the copy, at the point of decision, above the ledger it refers to — not in a tooltip, and not softened. Ship that paragraph exactly as written; it is the sentence that makes the rest of the screen believable.

Acceptance The server can be shown never to receive the key — inspect the request logs on a real open. Revocation makes the link decrypt nothing. Every open writes an anchored ledger row. Phase 9.
The PayloadX
A woman reaching one arm overhead in low warm light
A hallucinated citation is the fastest way to destroy this company. Make one structurally impossible. Layer IX · The Dossier
Witness · Layer XIThe Market
Layer XI · $99 / month / seat · thirty per cent of a sale

The deal page is the single artefact that explains the entire company.

A buyer reads one continuous document before paying: the whole witnessed history with the import boundary visible, the dossier, the tasting, and three valuations with their inputs shown. Not tabs. Not an accordion. One scroll, in the order a sceptic would ask the questions, because the sequence is the argument — every claim arrives already carrying the means to check it.

Admission is by review, and exceptional quality only. Being declined costs nothing and touches nothing you hold — no fee, no flag on the repository, no record on any public surface, no effect on the tasting or the mark. A decline writes to one column and nowhere else, and there is a test that asserts no other table was touched. The take is thirty per cent, computed and displayed to both parties before commitment.

Specimen · the deal pageSurface 1 of 5 · the flagship
Listed · reviewed · quadruple-anchored The Chatty Barnacle santaanna / luminous-ledger · a parts ledger that never amends itself
Asking
$480,000
House take · 30%
$144,000
To the seller
$336,000
iThe witnessed history — 1,204 commits, boundary at 2 FEB MMXXVVerifiable
iiThe dossier — 23 findings, every citation resolvingAttached
iiiThe tasting — note, crest, and the drift since MMXXVSequence
ivThree valuations — with every input and its sourceArithmetic
vThe deed — on close, anchored, yours without usreceipt.zip
Read the record Verify it yourself
Design notes for the flagship

There is one button in the system — a tracked word with a generous hit area and no fill. On the deal page the two most important words are Read the record and Verify it yourself, and the second is set in gold. A marketplace that puts Buy in the loudest position is selling a listing; Witness is selling a record, and the interface should be caught agreeing.

Nothing here carries a shadow, a radius, or a badge. The whole page is hairlines, tracked labels, italic figures and air — the same grammar as a printed prospectus, because that is the document this is pretending to be, and the pretence is honest.

The deed

On close, a canonical deal record — parties, listing, amount, and the full receipt bundle of everything transferred — is quadruple-anchored. The buyer's proof of purchase is not a page on our website; it is an archive that verifies without us, which is the only kind of proof of purchase worth the name.

Acceptance A decline touches only the review-notes column, asserted by test. A closed deal produces a buyer-side receipt bundle that verifies standalone. Phase 10.
The MarketXI
A woman walking barefoot through a bright shaded room
The deal page is the single artefact that explains the entire company. Layer XI · The Market
Witness · Layer XIIThe Honesty
Layer XII · The last layer, built into all the others

Three honest edges, written once and rendered everywhere.

One file holds the edges, and the product surfaces render those exact sentences — not paraphrases. A parity test compares the file to every surface and fails the build if they diverge by a sentence. This is the cheapest possible defence against the slow drift where a caveat gets softer every quarter until it no longer says anything.

Edge oneView-only is a deterrent, not physics.

Rendered on the payload settings screen, in the copy. Encryption and revocation are real; the viewer's restrictions are a deterrent; the ledger is what protects you.

Edge twoThe dossier proves dates, not rights.

It cannot say a thing is patentable, protected, or owned. What it genuinely establishes is what existed on a given date — which is real leverage in a dispute or a diligence, and enough.

Edge threeImported history is inherited, and marked so.

We cannot retroactively witness a commit from 2021. Prior commits arrive attested by GitHub; witnessing starts at import, and the line is drawn where a buyer can see it.

The claims linter · MUST

It runs on every model-generated string before persistence, and in CI across all static copy. A violation fails the generation and retries with the offence named in the retry prompt — three attempts, then a visible error. Never silently strip and ship: a stripped sentence hides the fact that the model wanted to overclaim, and that fact is the useful signal. Log every violation so the prompt can be improved from evidence rather than from taste.

Forbidden in generated prose · word-boundary, case-insensitive

patentable · patented · protected by · you own · legally protected · infringes · infringement · trade secret status · copyrighted work of · guarantees · guaranteed · will be worth · certified · legally binding · proves ownership · proves you own

Required framings · checked for presence

The dossier's opening paragraph carries "what existed on a given date" or an approved variant. The valuations block carries "Ranges, not appraisals."

The asymmetry worth understanding

Marketing copy may say the dossier "documents everything that may be protectable" — that is a statement about the document's subject matter. The generated text may not assert that any specific thing is protectable. The linter enforces the second; a human writes the first. Do not let a well-meaning refactor collapse the two, and do not let the linter loose on the marketing page, where it would sand off a true sentence.

The adversarial pass

After the dossier phase, and again before deploy, run a pass whose only job is to find one place where the product asserts something stronger than the evidence supports. Every surface, every string, every generated paragraph. Report the findings even when the fix is annoying — especially then, because an annoying fix is exactly the one a busy builder talks themselves out of.

The honesty is not a compliance layer. It is the product's only unfakeable feature.

Acceptance The parity test fails if the honesty file and any surface diverge by a single sentence; the linter blocks a poisoned generation; no surface renders a confirmation that is not confirmed. Phase 12, and every phase before it.
The HonestyXII
A woman standing still with hands at her heart, eyes lowered
Three honest edges, written once and rendered everywhere — not paraphrases. Layer XII · The Honesty
Witness · The Surface LayerHaute Lumière, applied
The design system · read this before building any screen

Witness is set in Haute Lumière. Vendor the tokens verbatim; do not retype a value.

This supersedes the brief's design section. Witness dresses in Haute Lumière — Luminous Prosperity's editorial system — rather than Resonance OS. The three-register instruction survives intact; only the register names change, and the eight invariants are unaffected. Copy tokens/ and styles.css into src/styles/ unmodified, load them with the one-line loader, and build every other stylesheet only out of what is in them. If a value you need is not there, that is a design question for Ammanuel, not a hex literal.

This document is itself the specimen: everything you are reading is the system with nothing added. Sheets on a desk, one shadow, zero radius, hairline cells whose gaps are the rules, tracked Manrope furniture, figures in italic serif, and gold used four or five times a page and never as a fill.

The three rooms Witness ships
Daylight
The default. Pine ink on warm cream. The record, the market, the dossier by day.
Dusk
Golden hour, warm and soft-reading. The reading room: tastings, notes, the crest.
Nocturne
Deep pine-black. Night, and the payload viewer, where spare and serious is the brief.

Set on the root element as data-register. Night is a chosen modifier, never a media query — mood belongs to the reader, not the operating system. The other four registers exist in the tokens and may be offered later; do not delete them to "simplify".

Type · two families, one rule

If a human would read it aloud, it is serif. Cormorant Garamond carries every voice — headlines at weight 300 above 40px, decks in italic, body at 16.5px over 54 characters, figures in tables in italic. Manrope carries only the furniture a reader ignores: kickers at 10px and .32em, corner tags, folios, table heads, always uppercase, always tracked. The two never cross. The cursor falls into a serif — search and every text input is serif at 32px, and the only sans inputs are short codes.

Substitution, declared: the system owns no monospace, and adding one would make a third family. Code and hashes are set in Manrope 400 with tracking off. If alignment ever becomes load-bearing — a hex dump, a DER trace — raise it rather than importing a face.

What to build in src/ui/ — and nothing more
Component
Its one job
Sheet
A page as a sheet on the desk. The system's only shadow lives here.
Runhead · Folio
Tracked head, italic foot. Every long surface carries both.
HairRule
One hairline, optionally interrupted by a tracked label or the monogram. The import boundary is this component in gold.
Cells
A grid with a one-pixel gap over the rule colour, so the gaps become the rules. Every table and every card in the product is this. No individually bordered card exists.
AnchorState
Four dots: filled gold confirmed, gold-outlined sealing, rule-outlined pending, and a struck dot failed. Refuses to render a state it was not given.
Figures
Money and counts in italic serif, never rounded up for effect. Throws if handed a valuation without its inputs.
TextButton
The only button. A tracked word, 44px hit area, no fill. There is no primary variant, on any surface, ever.
Monogram
A circle through a line, 26px, stroked 0.8 in gold. Section breaks and the colophon. The system's only drawn mark, and it is not a logo.
The test before shipping a screen
iDoes the cursor fall into a serif when the user types? iiIs there a hex literal anywhere in the diff? Is there a radius, a second shadow, a badge, an emoji, an icon? iiiDoes anything animate more than a fade, or move on scroll? ivIs gold doing work as a fill or a button? (Then it is wrong.) vDoes any figure appear without its inputs, or any checkmark without its confirmation? viReduced motion: every duration collapses to zero, including the register cross-fade. The system was never carried by its motion.
The Surface Layerxiii
Witness · The Build OrderFourteen floors
Phase 0 → 13

Do not begin a phase until the previous one's test passes and you have said so out loud.

Each phase ends with a named acceptance test whose output is pasted into the build log. That log is how a stranger — or a future you — audits this build. The order is deliberately unfashionable: the receipt exists before the first beautiful screen, and the design system arrives at phase six, once there is something true to dress.

Phase
What lands
Acceptance
0
Preflight
Bindings, secrets, tokens on disk, openssl and the ots client in CI
A green table of every dependency, failing loudly on any one missing. Write the eight invariant tests here, failing.
1
Canonical + Seal
JCS, the one hash function, Ed25519, the key ceremony
RFC 8785 vectors pass. A Worker signature verifies in standalone Node using only the well-known JSON.
2
The other three anchors + the receipt
DER, TSA, OTS and its upgrade job, the Merkle object, the bundle
Stock openssl exits 0. The real ots client prints a block attestation. Ten thousand leaves fuzz clean. A stranger verifies all four offline.
3
Schema, accounts, entitlements, comped
With billing stubbed to throw on every call, a comped account resolves full entitlements for all five products.
4
Git hosting
Clone and push from a real terminal. Every push writes four anchor rows. Median push under 500ms excluding transfer.
5
GitHub import and the boundary
More than five thousand commits imported without running out of memory; the boundary renders; imported commits carry no false claim.
6
The surface layer
Tokens vendored, three registers, the app shell
Zero-hex check passes; all three registers render; night toggles by attribute and nothing responds to the operating system.
7
The Tasting
Note, callsign, motto, crest, three valuations, the Mark
A thousand crests byte-identical on repeat. Every valuation renders its inputs. Award rate under about seven per cent on fifty repositories.
8
The Dossier
Every citation resolves to real bytes. Searchable, deterministic, running header on every page. A poisoned generation is blocked.
9
The Payload
The server demonstrably never receives the key. Revocation decrypts nothing. Every open writes an anchored row.
10
The Market
A decline touches one column and nothing else. A closed deal produces a buyer-side bundle that verifies standalone.
11
Billing
Subscribe, cancel and reactivate in test mode across all five products; the comped path untouched by any of it.
12
Test mode and the honesty surfaces
The sandboxed frame, the band above it, the parity check
The parity test fails if the honesty file and any surface diverge by a single sentence.
13
Public deploy
Build it deploy-ready and ask. Ammanuel's call, not the builder's.
The Build Orderxiv
Witness · Before phase oneSecrets · and five open questions
Request these explicitly. Do not scaffold fakes.

Four accounts, one ceremony, and nothing in a committed file.

GitHub OAuth
Client id and secret; callback at /auth/github/callback; scopes repo, read:user, admin:repo_hook.
Anthropic
One key — the tasting, the dossier, and review assistance.
Stripe
Publishable, secret, webhook signing. Five products created; their ids recorded in the billing document.
Cloudflare
Account id, the zone, and the signing-key ceremony: generate in a Worker, return the public half, put the private half straight into a secret. It never touches disk. Write the ceremony down.

Everything through the secret store. Nothing in a committed environment file; the local variant is ignored, and a pre-commit hook checks that it still is.

Open · stop and ask
iCustom domains for the record. Does a seller want the record on their own domain? It affects certificate handling early, which is why it is asked early. iiWhat a collection is. An arbitrary set, or one requiring shared ownership? The answer sets the shape of the $999 tier and of the market. iiiMark revocation. Build the append-only mechanism on day one; never use it. A mark you cannot revoke is a sticker, and a mark you revoke quietly is worse. ivA second time-stamping authority. Yes, unambiguously. One extra HTTP request buys a plural noun. vDeploy timing. Ammanuel's call.
What to report, and when

Every phase completion, with the acceptance output and one line on what surprised you. Immediately, if an invariant is under pressure — never route around the spine quietly. Immediately, if the tokens are not on disk. And whenever you find a better way: the brief is the floor, not the ceiling. A sharper deal page, a stronger anchor, a verification story even easier for a stranger — say it. That conversation is part of the build.

Before phase onexv

Witness exists because a record that can be withdrawn was never a record. Build accordingly.

Set from one system

Haute Lumière — seven registers, two families, one shadow, zero radius. Tokens vendored verbatim; no value in this document was invented.

Substitutions, declared

Code is set in Manrope 400; the system owns no monospace. No photography is used — the plate library is reserved for the issues, where each image appears exactly once.

Editions

Web · print · and the builder's copy, which is the only edition that matters until phase thirteen.

Luminous Prosperity Inc.MMXXVI

Witness · Write in

A record that can be withdrawn was never a record.

Witness is being built now. Say what you make, and you will hear when there is something to stand on.

A person reads these and a person answers them. Your address is kept to write back to you and for nothing else — it is not sold, not advertised against, and there is no third party in it. There is no tracker on this page.