Gap
No meta fmt. In a repo where several people or teams edit metadata, formatting drift becomes diff noise, and there is no canonical way to normalize a hand-edited file.
Why this is cheap
The canonical serializer already exists — it is what the cross-port conformance corpora byte-match against, in all five ports. Exposing it as a CLI command is largely surfacing existing machinery rather than building new machinery.
Prior art (open source)
Buf ships buf format for exactly this reason, in the gofmt tradition: one canonical form, no debate. https://github.com/bufbuild/buf
Notes
- Should be available in every port's CLI, not just the Node one, since each port already has the serializer.
- Needs a decision on YAML: the canonical interchange form is JSON (ADR-0006), so formatting sigil-free authoring YAML is a separate question from emitting canonical JSON.
- A
--check mode (format-clean or fail) makes it usable as a CI gate.
Gap
No
meta fmt. In a repo where several people or teams edit metadata, formatting drift becomes diff noise, and there is no canonical way to normalize a hand-edited file.Why this is cheap
The canonical serializer already exists — it is what the cross-port conformance corpora byte-match against, in all five ports. Exposing it as a CLI command is largely surfacing existing machinery rather than building new machinery.
Prior art (open source)
Buf ships
buf formatfor exactly this reason, in the gofmt tradition: one canonical form, no debate. https://github.com/bufbuild/bufNotes
--checkmode (format-clean or fail) makes it usable as a CI gate.