{
  "name": "get_promise_context",
  "title": "Get approved behavior context for this task",
  "description": "Return a bounded, marker-matched slice of this repository's approved promises: up to 25 catalog rows and up to 10 fully expanded promises, with the true totals. Every row and every expansion here carries the same facts an index row carries, including where each promise's seal stands and the latest applicable recorded Balladeer check. This is not the whole catalog and never was safe to treat as one: read `catalogCount`, and use `list_promises` to page the index and `get_promise` to expand one by ID. Proposed and retired meaning is never returned. Do not make an unscoped startup read. When a substantive task supplies meaningful markers, use them before planning, including on the first turn of a session. Reuse the result while the task scope is unchanged. If meaningful markers are not yet known, use a task-shaped list_promises keyword lookup or a supplied promise ID rather than inventing markers or scanning the unfiltered catalog.",
  "inputSchema": {
    "type": "object",
    "properties": {
      "markers": {
        "type": "object",
        "properties": {
          "surfaces": {
            "default": [],
            "maxItems": 24,
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 96,
              "pattern": "^[A-Za-z0-9_:.@/[\\]-]+$"
            }
          },
          "capabilities": {
            "default": [],
            "maxItems": 24,
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 96,
              "pattern": "^[A-Za-z0-9_:.@/[\\]-]+$"
            }
          },
          "events": {
            "default": [],
            "maxItems": 24,
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 96,
              "pattern": "^[A-Za-z0-9_:.@/[\\]-]+$"
            }
          },
          "labels": {
            "default": [],
            "maxItems": 24,
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 96,
              "pattern": "^[A-Za-z0-9_:.@/[\\]-]+$"
            }
          }
        },
        "additionalProperties": false
      },
      "taskDigest": {
        "description": "Optional client-computed digest. Do not send a prompt, transcript, source, path, or raw task text.",
        "type": "string",
        "pattern": "^sha256:[a-f0-9]{64}$"
      }
    },
    "required": [
      "markers"
    ],
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "additionalProperties": false
  },
  "annotations": {
    "readOnlyHint": true,
    "destructiveHint": false,
    "idempotentHint": true,
    "openWorldHint": false
  },
  "execution": {
    "taskSupport": "forbidden"
  }
}