Agent skill · software engineering · metabase
serdes-yaml-edit
Edit Metabase serdes YAML files (cards, dashboards, databases) with correct portable references and structural conventions. Use when modifying exported YAML content.
Why this skill is useful
Provides specific structural conventions and portable reference patterns for editing Metabase YAML files that the AI wouldn't reliably generate on its own.
What it needs
About 4k tokens when loaded. Last updated 2026-08-07. 48,568 stars on the source repository.
What this skill does
Serdes YAML Edit Skill Golden Rule Run both checkers after every edit. No exceptions. Do not batch multiple edits before validating. If either checker fails, fix the issue before making further edits. Portable References Serdes YAML uses portable references instead of integer IDs. This is the most important concept for editing. Database references String name: "Sample Database" Table references Array of [database, schema, table]: Field references Array of [database, schema, table, field]: Field refs in queries The outer array is [field, <field-path>, <options>]. The options are usually null. Card references Entity ID string (21 characters): "Qk5TgsNx4ubXIUtsQmT8G" Source table in queries Safe Edits (low risk) These rarely break validation: name - card/dashboard display name description - card/dashboard description display - visualization type (table, bar, line, pie, etc.) visualizationsettings - chart configuration archived - true/false collectionid - move to a different collection (use entityid of target collection, or null for root) Structural Edits (must match schema) These must use valid portable refs and will be caught by the cards checker if wrong: datasetquery - the query definition resultmetadata - column metadata (must match the query's output columns) tableid - must reference a table that exists in the export databaseid - must reference a database that exists in the export Editing resultmetadata Each entry in resultmetadata describes an output column. When changing a query's source table or fields, you must update resultmetadata to match. Each field entry needs at minimum: name - column name (e.g., EMAIL) basetype - Metabase type (e.g., type/Text, type/Integer, type/DateTime) displayname - human-readable name fieldref - portable field reference id - portable field path tableid - portable table path source - usually fields Common Operations Rename a card Change name: at the top level. Safe, no ref changes needed. …
How to use it
Reference it in AdaL, Claude Code, Cursor or any coding agent — nothing to install:
@skills metabase/serdes-yaml-edit