# add_case

Append one case to a proposal this connection filed: a situation and what must happen in it, or what must never happen. The case joins the end of its list, so the numbers a person is already reading do not move. Same limits as update_proposal: only your own proposal, and only while nobody has decided it.

Reviewed 2026-10-01. Read the [current operating instructions](https://app.balladeer.ai/agent) and the [tool index](/docs/mcp-reference.md). This reference does not authorize the action.

## Parameters

```json
{
  "type": "object",
  "properties": {
    "proposalId": {
      "description": "The proposal this connection filed, from propose_promise.",
      "type": "string",
      "pattern": "^cand_[a-z0-9]{8,64}$"
    },
    "reason": {
      "description": "Why you are changing it, in the person's own words where they gave you any. It is recorded on the proposal and read by whoever decides it. Name nobody in it: Balladeer records who connected you as the person behind this act, and a name from git, a commit or a file is not the person in the conversation. Say \"the person\" or quote their words.",
      "type": "string",
      "minLength": 1,
      "maxLength": 2000
    },
    "kind": {
      "description": "Which numbered list: passing is what must keep working, failing is what must be caught.",
      "type": "string",
      "enum": [
        "passing",
        "failing"
      ]
    },
    "label": {
      "description": "What this case is, in a few words. It is the row's name on the page.",
      "type": "string",
      "minLength": 1,
      "maxLength": 160
    },
    "setup": {
      "description": "The situation, in the words the person used for it.",
      "type": "string",
      "minLength": 1,
      "maxLength": 2000
    },
    "expectedOutcome": {
      "description": "What must happen. On a failing case write what must NOT happen, in those words: \"a second charge must not appear\", never \"a second charge appears\".",
      "type": "string",
      "minLength": 1,
      "maxLength": 2000
    }
  },
  "required": [
    "proposalId",
    "reason",
    "kind",
    "label",
    "setup",
    "expectedOutcome"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
```

## Effect annotations

```json
{
  "readOnlyHint": false,
  "destructiveHint": false,
  "idempotentHint": false,
  "openWorldHint": false
}
```
