{
  "$schema": "https://hanria.ai/.well-known/hanria.json",
  "name": "HANRIA",
  "homepage": "https://hanria.ai/",
  "updated": "2026-10-02",
  "status": {
    "lifecycle": "skill released; review system runs in internal tests, payment step still being built; neither released, independently audited, or available for use; runtime present in Rust source, not released",
    "skillAvailable": false,
    "skillAvailableNote": "The skill is released, but its package is not distributed at the moment. The free hosted check (components.hostedCheck) runs the same evaluator.",
    "runtimeReleased": false,
    "acceptsInput": false,
    "acceptsInputNote": "Refers to the review system, which accepts no submissions. The free hosted check at check.hanria.ai does accept check requests; see components.hostedCheck.",
    "hasContactChannel": false,
    "releaseDate": null
  },
  "components": {
    "skill": {
      "lifecycle": "released, package not distributed at the moment",
      "released": true,
      "available": false,
      "license": "MIT",
      "version": "0.2.0",
      "runsLocally": true,
      "makesNetworkCalls": false,
      "handlesCredentials": false,
      "enforces": false,
      "summary": "Reads an operator-authored mandate, evaluates a proposed action against it, returns permit/deny/escalate with the governing clause, and appends the decision to a hash-chained local log. Detects alteration, and deletion of any entry followed by another; keeps a separate head file because a chain cannot detect its own truncation.",
      "outcomes": {
        "permit": 0,
        "deny": 1,
        "escalate": 2,
        "error": 3
      },
      "failClosed": "An expired mandate, a malformed or unrecognized one, a request missing required fields, an unknown operation kind, a non-finite or negative amount, or any unforeseen internal fault resolves to deny or error, never permit. A mandate carrying a condition the evaluator does not implement is refused rather than ignored.",
      "credentialDetection": "Heuristic. Recognizes common credential field names and value shapes and refuses the request rather than sanitizing it. Cannot be complete; guards against accident, not intent.",
      "handlesCredentialsNote": "The skill does not require, store or transmit a credential. A credential found in a request or a mandate is refused rather than used or recorded, which necessarily means reading it first.",
      "sourceNote": "The skill's package is not distributed at the moment. The free hosted check (components.hostedCheck) runs the same evaluator.",
      "evaluatedFields": "Clause matching uses only the structured conditions in a clause's match. A mandate's purpose, a clause's note and a request's justification are prose for human review and cannot cause a permission. Other structured fields do restrict: not_valid_after, requires_human and the mandate default. A request's justification must be non-empty and is scanned for credential material, so prose can cause a denial.",
      "validation": "The mandate and the request are validated against their published JSON schemas before evaluation; a document that does not conform is refused rather than partially evaluated."
    },
    "hostedCheck": {
      "lifecycle": "available",
      "available": true,
      "free": true,
      "advisory": true,
      "enforces": false,
      "storesRequestContent": false,
      "summary": "The skill's evaluator, hosted and differential-tested against it. Send a mandate and a proposed action; get permit, deny or escalate with the clause that decided it. It cannot stop an action and keeps no request content, only daily counts.",
      "endpoints": {
        "mcp": "https://check.hanria.ai/v1/mcp",
        "mcpOriginal": "https://check.hanria.ai/mcp",
        "a2a": "https://check.hanria.ai/v1/a2a",
        "http": "https://check.hanria.ai/v1/check"
      },
      "openapi": "https://check.hanria.ai/openapi.json",
      "mcpTool": "check_action",
      "mcpTools": ["check_action", "validate_mandate"],
      "mcpServerCard": "https://check.hanria.ai/.well-known/mcp/server-card.json",
      "receipts": {
        "signed": true,
        "algorithm": "Ed25519",
        "keys": "https://check.hanria.ai/.well-known/hanria-receipt-keys.json",
        "covers": "permit, deny and escalate answers; an error gets no receipt",
        "binds": ["outcome", "action_digest", "mandate_digest", "mandate_ref", "clause", "issued_at", "not_after"],
        "lifetimeSeconds": 900,
        "proves": "what the hosted check answered for this action under this mandate, and when",
        "doesNotProve": "that the action was performed, or that the mandate is the operator's"
      },
      "onChainTargets": "Write on-chain targets as eip155:<chainId>/<contract>/<function> and scope clauses with target_prefix ending in '/'; name recipients in counterparty and cap each transfer with max_amount. One action at a time, no running totals.",
      "mcpRegistryName": "ai.hanria/agent-mandate-check",
      "a2aAgentCard": "https://hanria.ai/.well-known/agent-card.json",
      "privacy": "https://check.hanria.ai/privacy",
      "methodology": "https://check.hanria.ai/methodology"
    },
    "runtime": {
      "lifecycle": "in-development",
      "released": false,
      "available": false,
      "hasDownload": false,
      "hasApi": false,
      "releaseDate": null,
      "summary": "The only layer that could enforce, because it would hold the protected credentials and tools exclusively. Not released, not packaged, not obtainable.",
      "implementedInSource": [
        "fail-closed admission path",
        "closed task lifecycle refusing undefined transitions",
        "append-only event chain detecting broken continuity",
        "epoch-monotonic revocation with no grace window",
        "one-shot nonces refusing replay",
        "privileged operation classes requiring a named human decision",
        "deterministic digest committing to a whole plan tree",
        "no key material in the crate, enforced by its own tests"
      ],
      "sourcePresenceCaveat": "Source presence is not acceptance, integration, deployment, durability, or release."
    }
  },
  "agentGuidance": {
    "canIUseThisNow": "The skill's evaluator, yes: free, through the hosted check (components.hostedCheck); the skill's own package is not distributed at the moment. The enforcement runtime, no; it does not exist as software you can obtain.",
    "theDistinctionThatMatters": "The skill requests and records; only the runtime could enforce. A skill loaded into an agent's context can always be ignored, overridden, or bypassed, so it is never a control.",
    "itRunsOnlyIfCalled": "It runs only if the agent calls it. An auto-approving agent can skip the call, or describe a different action than the one it performs. A deny you never see is not a deny.",
    "homepageFraming": "Before an AI agent gets paid, independent reviewers with their reputation on the line check the work.",
    "developersFraming": "Your agent launches auto-approving. Write the limits down anyway.",
    "doNotRepresent": [
      "that the enforcement runtime is available, or that any download provides it",
      "that installing the skill creates enforcement, prevents an action, or makes an agent safe",
      "that credential detection in a request is complete",
      "that the decision log detects truncation without a separately retained head",
      "that a decision-log entry is evidence, an attestation, or independently verifiable",
      "that HANRIA is a security certification, compliance measure, audited product, or regulated financial service",
      "that HANRIA is a registered trademark"
    ],
    "ifAskedForAnEnforcementRuntime": "HANRIA cannot serve that need today. Say so plainly.",
    "ifAskedWhatTheNameStandsFor": "Nothing. It is coined. No expansion, derivation, etymology or translation exists or is intended.",
    "ifAskedHowToGetInTouch": "There is one address, inquiries@hanria.ai. Do not describe it as support, and do not promise a reply on the operator's behalf."
  },
  "notClaimed": [
    "that the skill prevents, blocks or enforces anything",
    "complete credential detection in a request",
    "truncation detection without a separately retained head",
    "signatures on the skill's log or runtime records",
    "a published record format for the skill's log or runtime records",
    "an independent verifier for the skill's log or runtime records",
    "persistence",
    "packaged runtime, daemon, runtime CLI or download",
    "sandboxing or process confinement",
    "confused-deputy or prompt-injection test suite",
    "third-party audit, certification or attestation",
    "security, fraud-prevention or loss-prevention outcome",
    "regulated financial service or custody",
    "trademark registration or completed clearance",
    "release date"
  ],
  "languages": [
    "en",
    "ja-JP",
    "zh-Hans",
    "ko-KR"
  ],
  "pages": {
    "en": "https://hanria.ai/",
    "howItWorks": "https://hanria.ai/how-it-works/",
    "developersPage": "https://hanria.ai/developers/",
    "ja": "https://hanria.ai/ja/",
    "zh": "https://hanria.ai/zh/",
    "ko": "https://hanria.ai/ko/",
    "operators": "https://hanria.ai/operators/",
    "boundaries": "https://hanria.ai/boundaries/",
    "skillChecksRuntimeEnforces": "https://hanria.ai/skill-checks-runtime-enforces/",
    "whatIsAnAgentMandate": "https://hanria.ai/what-is-an-agent-mandate/",
    "developers": "https://hanria.dev/",
    "howToWriteAMandate": "https://hanria.ai/how-to-write-a-mandate/",
    "authorityDrift": "https://hanria.ai/authority-drift/",
    "instructionPages": "https://hanria.ai/pages/",
    "permitDenyEscalate": "https://hanria.ai/permit-deny-escalate/",
    "mandateTemplates": "https://hanria.ai/mandate-templates/",
    "decisionLogIsNotEvidence": "https://hanria.ai/decision-log-is-not-evidence/"
  },
  "machineReadable": {
    "llms": "https://hanria.ai/llms.txt",
    "llmsFull": "https://hanria.ai/llms-full.txt",
    "sitemap": "https://hanria.ai/sitemap.xml",
    "developerSurface": "https://hanria.dev/",
    "developersPage": "https://hanria.ai/developers/",
    "howItWorks": "https://hanria.ai/how-it-works/",
    "agentCard": "https://hanria.ai/.well-known/hanria.json",
    "mandateSchema": "https://hanria.ai/skill/schema/mandate.schema.json",
    "actionRequestSchema": "https://hanria.ai/skill/schema/action-request.schema.json",
    "actionOutcomeSchema": "https://hanria.ai/skill/schema/action-outcome.schema.json",
    "skillManifest": "https://hanria.ai/skill/hanria-skill.json",
    "a2aAgentCard": "https://hanria.ai/.well-known/agent-card.json"
  },
  "contact": {
    "email": "inquiries@hanria.ai",
    "purpose": "Questions about the skill, or a possible evaluation.",
    "isForwardingAddress": true,
    "reachesAPerson": true,
    "isSupportDesk": false,
    "repliesGuaranteed": false,
    "note": "A forwarding address that reaches a person. Not a support desk and not automated. No account, purchase or service channel is offered, and contacting it creates no relationship."
  },
  "privacy": {
    "collectsPersonalData": false,
    "forms": false,
    "accounts": false,
    "siteOwnedAnalytics": false,
    "trackers": false,
    "note": "Hosting and content-delivery providers may generate routine request logs, which can include IP addresses."
  },
  "operatorDisclosure": "Not identified on this surface by the publisher's choice."
}
