# `WardrikDaemon.AgentFile`

Reads an agent file: a Markdown file in `agents/`.

The frontmatter is the agent's definition, and the body is its instructions. This is
`agents/triage.md`:

    ---
    description: Watches the incident queue and says what needs an engineer.
    model: anthropic:claude-sonnet-5
    tools: [linear/*]
    policy: careful
    ---
    You watch the incident queue. Summarise anything new, and say which issues need an engineer.

Three keys make the agent's ID:

  * `name` - the file's name unless set.
  * `org` - the deployment's `org`. A file that names another org doesn't read.
  * `user` - the person the agent works for, if any.

The file above is `acme/triage`. With `user: jon`, it's `acme/@jon/triage`.

Every other key is part of the definition. See `Wardrik.Definition`. Keys the file leaves out
come from `config.yaml`'s `defaults`. A file with no frontmatter is all instructions.

# `read`

```elixir
@spec read(Path.t(), WardrikDaemon.Config.t()) ::
  {:ok, String.t(), map()} | {:error, String.t()}
```

Reads the file at `path`. Returns the agent's ID and its definition, with `defaults` filled in.

---

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