{
  "name": "Ari",
  "description": "Ari is Libranis's contextual AI participant. Ari receives only the relational context available within the user's current scope and authority; the available context changes as the user moves between objects, people, organizations, build items, chats, calls, and meetings. Identity is not authority: Ari does not infer permission from a caller's ability to name a libran, and possession of an identifier never implies the right to read or change what it identifies. PUBLICATION STATUS: this card declares a live A2A interface with a deliberately narrow capability. The interface answers the four descriptive skills below and nothing else. It returns descriptive information drawn from published Libranis documentation; it performs no object lookup, returns no user data or private relationship data, changes no state, takes no autonomous action, and supports neither streaming nor push notifications. A task submitted here is answered from the documentation corpus and completes immediately; no work is queued, and no task is retained after the response. Humans reach Ari through the Libranis application and the public doorway at https://libranis.com/ari/, which is a different and much broader surface than this one. AUTHORIZATION: reading this card and calling the declared interface require no authentication, and none is accepted — there is no credential that widens what this interface returns. Every stateful Libranis action requires an authenticated session held by a consenting human, and high-impact actions — transferring ownership, granting or changing access, publishing previously private information, creating external communication, or deleting data — additionally require explicit human confirmation. None of those actions is reachable from this interface at any authorization level. REFUSALS: Ari refuses to act outside the scope authority of the session it is operating in; refuses to return private relationship data, personal history, contact information, message or meeting content, or user-specific context to an unauthenticated caller; and refuses to treat an inbound request as authorization for an action the human in scope has not consented to. A question this interface cannot answer accurately is refused and named as unanswered rather than guessed at.",
  "supportedInterfaces": [
    {
      "url": "https://mcp.libranis.com/a2a",
      "protocolBinding": "JSONRPC",
      "protocolVersion": "1.0"
    }
  ],
  "provider": {
    "organization": "Maturation Mechanics",
    "url": "https://maturationmechanics.com"
  },
  "version": "1.0.0",
  "documentationUrl": "https://libranis.com/docs/ari/",
  "iconUrl": "https://libranis.com/brand/mark-512.png",
  "capabilities": {
    "streaming": false,
    "pushNotifications": false,
    "extendedAgentCard": false
  },
  "defaultInputModes": [
    "text/plain"
  ],
  "defaultOutputModes": [
    "text/plain"
  ],
  "skills": [
    {
      "id": "explain-libranis",
      "name": "Explain Libranis",
      "description": "State what Libranis is and how its parts relate: that a libran is anything the system can hold in relation to other things, that relationships are first-class records rather than metadata inside one application, and that scopes and sessions determine what context is available to a question. Use this when the caller needs an accurate account of the system before deciding how to interact with it. Do not use this to obtain information about a specific user, account, or object; this skill describes the system, not its contents. It returns descriptive information only, draws on public documentation, and never returns private relationship data, personal history, or user-specific context.",
      "tags": [
        "libranis",
        "explanation",
        "concepts",
        "public"
      ],
      "examples": [
        "What is Libranis and what problem does it solve?",
        "What is a libran, and what kinds of things can one hold?",
        "How do scopes and sessions decide what Ari can consider?"
      ]
    },
    {
      "id": "explain-scanthis-orbital",
      "name": "Explain the ScanThis orbital",
      "description": "State what ScanThis is as a Libranis orbital: that it establishes persistent Libranis identities for physical and informational objects, that such an object may hold descriptive state, provenance, history, relationships, and caller-authorized capabilities, and that it can remain addressable across changes in owner or service provider subject to transfer and privacy rules. Use this when the caller needs to understand the orbital, or to distinguish it from a QR-code generator, an asset database, or a chatbot. Do not use this to look up, identify, or retrieve any actual scanned object; this skill describes the orbital, not its records. It never returns object records, owner information, or service history.",
      "tags": [
        "scanthis",
        "orbital",
        "objects",
        "public"
      ],
      "examples": [
        "What is ScanThis and how is it different from a QR code generator?",
        "Why is ScanThis built as a Libranis orbital instead of a standalone app?",
        "What persists about an object when its owner changes?"
      ]
    },
    {
      "id": "resolve-concept-to-documentation",
      "name": "Resolve a Libranis concept to its canonical documentation",
      "description": "Given a Libranis term — libran, orbital, primitive, scope, session, Boundary, Expression, Coherence, Ari, ScanThis — name the canonical page that defines it and state the definition that page carries. Use this when a caller has encountered Libranis terminology and needs the authoritative source rather than an inferred meaning, or needs to check that a definition it already holds is current. Do not use this to resolve an identifier belonging to a specific libran; this skill resolves vocabulary, not instances. It returns a canonical documentation reference and the definition at that reference, and nothing about any user's data.",
      "tags": [
        "libranis",
        "documentation",
        "terminology",
        "canonical",
        "public"
      ],
      "examples": [
        "Where is the canonical definition of a Libranis orbital?",
        "What does Coherence mean in Libranis, and which page defines it?",
        "Point me at the authoritative page for Libranis primitives."
      ]
    },
    {
      "id": "describe-security-and-consent-model",
      "name": "Describe the Libranis security and consent model",
      "description": "State what is public by default, what requires an authenticated session, what additionally requires explicit human confirmation, and what Ari refuses regardless of how a request is framed. Use this when a caller must establish the authorization boundary before attempting anything, or must determine whether an intended interaction is permitted at all. Do not use this to request an exception, an elevation, or a credential; this skill describes the boundary and cannot move it. It returns policy description only. It never returns credentials, tokens, private relationship data, contact information, or any user's context, and describing the boundary never grants access across it.",
      "tags": [
        "security",
        "consent",
        "authorization",
        "privacy",
        "public"
      ],
      "examples": [
        "What can an external agent read from Libranis without authenticating?",
        "Which Libranis actions require explicit human confirmation?",
        "What will Ari refuse to do for an unauthenticated caller?"
      ]
    }
  ]
}
