# Atelier — curated provider + model recommendations. # # Served at: https://aincient-labs.com/atelier/models.yml # Source of truth for this file is THIS repo (apps/website). A snapshot is # bundled into the product by `bin/sync-recommendations`, which copies it to # apps/cms/web/modules/custom/aincient_core/model-recommendations.yml — so a # fresh or offline install always has usable guidance without asking us for it. # # WHY THIS IS SERVED RATHER THAN SHIPPED # The right model changes on roughly a weekly cadence: models get retired, prices # move, a provider's flash tier overtakes another's mid tier. Guidance baked into # a release goes stale the moment it ships. An Atelier install fetches this file # ONLY when an operator clicks "Check for updates" in the onboarding wizard or the # models settings page — never automatically, never on a schedule. Nothing about # the install is sent; it is a plain GET. # # HOW TO MAINTAIN IT # Edit here, then push `main` — CI builds the image and deploys it. Live installs pick it up on # their next explicit refresh; new installs pick it up at their next cms release # via the sync script. Both halves are plain text and diffable on purpose — this # is an artifact a suspicious operator should be able to read, like install.sh. # # RULE: every model id is IMMUTABLE — never a floating `-latest` alias. A floating # alias lets a vendor change what a site runs (cost and quality) with no trace on # our side. Same argument as pinning an image tag. (DECISIONS 0247.) # Bumped only on a BREAKING shape change. A client that doesn't understand the # value ignores the whole document and keeps its bundled copy. schema: 1 updated: '2026-08-04' # --------------------------------------------------------------------------- # Quality labels — which providers and models we back. # --------------------------------------------------------------------------- # Consumed by \Drupal\aincient_core\ModelRecommendations to badge and order rows # in the pickers. Keys are drupal/ai provider PLUGIN ids (the INDIVIDUAL plugin, # not the collapsed UI group): anthropic, openai, openrouter, gemini, nanobanana, # ollama, mistral. # # providers: => recommended | tested | not-recommended # models: => {