Agent Output Verification
output-verification.agendamcp.dpdns.org
· formerly agent-output-verification-a2a.vassiliy-lakhonin.workers.dev
· Vassiliy Lakhonin
External application-level evidence gate for agent workflows. Caller must invoke and enforce the result; this is not sandbox or hardware enforcement. Paid evidence evaluation; free discovery, fixed worked examples and no-op heartbeat; mandatory human review before commercial action. No independent factual verification or clearance. Before relaying another agent's answer, use an external evidence-review boundary to check the claims against supplied source text. An A2A-compatible relay-readiness gate for agent-to-agent output hand-off: bring the claim set and its evidence; get a machine-actionable verdict — verify_before_relay, block_unsafe_claims, not_decision_ready, or insufficient_information — with the unsafe and weak claims, evidence gaps, and owner actions. Caller-declared evidence is never externally verified here, so allow_relay is never issued: the strongest verdict is verify_before_relay with mandatory human review, and a quote counts as grounded only when its text appears in the cited evidence content. Schema-level and structural only — not factual-truth verification, source retrieval, or an approval.
Dispute or improve this rating
A
Conformance score: 91/100
A-grade: production-ready agent with verified compliance signals across the board.
click to expand breakdown ▾
click to collapse breakdown ▴
agent-card.json changed within the last 7 days. We track these so downstream callers can react.
Activity (audit trail)
last 24h · 0 invocations 100.0% success Public aggregate · no PII recordedPer event type (7d)
Recent events (last 20)
| When | Event | Method | Status | Latency |
|---|---|---|---|---|
| 2026-10-11T01:46:46 | search_impression | — |
200 ok | — |
| 2026-10-11T01:34:28 | search_impression | — |
200 ok | — |
| 2026-10-11T01:33:55 | search_impression | — |
200 ok | — |
| 2026-10-11T01:33:54 | search_impression | — |
200 ok | — |
| 2026-10-06T00:19:45 | search_impression | — |
200 ok | — |
| 2026-10-05T23:56:40 | search_impression | — |
200 ok | — |
| 2026-09-26T20:43:53 | search_impression | — |
200 ok | — |
| 2026-09-18T11:30:30 | skill_run | GET /api/v1/passport/{domain} |
200 ok | 126ms |
| 2026-08-09T08:59:07 | readiness_scan | /readiness |
— ok | 321ms |
| 2026-07-09T06:17:23 | form_submission | /submit |
— ok | — |
Card history
10 snapshots drifted 9× Every change toagent-card.json
| Captured | Hash | |
|---|---|---|
| 2026-10-11 20:52:54 current | daf70a46e2e9… |
view → |
| 2026-10-10 17:27:43 | 6b9c93fb94bd… |
view → |
| 2026-10-10 16:18:13 | 63e287220cf0… |
view → |
| 2026-10-10 13:03:56 | c7f8facba35c… |
view → |
| 2026-10-09 15:04:30 | 0d7662e876a6… |
view → |
| 2026-10-05 18:52:32 | 6e964614ccd5… |
view → |
| 2026-10-05 18:35:33 | aa2d87bdefcb… |
view → |
| 2026-10-05 18:19:11 | 8ccee1a8bf60… |
view → |
| 2026-10-05 18:03:16 | 699eb6dc9206… |
view → |
| 2026-10-05 17:46:04 | c121546ff1f2… |
view → |
GET /api/agents/output-verification.agendamcp.dpdns.org/snapshots.Try it
Send a message to this agent live. Your prompt is proxied through Agenstry.
Endpoints
Skills · 3 declared · mapped to canonical taxonomy
Turns another agent's claim set and evidence into a machine-actionable relay verdict — verify_before_relay, block_unsafe_claims, not_decision_ready, or insuffic…
Routes a caller-controlled action to continue, request_evidence, require_approval, or stop using supplied claim evidence, risk tier, policy checks, and external…
Finds missing evidence ids, quote-to-reference mismatches, unsupported statements, and weak claims in a caller-supplied claim set. Returns the evidence gaps and…
Health · last 30 probes
Who's calling this agent 30d
8 interactions captured (impressions + lookups + A2A calls)
rest
8
Public view: top 3 per dimension. Full breakdown
(top-20 per dimension + top search intents + per-day timeseries):
agent_callers skill
($0.05/call, $0 on
Enterprise).
Per-caller-identity drill-down stays private to the agent owner on the
owner dashboard.
Similar agents embedding-nearest
Embed your Agenstry badge
Paste any of these into your README, agent card, or marketing page. Each badge auto-updates and links back to this page.
Markdown / HTML snippets
[](https://agenstry.com/agents/output-verification.agendamcp.dpdns.org) [](https://agenstry.com/agents/output-verification.agendamcp.dpdns.org) [](https://agenstry.com/agents/output-verification.agendamcp.dpdns.org) [](https://agenstry.com/agents/output-verification.agendamcp.dpdns.org)
Audit-grade evidence bundle
JSON snapshot for vendor-review files. Add ?sign=true for a JWS-signed envelope verifiable against
our JWKS. See the methodology.
Raw agent card JSON
{
"name": "Agent Output Verification",
"description": "External application-level evidence gate for agent workflows. Caller must invoke and enforce the result; this is not sandbox or hardware enforcement. Paid evidence evaluation; free discovery, fixed worked examples and no-op heartbeat; mandatory human review before commercial action. No independent factual verification or clearance. Before relaying another agent's answer, use an external evidence-review boundary to check the claims against supplied source text. An A2A-compatible relay-readiness gate for agent-to-agent output hand-off: bring the claim set and its evidence; get a machine-actionable verdict \u2014 verify_before_relay, block_unsafe_claims, not_decision_ready, or insufficient_information \u2014 with the unsafe and weak claims, evidence gaps, and owner actions. Caller-declared evidence is never externally verified here, so allow_relay is never issued: the strongest verdict is verify_before_relay with mandatory human review, and a quote counts as grounded only when its text appears in the cited evidence content. Schema-level and structural only \u2014 not factual-truth verification, source retrieval, or an approval.",
"provider": {
"organization": "Vassiliy Lakhonin",
"url": "https://github.com/vassiliylakhonin"
},
"version": "1.16.0",
"documentationUrl": "https://github.com/vassiliylakhonin/agenda-intelligence-md/tree/main/schemas/v1",
"supportedInterfaces": [
{
"url": "https://output-verification.agendamcp.dpdns.org/message/send",
"protocolBinding": "JSONRPC",
"protocolVersion": "1.0"
}
],
"securityRequirements": [],
"capabilities": {
"streaming": false,
"pushNotifications": false,
"extendedAgentCard": false,
"extensions": [
{
"uri": "https://agenda-intelligence-a2a.vassiliy-lakhonin.workers.dev/a2a/extensions/agenda-intelligence/v1",
"description": "Wrapper scope, product contract, boundaries, support channel and provider identity for this agent. Repeat callers may send the optional X-Client-Id header with a stable non-personal integration label. Descriptive only: reading it is never required to call the agent.",
"required": false,
"params": {
"support": {
"email": "vassiliy.lakhonin@gmail.com",
"documentationUrl": "https://github.com/vassiliylakhonin/agenda-intelligence-md/blob/main/MCP.md",
"hours_local": "Mon\u2013Fri 09:00\u201318:00 Asia/Almaty (UTC+5)",
"timezone": "Asia/Almaty",
"response_sla": "Best-effort response within 2 business days. Solo maintainer (not a company); not a paid support channel."
},
"x_agenda_intelligence": {
"hosted_wrapper": true,
"operational_health": {
"status": "ok",
"version": "1.16.0",
"checked_at": "2026-10-11T21:56:18.312Z",
"url": "https://output-verification.agendamcp.dpdns.org/health"
},
"task_continuity": {
"store": "KV (24-hour TTL, status-only without input or artifacts)",
"supported_methods": [
"SendMessage",
"GetTask"
],
"cancellation": "unsupported for synchronous tasks",
"tenant_binding": "when TASK_SCOPE_AUTH_REQUIRED=1, task creation issues a private continuation.token; GetTask and continuation require it in X-Task-Token and otherwise answer TASK_NOT_FOUND. X-Client-Id is a telemetry label. Legacy local mode uses label scoping only"
},
"wrapper_scope": "A2A/JSON-RPC discovery, claim-level relay-readiness checks, pre-action routing, and response assembly only",
"jsonrpc_endpoint": "https://output-verification.agendamcp.dpdns.org/message/send",
"protocol_version": "1.0",
"public_endpoint": true,
"optional_client_identifier_header": "X-Client-Id",
"client_identification": {
"header": "X-Client-Id",
"required": false,
"purpose": "Use a stable non-personal integration label so aggregate stats can group repeat calls; do not send a person's name, email, token, or secret."
},
"fleet_directory": "https://output-verification.agendamcp.dpdns.org/.well-known/fleet.json",
"ai_catalog": "https://output-verification.agendamcp.dpdns.org/.well-known/ai-catalog.json",
"oauth_protected_resource": "https://output-verification.agendamcp.dpdns.org/.well-known/oauth-protected-resource",
"repository": "https://github.com/vassiliylakhonin/agenda-intelligence-md",
"package": "https://pypi.org/project/agenda-intelligence-md/",
"mcp": {
"transport": "stdio",
"server_command": "agenda-intelligence-mcp",
"install": "pip install agenda-intelligence-md"
},
"boundaries": [
"Claim-level relay-readiness evidence triage only.",
"Schema-level and structural: it does not verify that any claim or quote is factually true.",
"No live source retrieval; it does not fetch or validate cited sources.",
"No legal, compliance, financial, investment, insurance, or trading advice.",
"No approval, clearance, authorization, or final decision.",
"Human review is required for every verdict: caller-declared evidence never earns allow_relay, so the strongest routing is verify_before_relay."
],
"x402": {
"protocol": "x402",
"network": "base",
"chain_id": 8453,
"token": "USDC",
"token_contract": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"pricing_tiers": {
"tier_micro_check_usdc": 0.05,
"tier_bankability_dossier_usdc": 25,
"tier_pro_monthly_usdc": 490
},
"settle_endpoint": "https://output-verification.agendamcp.dpdns.org/v1/settle",
"interactive_web3_ui": "https://output-verification.agendamcp.dpdns.org/corridor-bankability"
},
"product_profile": "agent_output_verification",
"canonical_product_name": "Agent Output Verification",
"documentation": "https://github.com/vassiliylakhonin/agenda-intelligence-md/tree/main/schemas/v1",
"product_contract": {
"request_schema": "https://github.com/vassiliylakhonin/agenda-intelligence-md/blob/main/schemas/v1/evidence-audit.schema.json",
"response_schema": "https://github.com/vassiliylakhonin/agenda-intelligence-md/blob/main/schemas/v1/agent-output-verification-response.schema.json",
"source_taxonomy": "https://github.com/vassiliylakhonin/agenda-intelligence-md/tree/main/schemas/v1",
"runnable_examples": "https://github.com/vassiliylakhonin/agenda-intelligence-md/tree/main/examples/a2a",
"canonical_input_mode": "structured_json",
"demo_input_modes": [
"structured_json"
]
},
"pre_action_check_contract": {
"request_schema": "https://github.com/vassiliylakhonin/agenda-intelligence-md/blob/main/schemas/v1/pre-action-check-request.schema.json",
"response_schema": "https://github.com/vassiliylakhonin/agenda-intelligence-md/blob/main/schemas/v1/pre-action-check-response.schema.json",
"replay_cases": "https://github.com/vassiliylakhonin/agenda-intelligence-md/blob/main/examples/pre-action-check/replay-cases.json"
},
"supported_contracts": [
"agent_output_verification_contract",
"pre_action_check_contract"
],
"buyer_use_cases": [
"verify a claim-backed answer received from another agent before relaying or acting on it",
"gate an agent-to-agent hand-off when the upstream output may contain unsupported claims",
"pre-publication check that every claim in an agent-drafted memo is grounded",
"route an agent action to continue, request evidence, require approval, or stop before a tool call"
],
"commercial_positioning": "Claim set + action context -> relay verdict or pre-action route with evidence gaps and owner actions. The check uses caller-supplied evidence and policy results. It does not verify factual truth, retrieve sources, authenticate an actor, authorize an action, or enforce the result.",
"focus": [
"relay-readiness verdict for one agent verifying another agent's output",
"pre-action routing before an external tool call or hand-off",
"unsupported and orphaned claim detection",
"risk-based human approval routing"
],
"not_advice_notice": "Agent-output relay-readiness triage only. Schema-level and structural: it does not verify that any claim or quote is factually true, does not fetch or validate cited sources, and does not authorize an action or provide legal, compliance, sanctions, financial, or investment advice. This gate never issues allow_relay from caller-declared packs: human review is required before a consuming agent acts on any verdict it returns.",
"preferred_input": "Structured JSON in message.parts[0].data (mediaType: application/json). JSON serialized in message.parts[0].text is also accepted for compatibility; ordinary prose alone is not sufficient for paid evaluation. Use the request schema and replace illustrative values with supplied evidence.",
"a2a_send_message_example": {
"endpoint": "https://output-verification.agendamcp.dpdns.org/message/send",
"headers": {
"Content-Type": "application/json",
"A2A-Version": "1.0",
"X-Trace-Id": "example-trace-001"
},
"request": {
"jsonrpc": "2.0",
"id": "example-1",
"method": "SendMessage",
"params": {
"message": {
"messageId": "example-msg-1",
"role": "ROLE_USER",
"parts": [
{
"data": {
"claims": [
{
"claim_id": "c1",
"claim": "The counterparty is not on the OFAC SDN list as of 2026-08-01.",
"support_level": "direct",
"evidence_ids": [
"e1"
]
}
],
"evidence": [
{
"evidence_id": "e1",
"name": "OFAC SDN extract",
"source_type": "official_document",
"freshness": "2026-08-01"
}
]
},
"mediaType": "application/json"
}
]
}
}
},
"expected": {
"task_state": "TASK_STATE_COMPLETED",
"http_status_without_payment": 402,
"note": "Task completion is the success shape after admission. On paid deployments, a valid unpaid request returns HTTP 402 without evaluation. Triage output only, not authorization or clearance."
},
"trace": "Optional: send an X-Trace-Id header (8-80 chars of A-Za-z0-9._:-) or a top-level params.trace_id. It is echoed in task metadata.trace_id and recorded in telemetry, so your call can be correlated end to end."
},
"free_a2a_triage": {
"scope": "Free discovery, fixed examples and no-op heartbeat only. Evidence evaluation is paid.",
"decision_boundary": "No legal, sanctions, financial or trading clearance. Human review before any commercial action.",
"price": "Paid evaluations require signed payment or Pro entitlement. See /.well-known/x402."
}
},
"x_security_posture": {
"transport": "https",
"public_endpoint": true,
"required_authentication": false,
"oauth_protected_resource_metadata": "https://output-verification.agendamcp.dpdns.org/.well-known/oauth-protected-resource",
"optional_client_identifier_header": "X-Client-Id",
"client_identification": {
"required": false,
"authentication": false,
"purpose": "Pseudonymous repeat-call attribution in aggregate operational analytics."
},
"zero_retention_guarantee": false,
"pricing_url": "https://output-verification.agendamcp.dpdns.org/.well-known/x402",
"privacy_url": "https://output-verification.agendamcp.dpdns.org/privacy",
"data_handling": [
"Aggregate operational telemetry excludes caller prompt text.",
"Signed paid execution stores a response for recovery within 24 hours; do not submit secrets.",
"Voluntary intake and feedback have separate storage and retention rules described in /privacy."
],
"abuse_contact": "mailto:vassiliy.lakhonin@gmail.com"
},
"x_tool_contracts": {
"contract_version": "1.16.0",
"note": "These are MCP tool schemas, not A2A envelope schemas. For A2A SendMessage use x_agenda_intelligence.a2a_send_message_example; structured gate fields go directly in message.parts[0].data with mediaType application/json. Text-only routing profiles use message.parts[0].text; ordinary prose does not replace a gate's required structured evidence.",
"tools": [
{
"name": "agent_output_verification",
"input_schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://github.com/vassiliylakhonin/agenda-intelligence-md/schemas/v1/evidence-audit.schema.json",
"title": "EvidenceAudit",
"description": "Claim-level evidence audit. Each important claim should be traceable to specific evidence with an explicit support level, uncertainty hook, and risk-if-wrong note. Use the `audit-claims` CLI command or `audit_claims` MCP tool to validate.",
"x-schema-version": "1",
"type": "object",
"additionalProperties": false,
"required": [
"claims",
"evidence"
],
"properties": {
"topic": {
"type": "string"
},
"claims": {
"type": "array",
"minItems": 1,
"items": {
"$ref": "#/$defs/claim"
}
},
"evidence": {
"type": "array",
"items": {
"$ref": "#/$defs/evidence_item"
}
},
"unsupported_claims": {
"type": "array",
"items": {
"type": "string"
},
"description": "Important claims the analyst could not back with evidence."
}
},
"$defs": {
"claim": {
"type": "object",
"additionalProperties": false,
"required": [
"claim_id",
"claim",
"support_level"
],
"properties": {
"claim_id": {
"type": "string",
"minLength": 1
},
"claim": {
"type": "string",
"minLength": 1
},
"claim_type": {
"type": "string",
"enum": [
"regulatory_change",
"regulatory_gap",
"sanctions_event",
"geopolitical_event",
"market_event",
"industry_response",
"corporate_disclosure",
"capability_claim"
],
"description": "Taxonomy label for the claim. regulatory_change: law or regulation adopted, amended, or enforced. regulatory_gap: identified absence or weakness in existing regulation. sanctions_event: sanctions designation, evasion, or enforcement action. geopolitical_event: political decision or conflict development. market_event: price move, trade flow, or commercial development. industry_response: industry adaptation or corporate strategy shift. corporate_disclosure: company filing, statement, or announcement. capability_claim: assertion about technical or operational capability."
},
"evidence_ids": {
"type": "array",
"items": {
"type": "string"
}
},
"support_level": {
"type": "string",
"enum": [
"direct",
"partial",
"weak",
"unsupported"
]
},
"uncertainty": {
"type": "string",
"description": "What the analyst is unsure about, even if the claim is supported."
},
"risk_if_wrong": {
"type": "string",
"description": "Decision-level cost if this claim turns out to be wrong."
},
"supporting_quotes": {
"type": "array",
"description": "Optional span-level grounding: the specific quote(s) in cited evidence that back this claim. Records which span supports the claim, not just which document. Each entry's evidence_id should be one of this claim's evidence_ids. audit-claims checks the structural link only (flags span_orphans where it is not); it does NOT verify the quote text appears in the source \u2014 that is verify-quotes' job. Neither verifies factual truth.",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"evidence_id",
"quote"
],
"properties": {
"evidence_id": {
"type": "string",
"minLength": 1
},
"quote": {
"type": "string",
"minLength": 1
}
}
}
}
}
},
"evidence_item": {
"type": "object",
"additionalProperties": false,
"required": [
"evidence_id",
"source_type"
],
"properties": {
"evidence_id": {
"type": "string",
"minLength": 1
},
"name": {
"type": "string"
},
"url": {
"type": "string"
},
"source_type": {
"type": "string",
"description": "e.g. official_document, regulator_announcement, news, analyst_report, primary_data, illustrative_placeholder."
},
"freshness": {
"type": "string"
},
"supports": {
"type": "array",
"items": {
"type": "string"
}
},
"limits": {
"type": "array",
"items": {
"type": "string"
}
},
"content": {
"type": "string",
"description": "Optional source text extract. When present, supporting_quotes are corroborated by matching their text against this content; without a content field, caller-declared quotes count as unverified assertions."
},
"text": {
"type": "string",
"description": "Alias content field; treated like 'content' for quote corroboration."
},
"body": {
"type": "string",
"description": "Alias content field; treated like 'content' for quote corroboration."
},
"excerpt": {
"type": "string",
"description": "Alias content field; treated like 'content' for quote corroboration."
},
"quote": {
"type": "string",
"description": "Alias content field; treated like 'content' for quote corroboration."
},
"snippet": {
"type": "string",
"description": "Alias content field; treated like 'content' for quote corroboration."
},
"summary": {
"type": "string",
"description": "Alias content field; treated like 'content' for quote corroboration."
},
"full_text": {
"type": "string",
"description": "Alias content field; treated like 'content' for quote corroboration."
}
}
}
}
},
"output_schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://github.com/vassiliylakhonin/agenda-intelligence-md/schemas/v1/agent-output-verification-response.schema.json",
"title": "AgentOutputVerificationResponse",
"description": "Structured verdict for whether one agent's claim-backed output is ready for a consuming agent to relay or act on. Wraps a claim-level evidence audit (evidence-audit.schema.json) and returns a machine-actionable relay verdict, weak/unsafe claim triage, evidence gaps, and owner actions. Schema-level and structural only: it does not verify that any claim or quote is factually true, does not fetch or validate cited sources, and does not authorize an action or provide legal, compliance, sanctions, financial, or investment advice.",
"x-schema-version": "1",
"type": "object",
"additionalProperties": false,
"required": [
"verdict",
"trust_signal",
"readiness_score",
"readiness_label",
"claim_count",
"grounded_claim_count",
"unsafe_claims",
"weak_claims",
"unsupported_statements",
"evidence_gaps",
"owner_actions",
"watch_next",
"human_review_required",
"not_advice_notice",
"limitations"
],
"properties": {
"verdict": {
"type": "string",
"enum": [
"allow_relay",
"verify_before_relay",
"block_unsafe_claims",
"not_decision_ready",
"insufficient_information"
],
"description": "Machine-actionable relay verdict. verify_before_relay: claims are declared-supported and structurally consistent; the pack is caller-declared and never externally verified here, so this is the best possible routing and human review is mandatory. block_unsafe_claims: at least one claim is marked unsupported or cites evidence that is not present. not_decision_ready / insufficient_information: not enough structured claim material to verdict, or no claim cites evidence present in the supplied pack. allow_relay is reserved and never issued from caller-declared packs: this gate performs no external verification, so nothing it returns may be read as relay-ready. A declared support_level is a caller assertion, not a verified fact: it counts only where the claim cites an evidence_id the caller actually supplied."
},
"trust_signal": {
"type": "string",
"enum": [
"low",
"medium",
"medium_high",
"high",
"unknown"
]
},
"readiness_score": {
"type": "integer",
"minimum": 0,
"maximum": 100,
"description": "Heuristic 0-100 score over declared evidence structure, capped below the review_ready band (max 84) because caller-declared packs are never externally verified here. Only claims that cite an evidence_id present in the supplied evidence contribute to it; a claim whose declared support_level nothing in the pack corroborates weighs nothing. Not approval, clearance, or factual verification."
},
"readiness_label": {
"type": "string",
"enum": [
"insufficient_information",
"not_decision_ready",
"partial",
"review_ready"
]
},
"claim_count": {
"type": "integer",
"minimum": 0
},
"grounded_claim_count": {
"type": "integer",
"minimum": 0,
"description": "Number of claims with at least one supporting quote whose normalized text appears in the cited evidence item's content fields. A quote that is only declared, with no matching evidence content, does not count."
},
"unsafe_claims": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"claim_id",
"reason"
],
"properties": {
"claim_id": {
"type": "string",
"minLength": 1
},
"claim": {
"type": "string"
},
"reason": {
"type": "string",
"minLength": 1
}
}
},
"description": "Claims that must not be relayed as fact: marked unsupported, or citing evidence_ids absent from the supplied evidence."
},
"weak_claims": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"claim_id"
],
"properties": {
"claim_id": {
"type": "string",
"minLength": 1
},
"claim": {
"type": "string"
}
}
},
"description": "Claims declared with weak support that should be strengthened before relay."
},
"unsupported_statements": {
"type": "array",
"items": {
"type": "string"
},
"description": "Statements the producing agent itself flagged as unsupported (from evidence-audit unsupported_claims)."
},
"evidence_gaps": {
"type": "array",
"items": {
"type": "string"
}
},
"owner_actions": {
"type": "array",
"items": {
"type": "string"
},
"description": "Concrete fixes the producing agent should make before the output is relayed."
},
"watch_next": {
"type": "array",
"items": {
"type": "string"
}
},
"human_review_required": {
"type": "boolean",
"description": "True for any verdict other than allow_relay: a human should review before the consuming agent acts."
},
"not_advice_notice": {
"type": "string",
"minLength": 1
},
"limitations": {
"type": "array",
"items": {
"type": "string"
}
},
"score_scope": {
"const": "declared_evidence_structure_only"
},
"factual_verification_performed": {
"const": false
}
}
},
"annotations": {
"readOnlyHint": false,
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": false
}
},
{
"name": "pre_action_check",
"input_schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://github.com/vassiliylakhonin/agenda-intelligence-md/schemas/v1/pre-action-check-request.schema.json",
"title": "PreActionCheckRequest",
"description": "Caller-supplied action context and claim evidence for deterministic pre-action routing. The check can continue, request evidence, require human approval, or stop. It does not authenticate the actor, verify factual truth, enforce the decision, or authorize the action.",
"x-schema-version": "1",
"type": "object",
"additionalProperties": false,
"required": [
"run_id",
"actor",
"requested_action",
"target",
"risk_tier",
"claims",
"evidence"
],
"properties": {
"run_id": {
"type": "string",
"minLength": 1,
"description": "Caller-generated correlation identifier. Resubmit the same run_id after adding evidence or approval."
},
"actor": {
"$ref": "#/$defs/actor"
},
"requested_action": {
"type": "string",
"minLength": 1
},
"target": {
"$ref": "#/$defs/target"
},
"risk_tier": {
"type": "string",
"enum": [
"low",
"medium",
"high",
"critical"
]
},
"claims": {
"type": "array",
"minItems": 1,
"items": {
"$ref": "#/$defs/claim"
}
},
"evidence": {
"type": "array",
"items": {
"$ref": "#/$defs/evidence_item"
}
},
"unsupported_claims": {
"type": "array",
"items": {
"type": "string"
}
},
"policy_context": {
"$ref": "#/$defs/policy_context"
},
"approval": {
"$ref": "#/$defs/approval"
}
},
"$defs": {
"actor": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"type": {
"type": "string",
"enum": [
"ai_agent",
"automation",
"api_client",
"human_delegated_agent",
"unknown",
"other"
]
},
"operator": {
"type": "string",
"minLength": 1
}
}
},
"target": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"type": {
"type": "string",
"minLength": 1
}
}
},
"claim": {
"type": "object",
"additionalProperties": false,
"required": [
"claim_id",
"claim",
"support_level"
],
"properties": {
"claim_id": {
"type": "string",
"minLength": 1
},
"claim": {
"type": "string",
"minLength": 1
},
"claim_type": {
"type": "string",
"enum": [
"regulatory_change",
"regulatory_gap",
"sanctions_event",
"geopolitical_event",
"market_event",
"industry_response",
"corporate_disclosure",
"capability_claim"
]
},
"evidence_ids": {
"type": "array",
"items": {
"type": "string"
}
},
"support_level": {
"type": "string",
"enum": [
"direct",
"partial",
"weak",
"unsupported"
]
},
"uncertainty": {
"type": "string"
},
"risk_if_wrong": {
"type": "string"
},
"supporting_quotes": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"evidence_id",
"quote"
],
"properties": {
"evidence_id": {
"type": "string",
"minLength": 1
},
"quote": {
"type": "string",
"minLength": 1
}
}
}
}
}
},
"evidence_item": {
"type": "object",
"additionalProperties": false,
"required": [
"evidence_id",
"source_type"
],
"properties": {
"evidence_id": {
"type": "string",
"minLength": 1
},
"name": {
"type": "string"
},
"url": {
"type": "string"
},
"source_type": {
"type": "string",
"minLength": 1
},
"freshness": {
"type": "string"
},
"supports": {
"type": "array",
"items": {
"type": "string"
}
},
"limits": {
"type": "array",
"items": {
"type": "string"
}
},
"content": {
"type": "string",
"description": "Optional source text extract. supporting_quotes corroborate only by matching their text against evidence content fields; without one, quotes are caller assertions."
},
"text": {
"type": "string",
"description": "Alias content field; treated like 'content' for quote corroboration."
},
"body": {
"type": "string",
"description": "Alias content field; treated like 'content' for quote corroboration."
},
"excerpt": {
"type": "string",
"description": "Alias content field; treated like 'content' for quote corroboration."
},
"quote": {
"type": "string",
"description": "Alias content field; treated like 'content' for quote corroboration."
},
"snippet": {
"type": "string",
"description": "Alias content field; treated like 'content' for quote corroboration."
},
"summary": {
"type": "string",
"description": "Alias content field; treated like 'content' for quote corroboration."
},
"full_text": {
"type": "string",
"description": "Alias content field; treated like 'content' for quote corroboration."
}
}
},
"policy_context": {
"type": "object",
"additionalProperties": false,
"properties": {
"profile": {
"type": "string",
"enum": [
"default",
"agentic_interaction_trust"
]
},
"checks": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"check_id",
"status"
],
"properties": {
"check_id": {
"type": "string",
"minLength": 1
},
"status": {
"type": "string",
"enum": [
"passed",
"needs_evidence",
"failed"
]
},
"evidence_gap": {
"type": "string",
"minLength": 1
}
}
}
}
}
},
"approval": {
"type": "object",
"additionalProperties": false,
"required": [
"status"
],
"properties": {
"status": {
"type": "string",
"enum": [
"not_requested",
"approved",
"rejected"
]
},
"reference": {
"type": "string",
"minLength": 1,
"description": "Opaque caller-held reference to an external approval record."
}
}
}
}
},
"output_schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://github.com/vassiliylakhonin/agenda-intelligence-md/schemas/v1/pre-action-check-response.schema.json",
"title": "PreActionCheckResponse",
"description": "Deterministic routing result for a caller-controlled action boundary. The response reports readiness; the caller remains responsible for enforcement, authentication, authorization, approval storage, and the action itself.",
"x-schema-version": "1",
"type": "object",
"additionalProperties": false,
"required": [
"decision_id",
"run_id",
"policy_version",
"decision",
"reason_code",
"blocking_gaps",
"evidence_requests",
"approval_required",
"human_review_required",
"verification",
"not_authorization_notice",
"limitations"
],
"properties": {
"decision_id": {
"type": "string",
"minLength": 1
},
"run_id": {
"type": "string",
"minLength": 1
},
"policy_version": {
"type": "string",
"const": "pre-action-check.v1"
},
"decision": {
"type": "string",
"enum": [
"continue",
"request_evidence",
"require_approval",
"stop"
]
},
"reason_code": {
"type": "string",
"enum": [
"evidence_ready",
"evidence_gaps",
"unsafe_claims",
"policy_check_failed",
"approval_required_for_risk",
"approval_rejected"
]
},
"blocking_gaps": {
"type": "array",
"items": {
"type": "string"
}
},
"evidence_requests": {
"type": "array",
"items": {
"type": "string"
}
},
"approval_required": {
"type": "boolean"
},
"human_review_required": {
"type": "boolean"
},
"verification": {
"type": "object",
"additionalProperties": true,
"required": [
"verdict",
"evidence_gaps",
"owner_actions"
]
},
"policy_checks": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"check_id",
"status"
],
"properties": {
"check_id": {
"type": "string",
"minLength": 1
},
"status": {
"type": "string",
"enum": [
"passed",
"needs_evidence",
"failed"
]
},
"evidence_gap": {
"type": "string",
"minLength": 1
}
}
}
},
"receipt_status": {
"type": "string",
"enum": [
"signed",
"unavailable"
],
"description": "Present on decision_check. unavailable fails the signed Gate path closed."
},
"receipt": {
"description": "Short-lived readiness receipt attached by decision_check. The legacy pre_action_check response omits it.",
"oneOf": [
{
"type": "null"
},
{
"type": "object",
"additionalProperties": false,
"required": [
"format",
"token",
"receipt_id",
"issued_at",
"expires_at",
"request_hash",
"action_hash",
"verification_tool"
],
"properties": {
"format": {
"type": "string",
"const": "agenda-readiness-receipt+jws"
},
"token": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]+\\.[A-Za-z0-9_-]+\\.[A-Za-z0-9_-]+$"
},
"receipt_id": {
"type": "string",
"minLength": 1
},
"issued_at": {
"type": "string",
"format": "date-time"
},
"expires_at": {
"type": "string",
"format": "date-time"
},
"request_hash": {
"type": "string",
"pattern": "^sha256:[a-f0-9]{64}$"
},
"action_hash": {
"type": "string",
"pattern": "^sha256:[a-f0-9]{64}$"
},
"verification_tool": {
"type": "string",
"const": "decision_verify"
}
}
}
]
},
"not_authorization_notice": {
"type": "string",
"minLength": 1
},
"limitations": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"annotations": {
"readOnlyHint": false,
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": false
}
},
{
"name": "decision_policies_list",
"input_schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://github.com/vassiliylakhonin/agenda-intelligence-md/schemas/v1/decision-policies-list-request.schema.json",
"title": "DecisionPoliciesListRequest",
"description": "Empty request for the hosted decision-gate policy catalog.",
"x-schema-version": "1",
"type": "object",
"additionalProperties": false
},
"output_schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://github.com/vassiliylakhonin/agenda-intelligence-md/schemas/v1/decision-policies-list-response.schema.json",
"title": "DecisionPoliciesListResponse",
"description": "Stable catalog of readiness policies exposed by the hosted decision gate.",
"x-schema-version": "1",
"type": "object",
"additionalProperties": false,
"required": [
"policies",
"receipt_format",
"binding",
"not_authorization_notice"
],
"properties": {
"policies": {
"type": "array",
"minItems": 1,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"policy_id",
"policy_version",
"decision_tool",
"verify_tool",
"input_schema",
"decisions",
"positive_decision",
"receipt_ttl_seconds"
],
"properties": {
"policy_id": {
"type": "string",
"const": "pre-action-check.v1"
},
"policy_version": {
"type": "string",
"const": "pre-action-check.v1"
},
"decision_tool": {
"type": "string",
"const": "decision_check"
},
"verify_tool": {
"type": "string",
"const": "decision_verify"
},
"input_schema": {
"type": "string",
"format": "uri"
},
"decisions": {
"type": "array",
"prefixItems": [
{
"const": "continue"
},
{
"const": "request_evidence"
},
{
"const": "require_approval"
},
{
"const": "stop"
}
],
"items": false
},
"positive_decision": {
"type": "string",
"const": "continue"
},
"receipt_ttl_seconds": {
"type": "integer",
"const": 300
}
}
}
},
"receipt_format": {
"type": "string",
"const": "agenda-readiness-receipt+jws"
},
"binding": {
"type": "object",
"additionalProperties": false,
"required": [
"request_hash",
"action_hash"
],
"properties": {
"request_hash": {
"type": "object",
"additionalProperties": false,
"required": [
"algorithm",
"canonicalization",
"input"
],
"properties": {
"algorithm": {
"const": "SHA-256"
},
"canonicalization": {
"const": "RFC8785-JCS"
},
"input": {
"const": "complete_request"
}
}
},
"action_hash": {
"type": "object",
"additionalProperties": false,
"required": [
"algorithm",
"canonicalization",
"fields"
],
"properties": {
"algorithm": {
"const": "SHA-256"
},
"canonicalization": {
"const": "RFC8785-JCS"
},
"fields": {
"type": "array",
"prefixItems": [
{
"const": "actor"
},
{
"const": "requested_action"
},
{
"const": "target"
},
{
"const": "risk_tier"
}
],
"items": false
}
}
},
"unicode_normalization": {
"const": "none"
}
}
},
"not_authorization_notice": {
"type": "string",
"minLength": 1
}
}
},
"annotations": {
"readOnlyHint": false,
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": false
}
},
{
"name": "decision_check",
"input_schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://github.com/vassiliylakhonin/agenda-intelligence-md/schemas/v1/pre-action-check-request.schema.json",
"title": "PreActionCheckRequest",
"description": "Caller-supplied action context and claim evidence for deterministic pre-action routing. The check can continue, request evidence, require human approval, or stop. It does not authenticate the actor, verify factual truth, enforce the decision, or authorize the action.",
"x-schema-version": "1",
"type": "object",
"additionalProperties": false,
"required": [
"run_id",
"actor",
"requested_action",
"target",
"risk_tier",
"claims",
"evidence"
],
"properties": {
"run_id": {
"type": "string",
"minLength": 1,
"description": "Caller-generated correlation identifier. Resubmit the same run_id after adding evidence or approval."
},
"actor": {
"$ref": "#/$defs/actor"
},
"requested_action": {
"type": "string",
"minLength": 1
},
"target": {
"$ref": "#/$defs/target"
},
"risk_tier": {
"type": "string",
"enum": [
"low",
"medium",
"high",
"critical"
]
},
"claims": {
"type": "array",
"minItems": 1,
"items": {
"$ref": "#/$defs/claim"
}
},
"evidence": {
"type": "array",
"items": {
"$ref": "#/$defs/evidence_item"
}
},
"unsupported_claims": {
"type": "array",
"items": {
"type": "string"
}
},
"policy_context": {
"$ref": "#/$defs/policy_context"
},
"approval": {
"$ref": "#/$defs/approval"
}
},
"$defs": {
"actor": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"type": {
"type": "string",
"enum": [
"ai_agent",
"automation",
"api_client",
"human_delegated_agent",
"unknown",
"other"
]
},
"operator": {
"type": "string",
"minLength": 1
}
}
},
"target": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"type"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"type": {
"type": "string",
"minLength": 1
}
}
},
"claim": {
"type": "object",
"additionalProperties": false,
"required": [
"claim_id",
"claim",
"support_level"
],
"properties": {
"claim_id": {
"type": "string",
"minLength": 1
},
"claim": {
"type": "string",
"minLength": 1
},
"claim_type": {
"type": "string",
"enum": [
"regulatory_change",
"regulatory_gap",
"sanctions_event",
"geopolitical_event",
"market_event",
"industry_response",
"corporate_disclosure",
"capability_claim"
]
},
"evidence_ids": {
"type": "array",
"items": {
"type": "string"
}
},
"support_level": {
"type": "string",
"enum": [
"direct",
"partial",
"weak",
"unsupported"
]
},
"uncertainty": {
"type": "string"
},
"risk_if_wrong": {
"type": "string"
},
"supporting_quotes": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"evidence_id",
"quote"
],
"properties": {
"evidence_id": {
"type": "string",
"minLength": 1
},
"quote": {
"type": "string",
"minLength": 1
}
}
}
}
}
},
"evidence_item": {
"type": "object",
"additionalProperties": false,
"required": [
"evidence_id",
"source_type"
],
"properties": {
"evidence_id": {
"type": "string",
"minLength": 1
},
"name": {
"type": "string"
},
"url": {
"type": "string"
},
"source_type": {
"type": "string",
"minLength": 1
},
"freshness": {
"type": "string"
},
"supports": {
"type": "array",
"items": {
"type": "string"
}
},
"limits": {
"type": "array",
"items": {
"type": "string"
}
},
"content": {
"type": "string",
"description": "Optional source text extract. supporting_quotes corroborate only by matching their text against evidence content fields; without one, quotes are caller assertions."
},
"text": {
"type": "string",
"description": "Alias content field; treated like 'content' for quote corroboration."
},
"body": {
"type": "string",
"description": "Alias content field; treated like 'content' for quote corroboration."
},
"excerpt": {
"type": "string",
"description": "Alias content field; treated like 'content' for quote corroboration."
},
"quote": {
"type": "string",
"description": "Alias content field; treated like 'content' for quote corroboration."
},
"snippet": {
"type": "string",
"description": "Alias content field; treated like 'content' for quote corroboration."
},
"summary": {
"type": "string",
"description": "Alias content field; treated like 'content' for quote corroboration."
},
"full_text": {
"type": "string",
"description": "Alias content field; treated like 'content' for quote corroboration."
}
}
},
"policy_context": {
"type": "object",
"additionalProperties": false,
"properties": {
"profile": {
"type": "string",
"enum": [
"default",
"agentic_interaction_trust"
]
},
"checks": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"check_id",
"status"
],
"properties": {
"check_id": {
"type": "string",
"minLength": 1
},
"status": {
"type": "string",
"enum": [
"passed",
"needs_evidence",
"failed"
]
},
"evidence_gap": {
"type": "string",
"minLength": 1
}
}
}
}
}
},
"approval": {
"type": "object",
"additionalProperties": false,
"required": [
"status"
],
"properties": {
"status": {
"type": "string",
"enum": [
"not_requested",
"approved",
"rejected"
]
},
"reference": {
"type": "string",
"minLength": 1,
"description": "Opaque caller-held reference to an external approval record."
}
}
}
}
},
"output_schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://github.com/vassiliylakhonin/agenda-intelligence-md/schemas/v1/pre-action-check-response.schema.json",
"title": "PreActionCheckResponse",
"description": "Deterministic routing result for a caller-controlled action boundary. The response reports readiness; the caller remains responsible for enforcement, authentication, authorization, approval storage, and the action itself.",
"x-schema-version": "1",
"type": "object",
"additionalProperties": false,
"required": [
"decision_id",
"run_id",
"policy_version",
"decision",
"reason_code",
"blocking_gaps",
"evidence_requests",
"approval_required",
"human_review_required",
"verification",
"not_authorization_notice",
"limitations"
],
"properties": {
"decision_id": {
"type": "string",
"minLength": 1
},
"run_id": {
"type": "string",
"minLength": 1
},
"policy_version": {
"type": "string",
"const": "pre-action-check.v1"
},
"decision": {
"type": "string",
"enum": [
"continue",
"request_evidence",
"require_approval",
"stop"
]
},
"reason_code": {
"type": "string",
"enum": [
"evidence_ready",
"evidence_gaps",
"unsafe_claims",
"policy_check_failed",
"approval_required_for_risk",
"approval_rejected"
]
},
"blocking_gaps": {
"type": "array",
"items": {
"type": "string"
}
},
"evidence_requests": {
"type": "array",
"items": {
"type": "string"
}
},
"approval_required": {
"type": "boolean"
},
"human_review_required": {
"type": "boolean"
},
"verification": {
"type": "object",
"additionalProperties": true,
"required": [
"verdict",
"evidence_gaps",
"owner_actions"
]
},
"policy_checks": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"check_id",
"status"
],
"properties": {
"check_id": {
"type": "string",
"minLength": 1
},
"status": {
"type": "string",
"enum": [
"passed",
"needs_evidence",
"failed"
]
},
"evidence_gap": {
"type": "string",
"minLength": 1
}
}
}
},
"receipt_status": {
"type": "string",
"enum": [
"signed",
"unavailable"
],
"description": "Present on decision_check. unavailable fails the signed Gate path closed."
},
"receipt": {
"description": "Short-lived readiness receipt attached by decision_check. The legacy pre_action_check response omits it.",
"oneOf": [
{
"type": "null"
},
{
"type": "object",
"additionalProperties": false,
"required": [
"format",
"token",
"receipt_id",
"issued_at",
"expires_at",
"request_hash",
"action_hash",
"verification_tool"
],
"properties": {
"format": {
"type": "string",
"const": "agenda-readiness-receipt+jws"
},
"token": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]+\\.[A-Za-z0-9_-]+\\.[A-Za-z0-9_-]+$"
},
"receipt_id": {
"type": "string",
"minLength": 1
},
"issued_at": {
"type": "string",
"format": "date-time"
},
"expires_at": {
"type": "string",
"format": "date-time"
},
"request_hash": {
"type": "string",
"pattern": "^sha256:[a-f0-9]{64}$"
},
"action_hash": {
"type": "string",
"pattern": "^sha256:[a-f0-9]{64}$"
},
"verification_tool": {
"type": "string",
"const": "decision_verify"
}
}
}
]
},
"not_authorization_notice": {
"type": "string",
"minLength": 1
},
"limitations": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"annotations": {
"readOnlyHint": false,
"destructiveHint": false,
"idempotentHint": false,
"openWorldHint": false
}
},
{
"name": "decision_verify",
"input_schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://github.com/vassiliylakhonin/agenda-intelligence-md/schemas/v1/decision-receipt-verify-request.schema.json",
"title": "DecisionReceiptVerifyRequest",
"description": "A signed readiness receipt plus the request and action hashes expected by the enforcing caller.",
"x-schema-version": "1",
"type": "object",
"additionalProperties": false,
"required": [
"receipt",
"expected_request_hash",
"expected_action_hash"
],
"properties": {
"receipt": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]+\\.[A-Za-z0-9_-]+\\.[A-Za-z0-9_-]+$"
},
"expected_request_hash": {
"type": "string",
"pattern": "^sha256:[a-f0-9]{64}$",
"description": "SHA-256 JCS hash computed from the enforcing caller's own copy of the complete request; do not copy it blindly from the receipt response."
},
"expected_action_hash": {
"type": "string",
"pattern": "^sha256:[a-f0-9]{64}$",
"description": "SHA-256 JCS hash computed from the enforcing caller's own actor, requested_action, target, and risk_tier object."
}
}
},
"output_schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://github.com/vassiliylakhonin/agenda-intelligence-md/schemas/v1/decision-receipt-verify-response.schema.json",
"title": "DecisionReceiptVerifyResponse",
"description": "Verification result for a signed readiness receipt. gate_passed is not authorization.",
"x-schema-version": "1",
"type": "object",
"additionalProperties": false,
"required": [
"signature_valid",
"binding_matches",
"expired",
"gate_passed",
"reason_code",
"receipt",
"not_authorization_notice"
],
"properties": {
"signature_valid": {
"type": "boolean"
},
"binding_matches": {
"type": "boolean"
},
"expired": {
"type": "boolean"
},
"gate_passed": {
"type": "boolean"
},
"reason_code": {
"type": "string",
"enum": [
"valid_continue_receipt",
"decision_not_continue",
"binding_mismatch",
"receipt_expired",
"invalid_signature",
"invalid_receipt_format",
"signing_key_unavailable"
]
},
"receipt": {
"oneOf": [
{
"type": "null"
},
{
"type": "object",
"additionalProperties": false,
"required": [
"receipt_id",
"decision_id",
"run_id",
"policy_version",
"decision",
"reason_code",
"request_hash",
"action_hash",
"issued_at",
"expires_at",
"issuer",
"not_authorization"
],
"properties": {
"receipt_id": {
"type": "string",
"minLength": 1
},
"decision_id": {
"type": "string",
"minLength": 1
},
"run_id": {
"type": "string",
"minLength": 1
},
"policy_version": {
"type": "string",
"const": "pre-action-check.v1"
},
"decision": {
"type": "string",
"enum": [
"continue",
"request_evidence",
"require_approval",
"stop"
]
},
"reason_code": {
"type": "string",
"minLength": 1
},
"request_hash": {
"type": "string",
"pattern": "^sha256:[a-f0-9]{64}$"
},
"action_hash": {
"type": "string",
"pattern": "^sha256:[a-f0-9]{64}$"
},
"issued_at": {
"type": "string",
"format": "date-time"
},
"expires_at": {
"type": "string",
"format": "date-time"
},
"issuer": {
"type": "string",
"format": "uri"
},
"not_authorization": {
"type": "boolean",
"const": true
}
}
}
]
},
"not_authorization_notice": {
"type": "string",
"minLength": 1
}
}
},
"annotations": {
"readOnlyHint": false,
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": false
}
}
]
},
"provider": {
"legalEntity": {
"type": "individual",
"name": "Vassiliy Lakhonin",
"sameAs": [
"https://github.com/vassiliylakhonin",
"https://pypi.org/project/agenda-intelligence-md/",
"https://glama.ai/mcp/servers/vassiliylakhonin/agenda-intelligence-md"
]
}
}
}
}
]
},
"defaultInputModes": [
"application/json",
"text/plain",
"text/markdown"
],
"defaultOutputModes": [
"application/json",
"text/markdown"
],
"skills": [
{
"id": "agent-output-verification",
"name": "Agent output relay-readiness gate",
"description": "Turns another agent's claim set and evidence into a machine-actionable relay verdict \u2014 verify_before_relay, block_unsafe_claims, not_decision_ready, or insufficient_information \u2014 with the ungrounded and weak claims, evidence gaps, and the owner actions needed before the output is safe to relay. allow_relay is never issued from caller-declared evidence; human review is mandatory before any relay. Structural claim-support triage, not factual-truth verification. Evaluation requires structured JSON; see the request schema and A2A example in the card extension.",
"tags": [
"agentic-ai",
"a2a",
"agent-to-agent",
"claims",
"evidence-readiness",
"trust-and-safety",
"human-review"
],
"examples": [
"Another agent handed me an analysis with cited claims \u2014 is it safe to relay, or does it contain unsupported claims?",
"Verify this agent-drafted memo's claim set before publication.",
"Gate an orchestrated multi-agent output: which claims are ungrounded?"
],
"inputModes": [
"application/json",
"text/plain"
],
"outputModes": [
"application/json",
"text/markdown"
]
},
{
"id": "pre-action-check",
"name": "Pre-action evidence gate",
"description": "Routes a caller-controlled action to continue, request_evidence, require_approval, or stop using supplied claim evidence, risk tier, policy checks, and external approval status. It reports readiness only and does not authenticate, authorize, enforce, or perform the action. Evaluation requires structured JSON; see the request schema and A2A example in the card extension.",
"tags": [
"agentic-ai",
"a2a",
"guardrails",
"evidence-readiness",
"human-approval"
],
"examples": [
"Check whether this low-risk agent action has enough claim evidence to continue.",
"Pause this high-risk tool action until a human approval reference is supplied.",
"Stop this action because its supporting claims or policy checks failed."
],
"inputModes": [
"application/json"
],
"outputModes": [
"application/json",
"text/markdown"
]
},
{
"id": "evidence-gap-analysis",
"name": "Evidence gap and orphan-reference analysis",
"description": "Finds missing evidence ids, quote-to-reference mismatches, unsupported statements, and weak claims in a caller-supplied claim set. Returns the evidence gaps and owner actions already produced by the relay-readiness contract. Structural only: it does not retrieve sources or verify factual truth. Evaluation requires structured JSON; see the request schema and A2A example in the card extension.",
"tags": [
"agentic-ai",
"a2a",
"evidence-gaps",
"orphan-references",
"claim-support",
"human-review"
],
"examples": [
"Which claims cite evidence ids that were not supplied?",
"Find quote references that do not match the claim's declared evidence.",
"List the evidence gaps and owner actions before another agent relays this output."
],
"inputModes": [
"application/json"
],
"outputModes": [
"application/json",
"text/markdown"
]
}
],
"signatures": [
{
"protected": "eyJhbGciOiJFUzI1NiIsInR5cCI6IkpPU0UiLCJqa3UiOiJodHRwczovL291dHB1dC12ZXJpZmljYXRpb24uYWdlbmRhbWNwLmRwZG5zLm9yZy8ud2VsbC1rbm93bi9qd2tzLmpzb24iLCJraWQiOiJhZ2VudC1vdXRwdXQtdmVyaWZpY2F0aW9uLTIwMjYtMDgtMDktN2EzMTJmYzMifQ",
"signature": "VD5NZo_Jk7Stmri7-RVFQhwhM1i-JUVOrcOhaDRagWYlm4jwfXTGXsa0e3i33OwK93z109Cm8teyfdb327QjsQ"
}
]
}