# `WorkflowStem.Adapters.CapabilityRunner`
[🔗](https://github.com/fosferon/workflow_stem/blob/main/lib/workflow_stem/adapters/capability_runner.ex#L1)

Interface adapter for capability execution.

Capabilities must be addressed by stable identifiers (not Elixir module names),
and must always preserve tenant lineage (GR-001).

# `capability_handle`

```elixir
@type capability_handle() :: String.t() | atom()
```

# `execute`

```elixir
@callback execute(WorkflowStem.Types.tenant_id(), capability_handle(), map()) ::
  {:ok, term()} | {:wait, term()} | {:error, term()} | {:error, term(), map()}
```

---

*Consult [api-reference.md](api-reference.md) for complete listing*
