Feature Gates
The Reasoning Engine and all Reason Commands are behind a Cargo feature flag: --features reason. This keeps the default binary lean and the dependency tree small.
(given reason-feature-optional)
(given graceful-degradation)
How it works
[features]
default = []
reason = ["dep:spindle-core", "dep:spindle-parser"]
Building without the flag produces a binary that handles Wikilinks, Graph Queries, Search, Vault Diagnostics, and the TUI — but not reasoning.
Graceful degradation
When a user runs zetl reason on a binary built without the feature, they get a clear error message explaining how to rebuild with --features reason. This is better than a confusing “unknown command” error.
Why not always include it?
spindle-coreandspindle-parseradd compile time and binary size- Not every user needs Defeasible Reasoning
- Spindle Lisp is a niche feature — progressive disclosure serves users better
Install with reasoning
cargo install --path . --features reason
See also: Rust for CLI, Reasoning Engine, Reason Commands