# `Vibe.Goals`
[🔗](https://github.com/elixir-vibe/vibe/blob/v0.2.3/lib/vibe/goals.ex#L1)

Persisted long-running session goals and model-facing goal helpers.

# `add_usage`

```elixir
@spec add_usage(String.t(), map() | nil) ::
  {:ok, Vibe.Goals.Goal.t()} | :ok | {:error, term()}
```

# `blocked`

```elixir
@spec blocked(String.t() | nil) :: {:ok, Vibe.Goals.Goal.t()} | {:error, term()}
```

# `clear`

```elixir
@spec clear(String.t() | nil) :: :ok | {:error, term()}
```

# `complete`

```elixir
@spec complete(String.t() | nil) :: {:ok, Vibe.Goals.Goal.t()} | {:error, term()}
```

# `context_block`

```elixir
@spec context_block(String.t()) :: String.t()
```

# `get`

```elixir
@spec get(String.t() | nil) :: Vibe.Goals.Goal.t() | nil
```

# `pause`

```elixir
@spec pause(String.t() | nil) :: {:ok, Vibe.Goals.Goal.t()} | {:error, term()}
```

# `resume`

```elixir
@spec resume(String.t() | nil) :: {:ok, Vibe.Goals.Goal.t()} | {:error, term()}
```

# `set`

```elixir
@spec set(String.t(), String.t(), keyword()) ::
  {:ok, Vibe.Goals.Goal.t()} | {:error, term()}
```

# `summary`

```elixir
@spec summary(Vibe.Goals.Goal.t() | nil) :: String.t()
```

# `update_status`

```elixir
@spec update_status(String.t() | nil, Vibe.Goals.Goal.status() | String.t()) ::
  {:ok, Vibe.Goals.Goal.t()} | {:error, term()}
```

# `validate_objective`

```elixir
@spec validate_objective(String.t()) :: {:ok, String.t()} | {:error, term()}
```

---

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