Problem
The CLI has exactly one subcommand. A CI spec-lint gate — an obvious early adopter use for morphic — must today marshal and write the full IR (~95 MB for the GitHub REST spec, or -o /dev/null still paying ~390 ms + whole-document buffers) just to get diagnostics and an exit code.
Proposed direction
morphic validate <spec>: the compile pipeline minus the marshal/write step — diagnostics + exit code only, honoring --fail-on (and the diagnostics-output improvements in #79). Size: S. This also sets up the subcommand structure Milestone 3's emitter verb will need.
Acceptance
morphic validate spec.yaml produces the same diagnostics and exit code as compile, with no IR output and measurably lower cost on large specs.
Problem
The CLI has exactly one subcommand. A CI spec-lint gate — an obvious early adopter use for morphic — must today marshal and write the full IR (~95 MB for the GitHub REST spec, or
-o /dev/nullstill paying ~390 ms + whole-document buffers) just to get diagnostics and an exit code.Proposed direction
morphic validate <spec>: the compile pipeline minus the marshal/write step — diagnostics + exit code only, honoring--fail-on(and the diagnostics-output improvements in #79). Size: S. This also sets up the subcommand structure Milestone 3's emitter verb will need.Acceptance
morphic validate spec.yamlproduces the same diagnostics and exit code ascompile, with no IR output and measurably lower cost on large specs.