AGENTX / 001

A schema vocabulary agents can't misuse.

Eight field primitives — text, richtext, number, boolean, date, enum, asset, relation — with declarative constraints, computed fields (slugify, template, now, uuid), and per-locale variant maps. The vocabulary is closed and self-describing: an agent discovers it with list_field_types and never guesses.

schema evolution · plan + confirm
agent ▸ define_collection({ name: "posts", fields: { … } }) agentx ◂ plan: − drop field "subtitle" (212 rows affected) + rename "body" → "content" (atomic backfill, incl. trash) ⚠ tighten title.max 80 (3 existing rows exceed) agent ▸ confirm agentx ◂ ok · schema v14 live
8 primitives, closed vocabularyunique / min / max / pattern + hintcomputed: slugify · template · now · uuidlocalized {locale: value} maps
honest ▸

Constraint tightening never silently breaks rows — define-time scans report every existing violation before you confirm. Pattern constraints are safe-regex checked at define time so runtime matching is provably bounded.