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

In Cargo.toml:

[features]
default = []
reason = ["dep:spindle-core", "dep:spindle-parser"]

Building without the flag produces a binary that handles concepts/Wikilinks, graph queries, Search Command, Check Command, and the TUI — everything except 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?

Progressive disclosure

; Feature gates + graceful degradation = progressive disclosure
(normally r-progressive-disclosure
  (and lean-default-binary good-developer-experience)
  progressive-disclosure)

See also: ADR-001 Rust, Reasoning Engine, Reason Commands, Install

Backlinks