Dependency resolution
SpecFact resolves dependencies for marketplace modules before installing. This reference describes how resolution works, conflict detection, and the flags that change behavior.
Overview
When you run specfact module install <module-id> (without --skip-deps), the CLI:
- Discovers all currently available modules (bundled + already installed) plus the module being installed.
- Reads each module’s
module_dependenciesandpip_dependenciesfrom their manifests. - Runs the dependency resolver to compute a consistent set of versions.
- If conflicts are found, install fails unless you pass
--force.
Resolution is used only for marketplace installs. Bundled and custom modules do not go through this resolution step for their dependencies.
Resolver behavior
- Preferred: If
pip-toolsis available, the resolver uses it to resolve pip dependencies and align versions across modules. - Fallback: If
pip-toolsis not available, a basic resolver aggregatespip_dependenciesandmodule_dependencieswithout deep conflict detection. - Conflict detection: Incompatible version constraints (e.g. two modules requiring different versions of the same pip package) are reported with clear errors. Install then fails unless
--forceis used.
Install flags
| Flag | Effect |
|---|---|
| (none) | Resolve dependencies; fail on conflicts. |
--skip-deps |
Do not resolve dependencies. Install only the requested module. Use when you manage dependencies yourself or want a minimal install. |
--force |
If resolution reports conflicts, proceed anyway. Use with care (e.g. known-compatible versions or local overrides). |
--force does not disable integrity or trust checks; it only overrides dependency conflict failure.
Bypass options
- Skip resolution:
specfact module install nold-ai/specfact-backlog --skip-depsinstalls onlynold-ai/specfact-backlogand does not pull or check itspip_dependencies/module_dependencies. - Override conflicts:
specfact module install nold-ai/specfact-backlog --forceproceeds even when the resolver reports conflicts. Enable/disable and dependency-aware cascades may still use--forcewhere applicable.
See also
- Installing modules – Install behavior and dependency resolution section.
- Module marketplace – Registry and security model.