# `PromptRunner.Packets`
[🔗](https://github.com/nshkrdotcom/prompt_runner_sdk/blob/v0.12.1/lib/prompt_runner/packets.ex#L1)

Prompt operations within a packet.

# `amend_prompt_contract`

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

Writes an amendment back into the packet's own prompt file.

A separate explicit act, never a side effect of amending a run: the packet is
a versioned artifact, and changing what a prompt requires is a commit
somebody should be able to review.

# `create_prompt`

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

# `list_prompts`

```elixir
@spec list_prompts(String.t()) :: {:ok, [PromptRunner.Prompt.t()]} | {:error, term()}
```

# `load_prompt`

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

# `sync_checklists`

```elixir
@spec sync_checklists(String.t()) ::
  {:ok, %{paths: [String.t()], warnings: [map()]}} | {:error, term()}
```

---

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