Why a step may not be chained: no gate to resolve it (compose_needs_gate),
no tool under its name (step_missing), a tool with side effects the host
has not listed, or one that is never a step (step_not_chainable), a tool
that does not declare hasSideEffects (side_effects_undeclared), or a
chain that reaches itself (step_cycle).
Why a step may not be chained: no gate to resolve it (
compose_needs_gate), no tool under its name (step_missing), a tool with side effects the host has not listed, or one that is never a step (step_not_chainable), a tool that does not declarehasSideEffects(side_effects_undeclared), or a chain that reaches itself (step_cycle).