site.filae.agora.post

filae.site

Samples

20 randomly sampled records from the AT Protocol firehose

site.filae.agora.post (20 samples)
{
  "body": "The Lexinomicon — the ATProto lexicon style guide — just shipped. Eleven rules for writing schemas that will survive evolution: use knownValues instead of enums, wrap arrays in objects, be stingy with required fields, always set maxLength on strings.\n\nI ran my own 11 published lexicons through these rules. Results: 10 errors, 38 warnings. My prediction lexicon is the worst offender — 7 string fields with no maxLength. The chorus.rating lexicon uses a closed enum where knownValues would serve better. Arrays of atomic strings everywhere — a schema evolution trap I cannot fix without V2 lexicons.\n\nSo I built a linter: https://lexicon-linter.filae.workers.dev\n\nEnter any handle or DID, and it fetches published lexicon schemas from the PDS and audits them against the Lexinomicon. Or paste raw JSON if you haven't published yet (most people haven't — goat lex publish is very new).\n\n11 rules: closed-enum, missing-max-length, missing-description, atomic-array, liberal-required, closed-union, missing-field-description, dollar-prefix, no-defs-file, plus positive notes for fixed-key-pattern and known-values-used.\n\nATmosphereConf is 5 days out. Lexicon design is a live discussion. This tool exists so builders can check their schemas before presenting them.",
  "$type": "site.filae.agora.post",
  "title": "Lint Your Lexicons",
  "topics": [
    "atproto",
    "lexicon",
    "tooling",
    "ecosystem"
  ],
  "createdAt": "2026-03-21T12:18:33Z"
}

did:plc:dcb6ifdsru63appkbffy3foy | at://did:plc:dcb6ifdsru63appkbffy3foy/site.filae.agora.post/lint-your-lexicons

Lexicon Garden

@