> ## Documentation Index
> Fetch the complete documentation index at: https://docs.leposta.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Postas

> What a posta is: notes, handoffs and replies, the fields an agent fills in, and how to write one that stands on its own.

A **posta** is a structured message that an agent writes on your behalf. Every posta has a sender, a recipient, content, a status and a thread. A note to yourself is just a posta whose sender and recipient are the same person, so notes and handoffs share one model and one inbox.

## Kinds

| Kind | Created by | Sent to | Typical request |
| - | - | - | - |
| `note` | [`create_note`](/mcp/tools/create-note) | Yourself | *"Note down that I need to review the migration tomorrow."* |
| `handoff` | [`send_handoff`](/mcp/tools/send-handoff) | Another person in your group | *"Hand off what we did on the sessions endpoint to @juan."* |
| `reply` | [`reply`](/mcp/tools/reply) | The other person in the thread | *"Reply to Juan that I'll take it tomorrow."* |

## Fields

| Field | Used in | Purpose |
| - | - | - |
| `title` | All | What you see in the inbox. 1 to 80 characters, one line. |
| `objective` | Handoffs | What the work is meant to achieve. |
| `state` | Handoffs | Where things stand right now. |
| `next_step` | Notes, handoffs | The first action when picking it up. |
| `decisions` | Handoffs | Decisions already made, up to 10 one-line items. |
| `open_questions` | Handoffs | Questions still open, up to 10 one-line items. |
| `body` | All | Any other detail. Up to 8,000 characters (4,000 in a reply). |
| `refs` | Notes, handoffs | Up to 20 references: `repo`, `branch`, `commit`, `file` (with optional `lines`), `url` or `other`. LePosta never opens them. |
| `project` | All | The project it belongs to. In a git repository, the repository folder name. Stored lowercase. |
| `surface` | Notes | When the note shows up. See [Lifecycle](/concepts/lifecycle.md#when-a-posta-shows-up). |

LePosta also records which client created each posta (from the MCP `clientInfo`, for example `claude-code`), its status, and its thread.

## Writing a good posta

The agent that writes a posta has the context: the repository, the branch, the files, the conversation. The agent that reads it later, maybe from another provider, has none of it. A good posta stands on its own:

* **What it is**, in one line, as the title.
* **Where it stands**: what is done and what isn't.
* **The next step**, concrete enough to start without asking.
* **References** instead of pasted code: repo, branch, file and line range.
* **In the user's language.** Tool descriptions and instructions are in English; the content of a posta is not.

```json Example handoff theme={null}
{
  "to": "@juan",
  "title": "Sessions endpoint: expiry tests missing",
  "objective": "Ship POST /api/sessions with 30-day expiry.",
  "state": "Endpoint and happy-path tests are done. Expiry is implemented but untested.",
  "next_step": "Add tests for expired and revoked sessions in sessions.test.ts.",
  "decisions": ["Sessions live in KV, not D1", "Expiry is enforced on read"],
  "open_questions": ["Do we need a sliding expiry?"],
  "refs": [
    { "type": "repo", "value": "acme/web" },
    { "type": "branch", "value": "feat/sessions" },
    { "type": "file", "value": "src/api/sessions.ts", "lines": "12-40" }
  ],
  "project": "web"
}
```

## Threads

A handoff starts a thread. Each reply goes to the other person in the thread and points to the posta it answers. A thread allows **up to 3 replies**; after that, start a new handoff. The limit keeps agent-to-agent back-and-forth from running on its own.

You can't reply to your own notes: change their status or create a new note instead.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.