A Directory Of People And Their Keys: A Build Brief For The pki.sgit.ai Agent
Summary
The brief that turned this site from a key registry designed for agents into a register of people. Dinis Cruz wants pki.sgit.ai to be where the people he works with publish their public keys, have them verified and verify each other, so he can find someone and send them a secret or a message only they can read. The order: people first on the site; the passkey and vault reused from the newsroom; keys made in the browser and compatible with sgit's; evidence (website, GitHub, DNS); his verification and the person's confirmation; two-way links, the bound, withdrawal, the graph and degrees of separation; sending by QR code; invitations by QR code. Its central move resolves the question this site had published unresolved, the attestation trade: a link is written in the linker's own record and counts only when the other person writes one back, so a vouch has nowhere to land in someone else's record. One number to watch: real public keys in the register.
Key concepts
- The register of people — every record checked in the reader's browser; the count of real keys
- Two ways, or not at all — the answer to the attestation trade, and to 2019
- Your vault — passkey, door, master, book: the newsroom's design, reused
- Send a message — sealed in the browser, a link and a QR code, or an inbox
- Invitations — a QR code with the URL printed above it, signed by the inviter
- The archive — what the site was, kept
Key ideas
- Start with the key: nobody gets a record from someone else's description of them.
- Evidence says an account and a key go together; it does not say the person is who they say. That is what the anchor is for.
- Being the anchor is a choice, and stating it is better than hiding it; it is how this starts, not how it has to stay.
- A link only counts when it goes both ways, and each side is written in its owner's own record, so flooding has nowhere to land.
- Two-way links stop flooding, not lying: the anchor and the evidence make a link worth something.
- Degrees of separation are computed from the records each time, never stored as a fact.
- The point is practical: find someone and write to them.
On this site
Implemented in v0.2.0: people/ (the register, a person, how it works), vault/, send/, m/, invite/, join/, the statement types evidence, link and inbox on the register's own envelope, directory/ with its fixtures and admin/build/people.mjs, and the site's navigation made people-first with the agent material kept under archive/. The article it came with is captured beside it.