CLI

The edoxen command provides utilities for working with resolution data files.

Commands

edoxen help
# Commands:
#   edoxen help [COMMAND]                       # Describe available commands or one specific
#   edoxen validate YAML_FILE_PATTERN           # Validate YAML files against Edoxen schema
#   edoxen normalize YAML_FILE_PATTERN          # Normalize YAML files using Edoxen schema
#   edoxen validate-meetings YAML_FILE_PATTERN  # Validate Meeting YAML files against the meeting schema
#   edoxen normalize-meetings YAML_FILE_PATTERN # Normalize Meeting YAML files

validate / normalize cover decision-side files (schema/edoxen.yaml โ€” DecisionCollection plus the register documents: ContactRegister, VenueRegister, BodyRegister); validate-meetings / normalize-meetings cover meeting-side files (schema/meeting.yaml โ€” MeetingCollection, Meeting, MeetingSeries).

validate

# Single file
edoxen validate resolutions.yaml

# Multiple files
edoxen validate file1.yaml file2.yaml file3.yaml

# Glob
edoxen validate "resolutions/*.yaml"

Sample output:

๐Ÿ” Validating 3 file(s)...
  resolutions.yaml... โœ… VALID
  file1.yaml......... โœ… VALID
  file2.yaml......... โŒ INVALID
    - Line 15: Invalid action type 'invalid_type'

๐Ÿ“Š Validation Summary:
  Valid files: 2
  Invalid files: 1
  Success rate: 66.7%

Exit code is non-zero if any file fails. Useful for CI.

normalize

Loads YAML files through the Edoxen model classes and re-emits them in canonical form โ€” fixes whitespace, sorts keys, drops unknown properties.

# Output to a directory
edoxen normalize "*.yaml" --output normalized/

# In-place (no backup โ€” be careful!)
edoxen normalize "data/*.yaml" --inplace

Sample output:

๐Ÿ”„ Normalizing 2 file(s)...
  resolutions.yaml... โœ… NORMALIZED โ†’ /path/to/output/resolutions.yaml
  meeting-notes.yaml... โœ… NORMALIZED โ†’ /path/to/output/meeting-notes.yaml

๐Ÿ“Š Normalization Summary:
  Successful: 2
  Failed: 0
  Success rate: 100.0%
  Output directory: /path/to/output