All source files must include SPDX copyright headers.
# Add/update headers
mise run license:update
# Check headers
mise run license:check- Rust: format with
rustfmt, lint with Clippy. - Python: format and lint with
ruff, type-check withty.
Recommended workflow before opening a PR:
mise run fmt
mise run lint
mise run ciWhen printing structured CLI output:
- Add a blank line after headings.
- Indent key-value fields by 2 spaces.
- Use dimmed labels for field keys (for example,
"Id:".dimmed()). - Use cyan + bold for primary headings.
Good:
Created sandbox:
Id: cddeeb6d-a4d3-4158-a4d1-bd931f743700
Name: sandbox-cddeeb6d
Namespace: openshell
Bad:
Created sandbox:
Id: cddeeb6d-a4d3-4158-a4d1-bd931f743700
Name: sandbox-cddeeb6d
Namespace: openshell