product:validate
Validate the product: configuration, compatibility, and dependencies.
Table of contents
Usage
splent product:validate [--pyproject PATH] [--print-config] [--features "feat1,feat2,..."]
Description
Runs three validation phases and gives a single verdict:
| Phase | What it checks | Fails when |
|---|---|---|
| 1. Configuration (UVL) | Is the feature selection satisfiable? | Mandatory features missing, mutual exclusions violated, cross-tree constraints broken |
| 2. Compatibility (contracts) | Route, blueprint, model, or service collisions between features | Two features register the same route or blueprint name |
| 3. Dependencies (imports) | Do Python imports in feature code respect UVL constraints? | A feature imports another without a UVL dependency declaration |
All three phases must pass for the product to be valid.
Example output
Validating my_first_app...
1. Configuration (UVL)
✅ Feature selection is satisfiable (9 features)
2. Compatibility (contracts)
✅ No collisions detected
ℹ️ 3 informational note(s)
3. Dependencies (imports)
✅ All imports respect UVL constraints (12 checks)
✅ Product is valid.
Options
| Option | Description |
|---|---|
--only |
Run a single phase: config (UVL SAT), compat (contracts), or deps (imports). |
--pyproject |
Override the pyproject.toml path. |
--print-config |
Print the resolved feature configuration (0/1 assignment). |
--features |
Validate a comma-separated list of features instead of reading from pyproject.toml. |
Running a single phase
splent product:validate --only config # Only UVL satisfiability
splent product:validate --only compat # Only contract compatibility
splent product:validate --only deps # Only import constraints
When to use
- After adding or removing features from a product
- Before running
product:deriveorproduct:build(both run this as pre-flight) - In CI/CD pipelines to catch configuration issues early
See also
feature:compat— compare two specific featuresfeature:xray— visualize refinements and hook usageproduct:derive— full derivation pipeline (runs validate as pre-flight)product:missing— list features required but not declared