SKILL.md
Ezorm Write Yaml (MySQL/MySQLr)
Scope
Write ezorm YAML schemas from user requirements for mysql/mysqlr and emit YAML only. Prefer mysqlr unless the user explicitly requests mysql. Read these files when schema details or examples are needed:
doc/schema/yaml.mddoc/schema/yaml_mysql.mddoc/schema/yaml_mysqlr.mde2e/mysql/*.yamle2e/mysqlr/*.yaml
If the local references/ or assets/ directories are missing, run: scripts/init.sh (or scripts/init.sh --force to refresh). Validate with scripts/validate.sh.
Workflow
- Restate the domain model in simple entities and relationships. Ask one clarification only if critical (missing entities, relationship direction, or required constraints).
- Choose db driver:
- Use db: mysql for classic mysql schemas (see doc/schema/yamlmysql.md). - Use db: mysqlr for mysqlr schemas (see doc/schema/yamlmysqlr.md).
- Map fields:
- Use mysql/mysqlr field types from the matching doc. - Add flags like index, unique, nullable, primary, autoinc, noinc as needed. - Use fk only when an explicit foreign key is requested.
- Set table metadata:
- Always include dbname. - Use table for mysql, dbtable for mysqlr. - Default table names to snake_case of the entity name unless the user provides one.
- Add constraints:
- Use indexes, uniques, primary as required.
- Output only YAML (no Go code, no prose). Use
---to separate multiple entities.
Output Rules
- Emit a valid YAML schema file (or multiple YAML documents) and nothing else.
- Keep names consistent with user domain language.
- Prefer minimal fields; do not invent behavior.