feat: add classification metadata predicate refs - #6
Merged
Conversation
jonathanprozzi
force-pushed
the
feat/classification-metadata-predicates
branch
from
June 9, 2026 14:45
67d8060 to
254dfce
Compare
ENG-12257 Add 'metadataPredicates' field and references to all entities in classifications
ScopeAdd classification-level This is the final wiring step in the transcript/spec sequence:
Desired behaviorFor each supported classification, expose the predicates Intuition recommends for metadata triples around atoms of that type. These are recommendations and package-level metadata, not backend enforcement yet. Example: SpotifySongAtom
classification: music-recording / MusicRecording
SpotifySongAtom -> inPlaylist -> MySongsPlaylist
SpotifySongAtom -> inAlbum -> SomeAlbum
SpotifySongAtom -> byArtist -> SomeArtistIn that model, Implementation notes
Out of scope
Inputs |
jonathanprozzi
force-pushed
the
feat/classification-metadata-predicates
branch
2 times, most recently
from
June 10, 2026 14:38
c6ddb76 to
889b68d
Compare
jonathanprozzi
force-pushed
the
feat/predicate-metadata-backfill
branch
from
June 11, 2026 14:16
03ec77f to
86358a2
Compare
jonathanprozzi
force-pushed
the
feat/classification-metadata-predicates
branch
from
June 11, 2026 14:16
889b68d to
29ae771
Compare
jonathanprozzi
marked this pull request as ready for review
June 12, 2026 19:16
jonathanprozzi
force-pushed
the
feat/predicate-metadata-backfill
branch
from
June 12, 2026 19:31
86358a2 to
b1b4e50
Compare
jonathanprozzi
force-pushed
the
feat/classification-metadata-predicates
branch
from
June 12, 2026 19:38
29ae771 to
606e3b8
Compare
jonathanprozzi
changed the base branch from
feat/predicate-metadata-backfill
to
main
June 12, 2026 19:38
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
metadataPredicatesto every classification spec as stable predicate-key references.field.schemaPropertypointers for recommended atom fields without copying schema inheritance/provenance into classifications.getPropertiesFor(...)and that every metadata predicate key exists in@0xintuition/predicates.schema/schemaPropertyso future schema sources can fit the same shape.social-media-accountto an Intuition-owned JSON-LD context instead of treating it as a schema.org-like exception.sameAssupport across schema.org-backed, user-facing classifications so imports can represent strict identity links as either creation-time atom data or later metadata triples.sameAsfield support.Architecture Notes
This keeps the transcript-aligned split:
fields[]= recommended atom data.metadataPredicates[]= recommended triple metadata.schemapoints at the source vocabulary for a classification; schema.org is the first supported source, not the only possible source.@0xintuition/predicates.Schema.org-backed fields keep local UX metadata (
label,description,placeholder,required) whileschemaPropertypoints at the canonical schema property. Consumers can derive inherited schema.org provenance from@0xintuition/schema-org.sameAsis treated as strict identity linking, not generic related content. This pass adds it broadly for schema.org-backed entities/items that users may dedupe across sources, including music recordings, albums, groups, people, articles, websites, software, applications, and similar public objects. We intentionally exclude blockchain/internal identity shapes (ethereum-account,ethereum-erc20,ethereum-smart-contract),social-media-account, and artifact-like types without clear examples (aggregate-rating,social-media-posting). ExistingsameAscoverage on earlier specs is preserved. We can revisit these boundaries as product examples sharpen.Date-like schema.org fields such as
datePublished,datePosted,startDate, andendDateremain atom data for now. They are not mapped topublishedAt; that predicate remains venue/platform/location semantics until the matrix/literal-object policy is defined.Stack
This branch is stacked on
feat/predicate-metadata-backfill, which is stacked onfeat/schema-org-vocabulary-package.The predicate relationship metadata experiment remains separate in the stacked draft PR on
feat/predicate-relationship-metadata. The follow-up matrix branch moves that contract into classifications instead of predicates.Validation
packages/primitives:bun run typecheckpackages/primitives:bun run testpackages/primitives:bun run checkpackages/classifications:bun run testpackages/classifications:bun run typecheckpackages/classifications:bun run buildbun run schema:validatebun run predicates:check-generatedbun run schema-org:check-generatedbun run buildbun run typecheckbun run testbun run check