CVX v1.3.0 — it tells you what's wrong
The whole content model is now a contract: exact errors in your terminal, autocomplete in your editor, structured output for your agent.
New
cvx validate— checks every file incv-content/at once and reports exact errors with file + field paths and suggested fixes (unknown key "linkdin" — did you mean "linkedin"?). Unknown keys are warnings by default;--strict(recommended for agents/CI) treats them as errors.- Agent-legible CLI — every command accepts
--json(exactly one JSON object on stdout, logs on stderr) and uses semantic exit codes:0ok,2validation failed,3render failed,64usage error. cvx list [themes|layouts]— inventory of themes and layouts, including your custom layouts, with--json.- Canonical JSON Schema — every content file and
config.yamlis defined byschema/v1/; scaffolded files carry$schemaheaders, so editors with YAML support autocomplete keys and flag mistakes as you type. The previously undocumented rich-bullet form ({text, link: {href, label}, suffix}) is now part of the documented contract. cvx initscaffolds agent guidance —AGENTS.mdandCLAUDE.mdland in yourcv-content/with the edit→validate→build loop and truthfulness rules, so coding assistants drive CVX correctly out of the box.
Compatibility promise
config.yaml now carries schemaVersion: 1. Within a schema major version, your content files never break — cvx validate on today's files will still pass on every future 1.x release.
Quality gates
Tested on ubuntu/macos/windows × Node 20/22/24; the packaged E2E now exercises the full validate/build/list contract against the packed tarball; reproducible builds remain byte-identical; install stays lean (tarball ~320 kB).