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

# update_plan

> Create or update persistent plan scratchpads.

# update\_plan

Plans are persistent markdown documents that survive across sessions and AI providers. Use them to track multi-step efforts, record architectural decisions, and coordinate work between sessions.

Upserts by name: if a plan with the given name exists, it's updated. Otherwise a new one is created. Read plans back with `get_entity(type="plan", name="...")`.

## Parameters

| Parameter | Type   | Required | Default    | Description                                                      |
| --------- | ------ | -------- | ---------- | ---------------------------------------------------------------- |
| `name`    | string | Yes      | --         | Plan name (unique identifier for upsert)                         |
| `summary` | string | No       | `null`     | Short one-line summary of what this plan tracks                  |
| `body`    | string | No       | `null`     | Markdown body content. Replaces existing body entirely on update |
| `status`  | string | No       | `"active"` | One of: `active`, `completed`, `archived`, `paused`              |

## Read-only

No. This tool writes to your memory.

## Example usage

**Creating a new plan:**

```json theme={null}
{
  "name": "auth-refactor",
  "summary": "Refactor auth to PKCE flow",
  "body": "## Steps\n- [ ] Design schema\n- [ ] Implement endpoints\n- [ ] Update client SDK\n\n## Decisions\n- Using RS256 for JWT signing",
  "status": "active"
}
```

**Updating progress:**

```json theme={null}
{
  "name": "auth-refactor",
  "body": "## Steps\n- [x] Design schema\n- [x] Implement endpoints\n- [ ] Update client SDK\n\n## Decisions\n- Using RS256 for JWT signing\n- Client SDK will use refresh token rotation"
}
```

**Completing a plan:**

```json theme={null}
{
  "name": "auth-refactor",
  "status": "completed"
}
```

## Workflow

```
1. update_plan(name="auth-refactor", ...)      → create the plan
2. get_entity(type="plan", name="auth-refactor") → read it back in a future session
3. update_plan(name="auth-refactor", body="...")  → update as work progresses
4. update_plan(name="auth-refactor", status="completed") → mark done
```

Use `list_entities(type="plan")` to browse all plans.

<Tip>
  Write plan bodies as self-contained documents. Any agent -- even from a different AI provider -- should be able to read it cold and understand the full state of the effort. Include context, decisions made, and what's left to do.
</Tip>

## Plan statuses

| Status      | Meaning                              |
| ----------- | ------------------------------------ |
| `active`    | Work is ongoing                      |
| `paused`    | Temporarily on hold                  |
| `completed` | Work is finished                     |
| `archived`  | No longer relevant, kept for history |

<Warning>
  The `body` parameter replaces the existing body entirely on update. Always include the full plan content when updating, not just the changes.
</Warning>
