Skip to content

Propose UUIDv4 record identity application profile (RFC 0009) - #19

Merged
andrewperis merged 2 commits into
mainfrom
proposal/stable-record-id-contract
Oct 24, 2026
Merged

andrewperis merged 2 commits into
mainfrom
proposal/stable-record-id-contract

Conversation

@andrewperis

@andrewperis andrewperis commented Oct 24, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Draft RFC 0009 proposes a reusable application-level naming/identity profile for character, location and relationship records, built on RFC 9562 UUIDv4. It uses record.<kind>.<uuidv4> with standard hyphenated UUID text and a lowercase application convention.

Pinpoint references: section 4: text representation, 4.1: variant, 5.4: UUIDv4, and 6.9: randomness guidance. The proposal distinguishes UUID requirements (122 random bits plus version/variant) from our typed prefix, lowercase wire convention, inventory/reservation, permanence, reference and version policies.

This PR is ready for review; the RFC remains Draft even if merged. It does not accept a contract or authorize allocation, adoption or publication. This is a local application profile, not an IETF submission or endorsed standard. A possible broader RFC is a separate future decision. The schema is proposal-local without a canonical $id. All examples are synthetic.

Compatibility

  • Classification: new additive proposed family; no existing contract behavior changes.
  • Current version: no stable record ID contract; identifier/taxonomy placeholders.
  • Proposed version: 0.1.0, proposal only.
  • Affected consumers: future record storage/validation and reference-producing tools; maintainers must review before adoption.
  • Related RFC: 0009. Context Builder's existing opaque UUIDv4 URNs remain unchanged and distinct from persistent record identity. Released schemas, artifacts and namespaces are untouched.
  • The previous custom 32-hex suffix existed only in this unaccepted proposal; it is replaced with standard UUIDv4 text.

Validation

At head 964a7c772d8f7c26586861748bc1307231ddbfd5:

  • Exact-head CI: Node 22 and Node 24 both passed.
  • npm test: 256 passed, 0 failed, including eight record ID/profile tests and existing release-byte checks.
  • node --test tests/stable-record-ids.test.cjs: 8 passed.
  • Negative cases cover every non-v4 version nibble and forbidden variant nibble, uppercase/mixed-case text, absent or wrong hyphens, whitespace, braces, bare/URN forms, nil/max UUIDs, and malformed lengths/hex.
  • All four allowed variant nibbles pass; synthetic UUIDv4 fixtures were generated with uuid.uuid4(). An ephemeral crypto.randomUUID() integration check passes. Syntax tests do not claim to prove entropy.
  • Changed JSON parsing, local Markdown file-link targets and git diff --check pass.

Decision needed

@andrewperis (CODEOWNER), with affected consumer maintainers: review the application rules and uniqueness scope, select the accountable inventory owner/reservation workflow, and confirm any legacy scheme compatibility before acceptance. No real records are allocated or migrated.

Checklist

  • Proposal text and proposal-local schema agree.
  • Valid and invalid synthetic cases cover syntax, version/variant and references.
  • New additive proposal; no breaking migration activated.
  • Changelog records proposed version and compatibility class.
  • No production runtime, protected creative material, credentials or personal data included.

Original technical proposal and synthetic fixtures; repository license applies.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 24, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-24T15:37:44.751402Z 033b5f4 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@andrewperis andrewperis changed the title Propose stable record ID contract (RFC 0009) Propose UUIDv4 record identity application profile (RFC 0009) Oct 24, 2026
@andrewperis
andrewperis merged commit 81296eb into main Oct 24, 2026
2 checks passed
@andrewperis
andrewperis deleted the proposal/stable-record-id-contract branch October 24, 2026 16:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant