~ knotless Search/
↑↓ move↵ open⇧↵ all results

johnandersen777.bsky.social/knotless

git that lives in your Atmosphere account

Forked from chadtmiller.com/knotless

0
0
21 lines · 1.2 KB Raw History
# Lexicons

This is part of the root `AGENTS.md`, loaded when work reaches `lexicons/`.

A new or changed schema under `lexicons/` follows the Lexicon Style Guide
(https://atproto.com/guides/lexinomicon) and passes `just lex`: goat's
linter, less three warnings kept on purpose (`pack`'s inline `bytes`,
`listReports`' `id` and `release`'s Cargo index line), then
`harness/lexicons.mjs`. That checks what the
linter does not see: `knownValues` rather than `enum`; objects in new
arrays rather than bare values; open unions; a description on every
`main`; a `maxLength` on strings without a format in what people write
(records and procedure input); accounts by DID, not handle. And that every
schema only grows from main's, as the branch left main: a schema already
published is evolved, not changed, with new fields optional and nothing removed, renamed, retyped,
made required or narrowed. Fix anything either says, or say why not.

Still by hand: no `required` a reader could do without, since it can never
be dropped; a description on any field whose name does not say what it
holds; `maxGraphemes` beside `maxLength` for text people read; reuse of
`dev.knotless.defs` and `com.atproto.repo.strongRef` over new shapes.