Identity Store Specification: A Stack of Drafts
Table of Contents
What this is
A practical layout for agent identities proposes how one person files credentials for themselves and their agents, and checks it against the standards. A store was built on that ground for real accounts the same day, and then written down as a sealed specification: a document handed to another agent with nothing else, from which it could build something compatible. That is v1.
v1 left out six things the layout note and the revision notes on digital shapeshifting had already found it needed. Rather than one large v2, each is a draft of its own, stacked on the one below:
| draft | adds | rules it touches | state |
|---|---|---|---|
| v1 | the base: paths, entries, a record in the clear, readers per owner, operations, conformance | all | sealed 2026-10-10 |
| v2 | names in normal form: lower case, no trailing dot, A-labels, injective within a realm | P3, P4, P8, C7 | sealed 2026-10-11 |
| v3 | environments, a closed set, that never read each other | Env, N1-N3, C8 |
draft |
| v4 | generations for derived secrets; Rotate only goes forward |
E6, E7, Rotate, C9-C10 |
draft |
| v5 | where a promoted credential lives: federation, another holder, or a copy | W1-W4, I7-I8, C11-C13 | draft |
| v6 | a proxy route table: the agent never holds the secret | R1-R6, I9, S4, C14-C17 | draft |
| v7 | a harness: every case runs, and every check has been seen to fail | H1-H7 | draft |
Each draft is the whole specification, not a patch, because a sealed document has to stand alone. Each carries a section saying what changed from the one below and a section of questions for its reviewer.
Why stacked
The order is the order of dependence. v6 joins a route to an entry by realm, and v5 records runtimes by path; both are only as good as two spellings of one name being one string, which is v2. v5 needs to say a copy is rotated everywhere, which is easier once v4 has said what rotation does to a derived secret. v7 tests everything below it, so it comes last.
Stacking gives each change a reviewer's attention of its own, and a place to stop. A question answered in review of v3 changes v3; the answer is then carried into v4 to v7 before any of them is sealed.
Sealing
A draft is sealed by copying it, verbatim, into a private repository of its own with a record of where it came from: the tag and commit of the source, its size and its SHA-256. From then on it is not edited. What review finds, and what an agent building from it finds, is written beside it, in that repository's findings, and carried into the next draft. This is the same discipline as any rebuild graded against a fixed target: a specification patched during the build grades the build against a moving line.
The drafts' source is a private skill; the pages linked here are generated from it and differ only in their header and navigation.
The sealed repositories exist for a second reason: cleanliness. An agent given one sees the specification and nothing else, so anything the specification leaves unsaid shows up as a question, not as something the agent quietly copied from a store it should not have seen. Every name in every draft is invented for the same reason.
What the stack still does not cover
v1's last section holds for all seven: a store can conform to every rule
on a machine where an agent reads a production token out of a .env file
in a checkout. The proxy in v6 narrows that, since the agent need not
hold the token, but it does nothing for the files already there.
Also left open throughout: hardware second factors, a mailbox as the root of recovery, and whether a passport number belongs in a credential store at all. They are listed in each draft's section 9.