publish phi's lexicons so io.zzstoatzz.phi.* resolves
Seven schemas existed only as files in this repo. They are now
com.atproto.lexicon.schema records in phi's own repo, rkey = NSID,
following the process typeahead.waow.tech used for tech.waow.typeahead.*.
The authority for an NSID is every segment but the last, reversed:
io.zzstoatzz.phi.self is authored by phi.zzstoatzz.io, so phi owns her
own lexicons and publishes them with her own credentials.
Resolution still needs a DNS TXT record at _lexicon.phi.zzstoatzz.io.
That is NOT the handle record: _atproto.phi.zzstoatzz.io already exists
and claims the handle, while _lexicon claims schema authority, and the
protocol keeps them separate so a domain can delegate one without the
other. Confirmed empirically — lexicon.garden returns AuthorityNotFound
for io.zzstoatzz.phi.self while resolving the typeahead NSID that has
the record. zzstoatzz.io is on Namecheap, so that one is added by hand.
scripts/publish_lexicons.py resolves phi's PDS from her DID document
rather than assuming bsky.social, and refuses to publish when a file's
path disagrees with its NSID, so a typo surfaces as a mismatch instead
of a silent orphan. putRecord overwrites, so re-running is the whole
update path.
Renamed abilities.json to getAbilities.json to satisfy that same rule —
it was the one file whose path didn't match its id.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
publish phi's lexicons so io.zzstoatzz.phi.* resolves
Seven schemas existed only as files in this repo. They are now
com.atproto.lexicon.schema records in phi's own repo, rkey = NSID,
following the process typeahead.waow.tech used for tech.waow.typeahead.*.
The authority for an NSID is every segment but the last, reversed:
io.zzstoatzz.phi.self is authored by phi.zzstoatzz.io, so phi owns her
own lexicons and publishes them with her own credentials.
Resolution still needs a DNS TXT record at _lexicon.phi.zzstoatzz.io.
That is NOT the handle record: _atproto.phi.zzstoatzz.io already exists
and claims the handle, while _lexicon claims schema authority, and the
protocol keeps them separate so a domain can delegate one without the
other. Confirmed empirically — lexicon.garden returns AuthorityNotFound
for io.zzstoatzz.phi.self while resolving the typeahead NSID that has
the record. zzstoatzz.io is on Namecheap, so that one is added by hand.
scripts/publish_lexicons.py resolves phi's PDS from her DID document
rather than assuming bsky.social, and refuses to publish when a file's
path disagrees with its NSID, so a typo surfaces as a mismatch instead
of a silent orphan. putRecord overwrites, so re-running is the whole
update path.
Renamed abilities.json to getAbilities.json to satisfy that same rule —
it was the one file whose path didn't match its id.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>