Amends and accepts 0082: the id format is fixed here; the
four API areas of 0082 stand.
Context
0082 set public ids as a prefix plus base32 of one UUIDv7, and left the exact format open. The owner’s data answer DA9 (mem L535) fixes the length and the prefix rules on 2026-10-20. The HTTP rule examples still show a different format (gap B23).Decision
- A public id is
prefix_plus the lowercase Crockford base32 encoding of the UUIDv7. It is 26 characters after the prefix. - Prefixes are 2 to 6 letters. Each prefix is registered in the gen manifest, and gen fails on a duplicate prefix.
- The four API areas of 0082 stand.
- Database ids are never exposed. Public ids are the only external form.
Consequences
- Examples in the HTTP rules and the style guide must use the 26-character form. Until they do, they describe a format
that this ADR no longer accepts (gap B23;
docs-governance). - The registry of prefixes is a shared file in gen, so a new prefix is a reviewed change.
Enforcement
planned — gen checks prefix length and uniqueness against the manifest. The rule examples are fixed by the final docs pass.Alternatives
- Raw UUIDs externally: rejected by 0082 (database ids are never exposed).
Supersedes and sources
Supersedes: none. Amends and accepts: 0082. Sources: owner data answer DA9 (stackra-decisions-2026-10-19.md
L535, 2026-10-20); gap B23.