io.zzstoatzz.phi.getAbilities

phi.zzstoatzz.io

{
  "id": "io.zzstoatzz.phi.getAbilities",
  "defs": {
    "main": {
      "type": "query",
      "output": {
        "schema": {
          "type": "object",
          "required": [
            "abilities"
          ],
          "properties": {
            "abilities": {
              "type": "array",
              "items": {
                "ref": "#ability",
                "type": "ref"
              }
            }
          }
        },
        "encoding": "application/json"
      },
      "description": "Phi's currently-registered function tools, computed live from the running code rather than hand-maintained, so it cannot drift from what she can actually do. Every tool carries a risk declaration: a tool without one is not a valid tool, and the test suite refuses it. Served at /xrpc/io.zzstoatzz.phi.getAbilities; /api/abilities is kept as an alias."
    },
    "risk": {
      "type": "object",
      "required": [
        "magnitude",
        "reason"
      ],
      "properties": {
        "reason": {
          "type": "string",
          "maxLength": 400,
          "description": "One sentence saying what specifically could go wrong. Written to be read by a person in the cockpit and by the policy judge when it evaluates a proposed call, so it names the concrete failure rather than restating the magnitude."
        },
        "magnitude": {
          "type": "string",
          "description": "none: reads only, changes nothing. low: changes phi's own private state, reversible. moderate: publicly visible under her name, reversible by her. high: reaches other people's attention, spends real money, or cannot be undone with the tools she has.",
          "knownValues": [
            "none",
            "low",
            "moderate",
            "high"
          ]
        }
      },
      "description": "What this tool can cost if it goes wrong. Required on every tool — the declaration is what makes a tool valid. Magnitude is ordered by reach and reversibility, not by how often the tool is used."
    },
    "ability": {
      "type": "object",
      "required": [
        "name",
        "description",
        "operator_only",
        "risk"
      ],
      "properties": {
        "name": {
          "type": "string",
          "description": "The tool name the model calls."
        },
        "risk": {
          "ref": "#risk",
          "type": "ref"
        },
        "description": {
          "type": "string",
          "description": "The tool's docstring — what the model is shown."
        },
        "operator_only": {
          "type": "boolean",
          "description": "Whether the tool is gated to the operator via the like-as-approval mechanism."
        }
      },
      "description": "One registered function tool."
    }
  },
  "$type": "com.atproto.lexicon.schema",
  "lexicon": 1
}

Validate Record

Validate a record against io.zzstoatzz.phi.getAbilities

Validation Options
Treat any remaining unresolved references as valid

Metadata

DID
did:plc:65sucjiel52gefhcdcypynsr
CID
bafyreiab5hft7rwht2wgbi27kh7tgmcbx7zekc53bf3g5vrqvm4lad22le
Indexed At
2026-07-25 17:28 UTC
AT-URI
at://did:plc:65sucjiel52gefhcdcypynsr/com.atproto.lexicon.schema/io.zzstoatzz.phi.getAbilities

Lexicon Garden

@