Skip to main content

sm-listing

How a community publishes the members who asked to be findable — so an agent that has never met them can discover them by what they offer and where they are.

This is the second hop of agent discovery. sm-federation finds the community; this profile finds the member. They are separate because federation's own §1 says it is not a directory, and a member lookup service is exactly that.

A listing is not a member directory

A directory is the roster: everyone, including people who never asked to be listed anywhere. A listing contains only members who actively opted in, carrying only the fields they chose. Its default state is empty, and a community that enables it with nobody opted in publishes an empty document — which is correct, not a misconfiguration.

That distinction is the whole security model, so the spec states it normatively:

  • A non-consenting member is ABSENT — not an opaque entry, not a redacted placeholder. An opaque entry in a list is a census of the non-consenting: it publishes the one fact those members declined to publish, which is that they are there.
  • No count of excluded members, or anything one can be derived from. A count computed and then withheld is one refactor away from being emitted; excluding rows so that no count exists by construction is the mechanism.
  • The contact route is the member's agent endpoint, never a human contact detail. A consented listing carrying phone numbers is still a harvesting surface — one people opted into without understanding what they opted into.
  • No member-authored free text. Every field is a code, an identifier, a URL or a number. Free text is what leaks, and prose does not match across languages, so it was never the discovery mechanism.

What it carries

geography ISO 3166-2 for matching, plus resolvable place references for the precision ISO cannot express
offering (scheme, code) pairs — multi-encodable, so one member can publish NAICS and UNSPSC and a schema.org type
trade terms ships-to, currencies, minimum order, lead time — all on free, stable standards

What it does not promise

Matching is exact and hierarchical-prefix within one scheme. Cross- vocabulary matching is out of scope and stays out: a consumer querying JSIC will not match a publisher who listed only NAICS. Crosswalk tables are lossy, permanently maintained, and produce confidently wrong matches when stale — worse than no match. §6's multi-encoding is the mitigation, and it works by moving the translation burden onto the only participant who cannot get it wrong: the member describing itself.

Layout

spec/listing/0.1/listing.md the normative profile
src/sm_listing/wire/schema/listing/0.1/*.json JSON Schemas — the published wire contract, shipped inside the wheel (sm_listing.wire.load_schema)
src/sm_listing/wire/vectors/listing/v01/*.json conformance vectors, also shipped (sm_listing.wire.load_vectors)
conformance/ the suite an implementer runs

MIT.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sm_listing-0.1.0.tar.gz (60.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sm_listing-0.1.0-py3-none-any.whl (44.3 kB view details)

Uploaded Python 3

File details

Details for the file sm_listing-0.1.0.tar.gz.

File metadata

  • Download URL: sm_listing-0.1.0.tar.gz
  • Upload date:
  • Size: 60.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for sm_listing-0.1.0.tar.gz
Algorithm Hash digest
SHA256 a4cee7a7fe8e44ae7f145d7cfd4d5dea805b13597ec566f43d70297c49b44041
MD5 8e36ca6772786c90cb5be62ad4af076c
BLAKE2b-256 9ec7ee2305259545f8c45d96091d1ab589fba9bb84bde2af6674b9e030922233

See more details on using hashes here.

Provenance

The following attestation bundles were made for sm_listing-0.1.0.tar.gz:

Publisher: release.yml on Sharathvc23/sm-listing

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sm_listing-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: sm_listing-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 44.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for sm_listing-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 efb0f7111692838564157013925d8a9557fe1474e606a564458f45011b0eb736
MD5 04ccfdbf4a1e1fe12ab6c375c096d821
BLAKE2b-256 052625473d3f1c730e152d3d0fea55af0d2449daf445db00e3990e1f1411fbc1

See more details on using hashes here.

Provenance

The following attestation bundles were made for sm_listing-0.1.0-py3-none-any.whl:

Publisher: release.yml on Sharathvc23/sm-listing

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.7.0

2 files

0.6.0

2 files

0.5.0

2 files

0.4.0

2 files

0.3.0

2 files

This release

0.1.0 This release

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page