DocsShip
CLI
tools/envy.mjs is a single Node.js file. It ships in every AI handoff package, so agents and CI can use it without the editor.
$ node tools/envy.mjs validate ui/my_ui.envy.json
0 error(s), 0 warning(s) — 24 screens, 180 components, 6098 layers
Commands
| Command | Does |
|---|---|
envy validate <file> [--json] |
Checks references and contracts. Exits with 1 on errors, so it can gate CI |
envy describe <file> [--screen "Name"] |
Markdown outline of screens: text, bindings, actions |
envy contract <file> |
Events, data paths, screens and animations as JSON |
envy prompt <file> [--engine godot|web] |
A prompt for an AI coding assistant |
envy handoff <file> <out-dir> |
Writes AGENTS.md, SCREENS.md, contract.json and code stubs |
envy schema |
The JSON Schema of the document format |
In CI
- run: node tools/envy.mjs validate ui/my_ui.envy.json
A failing check stops the build before a broken UI reaches players.
What validate checks
Missing children, parents, components, assets, tokens, screens and animations; invalid colors; empty or unsafe event names; focus targets that aren’t buttons or sit on another screen; component properties with the wrong type or a missing target; translation keys that are invalid, missing or unused; and data paths with no sample value.
Updated View as Markdown