A Go CLI for validating and generating distributed configuration artifacts from CUE sources.
Use this CLI if you want one source of truth for configuration and localization keys, then generate outputs for multiple runtimes and repositories.
- Validates registry and config inputs against CUE schemas.
- Lints key coverage, translation coverage, schema graph integrity, and artifact patterns.
- Generates artifacts for multiple targets:
arb.jsonfor Flutter i18n bundlesjsonandyamlfor portable config exchangecuefor CUE-native downstream compositiongoanddartruntime config code
- Previews output plans without writing files.
The CLI consumes two main CUE inputs:
- Design registry: key schema and generation capabilities.
- Config key entries:
i18nEntries,textEntries, andvalidations.
Reference examples in this repo:
doc/design-meta/examples/input/design-registry.example.cuedoc/design-meta/examples/input/config-key.cuedoc/design-meta/examples/model/design-registry.schema.cuedoc/design-meta/examples/model/config-key.schema.cue
- Author or update your design registry and config-key CUE files.
- Run
validateto catch shape and schema failures early. - Run
lintto enforce policy checks. - Run
dry-run-previewto inspect planned artifact outputs. - Run
generatefor your target(s).
validate: Validate registry/config CUE inputs.lint: Run full policy checks (aggregate).lint schema: Validate schema governance rules.lint config: Validate config completeness and quality.lint sections: Check validation command sections.lint keys: Verify expected vs actual generated keys.lint translations: Enforce required language coverage.lint patterns: Validate artifact pattern tokens.lint graph: Detect cycles and key collisions.list: List available schemas and target capabilities.explain-key: Show key derivation trace from label path.dry-run-preview: Show planned outputs without writing files.generate: Generate artifacts by target capability.version: Print version/build metadata.
# Validate sample inputs
ash-splash-norn validate \
--registry doc/design-meta/examples/input/design-registry.example.cue \
--registry-schema doc/design-meta/examples/model/design-registry.schema.cue \
--config doc/design-meta/examples/input/config-key.cue \
--config-schema doc/design-meta/examples/model/config-key.schema.cue
# Lint all checks
ash-splash-norn lint \
--registry doc/design-meta/examples/input/design-registry.example.cue \
--config doc/design-meta/examples/input/config-key.cue
# Lint translation coverage only
ash-splash-norn lint translations \
--registry doc/design-meta/examples/input/design-registry.example.cue \
--config doc/design-meta/examples/input/config-key.cue
# Preview output plan
ash-splash-norn dry-run-preview \
--registry doc/design-meta/examples/input/design-registry.example.cue \
--config doc/design-meta/examples/input/config-key.cue \
--format json
# Generate JSON artifacts
ash-splash-norn generate json \
--registry doc/design-meta/examples/input/design-registry.example.cue \
--config doc/design-meta/examples/input/config-key.cue- Hard failure on schema and generation-policy errors.
- Non-zero exit on lint violations.
- Deterministic output ordering for generated files and machine-readable diagnostics.
Diagnostics can be emitted as JSON (--format json) and follow a stable shape:
stageidseveritymessagelocation(when available)suggestion(when available)
Current ID families:
SCH-*: schema/input validation and artifact-pattern preflight.LNT-*: lint checks (schema,config,sections,keys,translations,patterns,graph).GEN-*: generation pipeline and artifact writing policy.PRV-*: dry-run preview registry parsing and pattern policy.KEY-*: explain-key command validation.LST-*: list command registry decoding.
Common local tasks:
make doc-design: regenerate design docs fromdoc/design-meta/*.cue.make cue-input: validate CUE example inputs against schema contracts.make ghf-config-validate: validate.gh-flarebyte.cue.make ghf-repo-audit: audit GitHub settings drift against.gh-flarebyte.cue.
This repository currently defines the CLI design and implementation backlog. See:
doc/design/distributed-config-cli.mdscratch/prompt.md
