Skip to content

Update: v1.1.0-alpha - #15

Draft
kamescg wants to merge 9 commits into
mainfrom
update/v1.1.0-alpha
Draft

Update: v1.1.0-alpha#15
kamescg wants to merge 9 commits into
mainfrom
update/v1.1.0-alpha

Conversation

@kamescg

@kamescg kamescg commented Aug 10, 2026

Copy link
Copy Markdown
Contributor

iid-v1.1.0-alpha release train

Umbrella PR for the IID and atom-URI package release train. Merges to main only after the full plan (.planning/iid-v1.1.0-alpha/) completes: all child PRs merged, packed-tarball consumer gates pass, and the release checklist (P12) is executed.

Child PRs

Foundation and semantic lane (complete)

Contract lane (pending)

  • P06 — chore(protocol): URI-enabled contract artifact sync — draft until contracts-v2@1.1.0-alpha.0 passes the 14-day release-age policy on 2026-08-18
  • P07 — feat(protocol): createAtomsWithUris, getAtomUriConfig, URI event parsers → 3.1.0
  • P08 — feat(protocol): FeeProxy URI creation (launch-scope decision pending)
  • P09 — feat(react): URI-aware creation hooks → 0.1.0-alpha.1

Integration and release (pending)

  • P10 — test(conformance): cross-package clean-room harness (derive → classify → build → hash → encode → decode)
  • P11 — docs(iid): quickstarts, hackathon example, migration notes
  • P12 — chore(release): version freeze, publish manifest, evidence

Package versions on this branch

Package Version
@0xintuition/iid-spec 0.1.0-alpha.0 (new, docs-only)
@0xintuition/iid 0.1.0-alpha.0 (new)
@0xintuition/iid-registry 0.1.0-alpha.0 (new)
@0xintuition/classifications 0.1.0-alpha.1
@0xintuition/primitives 0.1.0-alpha.1
@0xintuition/protocol 3.1.0 (target, pending P07)
@0xintuition/react 0.1.0-alpha.1 (target, pending P09)

Open ratification question (flagged in #17): the purl canonicalizer rejects scoped npm packages — decide before any int:purl: atoms exist.

🤖 Generated with Claude Code

kamescg and others added 8 commits August 10, 2026 12:00
- Add the iid-v1.1.0-alpha planning packet (PR stack, package contracts,
  release runbook, acceptance matrix), including the recorded authoritative
  private reference source for porting.
- Restore the private root package version to 0.0.0; the release train is
  labeled by branch/PR name, not by the root version.
- Add scripts/package-registry.mjs as the single source of package order and
  packaging metadata, with topological-order and exact-internal-version
  assertions; pack-dry-run and smoke-tarballs now consume it instead of
  duplicated hard-coded arrays.
- Support documentation-only packages in tarball assertions ahead of iid-spec.
- Add a PR template with package/identity/fixture impact, contract artifact,
  target versions, and rollout notes fields.

Identity impact: none — existing golden bytes unchanged

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
- Port the IID specification from the private reference
  (0xIntuition/intuition-v2 @ 8b9e9aa11): explainer and spec sections
  00-09, with private-monorepo references replaced by public links.
- Author the 26 per-scheme normative documents and the scheme registry
  index, each with grammar, ordered canonicalization, validation rules,
  test vectors, and known limitations grounded in the reference
  canonicalizers.
- Add the versioned machine-readable conformance corpus: 145 vectors
  across canonicalization (positive+negative for every scheme), NORM-1,
  gen1 (with exact preimages), parsing (colon-bearing values, int:src:*
  guard), validation/anchor-eligibility, and the registry snapshot,
  plus their JSON schema. All vectors generated from and asserted
  against the reference implementation; spec-stated golden values
  (ISBN upconversion, gen1 movie r4) cross-checked.
- Add implementation-notes.md recording the resolved parser
  value-grammar deviation the public port fixes.
- Add a fixture/document integrity test (schema shape, coverage,
  unique IDs, link resolution, private-reference leak guard).
- Register iid-spec as the first, docs-only entry in the central
  package registry; teach guard-direct-publish docs-only rules.

Identity impact: none — existing golden bytes unchanged

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
- Port the reference implementation from the private source
  (0xIntuition/intuition-v2 @ 8b9e9aa11): all 26 scheme canonicalizers,
  NORM-1, gen1 preimage/hash, geohash, UUIDv5/podcast-guid, keccak16.
- Fix the parser value character class to the spec grammar (%x21-7E):
  space and non-ASCII values now reject as malformed, matching the
  normative parse vectors (recorded in iid-spec implementation-notes).
- Redesign the identity-ladder contract around the public declarative
  source/recipe types (field, same-as, url-origin, geohash,
  podcast-guid, and the frozen named derivations) and implement the
  pure declarative derivation engine that interprets them; ladders are
  serializable data, never callbacks.
- Add the typed inspection API (inspectIntuitionId) distinguishing
  malformed / unknown-scheme / noncanonical, with canonical repair for
  read paths, plus anchor-eligibility reasons (class-c vs polymorphic).
- Execute the full 145-vector conformance corpus from
  @0xintuition/iid-spec in the test suite (212 tests) alongside ported
  and new engine tests.
- Register iid second in the central package registry.

Identity impact: none — no existing golden bytes change; all
spec-stated golden values (ISBN upconversion, gen1 movie r4)
reproduce exactly.

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
* refactor(classifications): consume public IID identity contracts (P03)

- Replace the duplicated identity type definitions (IdentityClass,
  IdentitySchemeName, IdentityDerivationName, IdentityValueSource,
  IdentityRecipeField, IdentityRung) with re-exports from
  @0xintuition/iid; IdentitySchemeName remains as a compatibility alias
  of SchemeName. IdentitySpec stays local as the classification
  embedding of a ladder.
- Derive IDENTITY_SCHEME_CLASS and IDENTITY_SCHEME_TYPING from the iid
  scheme registry instead of hand-maintained tables, keeping the
  existing export names for consumers.
- Add exact dependency @0xintuition/iid@0.1.0-alpha.0 (and the viem
  peer it implies); bump classifications to 0.1.0-alpha.1.
- Update the primitives exact pin to classifications@0.1.0-alpha.1 and
  carry primitives at its release target 0.1.0-alpha.1.
- Generated ladder data, provenance checks, creation profiles, and
  legacy JSON-LD outputs are unchanged; all 39 classification tests
  and the 12-package clean-room smoke pass.

Identity impact: none — existing golden bytes unchanged

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* feat(classifications): expose identityLadderFor in the iid engine shape

The registry and the primitives builder consume ladders through the
deriveIntuitionId(ladder, values) contract; this exposes each
classification's declared ladder in exactly that shape (slug-namespaced
for gen1), completing the P03 scope item.

Identity impact: none — existing golden bytes unchanged

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* style: sort classification index exports

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
…20)

- Port the pure semantic bridge from the private reference
  (0xIntuition/intuition-v2 @ 8b9e9aa11, PR #1115): scheme->
  classification table (direct, value-typed, explicit-unmapped),
  provider capability plans, canonical-input leniency, and identifier
  hints.
- Adapt IidClassification to public classification fields (slug,
  schemaType, displayName, category); the private AtomCategory does
  not port — runtime label policy belongs in application adapters.
- Classification is total over unambiguous schemes with ratified
  outcomes: iswc explicitly unmapped; caip19 narrows to canonical
  eip155/erc20 only; mbid release folds to music-album, label to
  company, work unmapped; olid A->person, W/M->book; gen1 slug
  authoritative when the classification exists.
- Provider plans are deterministic, open/no-key-first capability
  identifiers; value-aware narrowing for acct/purl/caip10/caip19.
- Port and adapt the five test suites (42 tests): totality, ladder
  coherence (registry as read-side inverse of ladders), vocabulary
  grounding via schema-org, provider ordering/narrowing, hints, and
  live golden-path fixtures through the real ladders.
- Register iid-registry after classifications in the release registry.

Identity impact: none — existing golden bytes unchanged

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
- Add buildIidAnchor, the supported high-level path from a
  classification's field values to on-chain-ready atom bytes:
  interprets the declarative identity ladder through @0xintuition/iid,
  selects the strongest legal representation profile (P0 when
  anchor-eligible, otherwise a deterministic P1 payload with frozen key
  order carrying @type, identifier, and the fired recipe's fields),
  computes the atom ID through @0xintuition/ids, and returns the
  registry's classification and ordered provider plan.
- Class C and polymorphic-scheme identifiers floor at P1; requesting
  p0 for them is a structured error, never a silent downgrade.
- Add ordered, trimmed, exact-deduplicated URI-context manifest
  construction with offline policy limits (5 x 700 bytes) and optional
  caller-supplied live limits; URI context never changes atom bytes or
  atom ID.
- Add recognizeAtomData: classifies canonical IID anchors vs JSON
  payloads without reclassifying arbitrary strings; isValidAtomData
  now accepts valid canonical IID anchors as atom data.
- Add exact deps @0xintuition/iid@0.1.0-alpha.0 and
  @0xintuition/iid-registry@0.1.0-alpha.0, the ./anchor subpath
  export, README section, and 10 anchor tests including the golden P0
  ISRC byte/ID fixture (140 primitives tests total).
- Legacy JSON-LD builders unchanged; all existing snapshots stable.

Identity impact: none — existing golden bytes unchanged; new golden
P0 ISRC fixture values generated from the shipped ids package and
pinned in tests.

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
- Port the reference implementation from the private source
  (0xIntuition/intuition-v2 @ 8b9e9aa11): all 26 scheme canonicalizers,
  NORM-1, gen1 preimage/hash, geohash, UUIDv5/podcast-guid, keccak16.
- Fix the parser value character class to the spec grammar (%x21-7E):
  space and non-ASCII values now reject as malformed, matching the
  normative parse vectors (recorded in iid-spec implementation-notes).
- Redesign the identity-ladder contract around the public declarative
  source/recipe types (field, same-as, url-origin, geohash,
  podcast-guid, and the frozen named derivations) and implement the
  pure declarative derivation engine that interprets them; ladders are
  serializable data, never callbacks.
- Add the typed inspection API (inspectIntuitionId) distinguishing
  malformed / unknown-scheme / noncanonical, with canonical repair for
  read paths, plus anchor-eligibility reasons (class-c vs polymorphic).
- Execute the full 145-vector conformance corpus from
  @0xintuition/iid-spec in the test suite (212 tests) alongside ported
  and new engine tests.
- Register iid second in the central package registry.

Identity impact: none — no existing golden bytes change; all
spec-stated golden values (ISBN upconversion, gen1 movie r4)
reproduce exactly.

Signed-off-by: Kames Geraghty <sudo+github@kames.me>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
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